阿里巴巴通义实验室 投稿
量子位 | 公众号 QbitAI
让多智能体开发就像搭积木,阿里巴巴通义实验室开源多智能体编程框架与开发平台AgentScope。
该平台专门为多智能体应用开发者打造,旨在提供高易用的编程体验、稳定可靠的运行时保障,并且为开发者提供了分布式和多模态的技术支持。
内置了OpenAI、DashScope、Gemini、Ollama等多种不同平台的模型API,深度兼容当下的大模型开源生态。
AgentScope提供了多种开箱即用的功能,通过简单拖拽就能搭建多智能体应用。
即使没有分布式开发经验的开发者,在AgentScope平台上也能轻松实现上万级别的多智能体并发。
为了让更多用户能够快速、轻松地开发属于自己的多智能体应用。AgentScope提供了以下功能:
- 拖拽式的编程范式——AgentScope Workstation:为用户提供了可视化的拖拽式开发界面
- 交互式编程助手——AgentScope Copilot:解答开发者关于AgentScope的疑问
- 透明可控的开发过程——应用实时监控:实时监控应用运行成本、多智能体状态,实现透明且可控的开发
- 丰富的开发资源:助力快捷且方便的二次开发,搭建应用无需“从零开始”
AgentScope Workstation
AgentScope Workstation提供了便捷的“拖拽式”多智能体应用编排范式。
在这里,编程经验不再是限制你想象力的因素。每个开发者都可以在丰富的工具栏中,零代码地挑选和拖拽出他们喜欢的大模型、智能体和 Pipeline,就像搭积木一样自由组合,创造出独特创新的多智能体应用。
为了确保这些通过拖拽搭建的多智能体应用真正可用,AgentScope Workstation引入了静态规则检查,以确保应用的正确性。
对于那些寻求进一步自定义和深度开发的高级开发者,AgentScope Workstation也提供了强大的支持。
开发者既可以将应用导出为配置信息,借助AgentScope Workstation引擎进行运行,也可以使用AgentScope Workstation Compiler将配置信息一键转换成Python代码。这样,开发者便可以进一步编辑和优化代码,实现更为精细和个性化的应用调整。
AgentScope Copilot
AgentScope Copilot是基于AgentScope框架自身构建的开发助手,旨在帮助开发者解决在多智能体应用开发过程中所遇到的问题,其技术实现结合了多智能体群聊(Multi-agent Conversation)、数据检索生成(Retrieval-Augmented Generation,RAG)、智能体呼叫(Mention)等诸多特性。
在与AgentScope Copilot的交互中,开发者既可以与引导助手(Guide Assistant)进行交互,直接获取帮助;也可以呼叫专用的智能体助手,例如问答助手(Tutoring Assistant)或者代码编程助手(Coding Assistant),从而获得更加专业、更加具体的回答。更具体而言,代码编程助手可以帮助开发者快速理清框架内各个模块的定义及使用方法,提供更优的编程建议。
值得一提的是,AgentScope Copilot本身基于AgentScope框架中的RAG模块进行搭建,支持LlamaIndex等流行的数据检索框架、以及多种向量数据库类型,同时支持接入各种大语言模型。开发者可以进行快速的二次开发,轻松的搭建起自己项目的Copilot助手。
透明可控的开发过程
一个友好的应用开发过程,对开发者来说应该是可控的、透明的。
但是在多智能体场景下,模型API种类繁多,调用接口各异,如何有效管理和监控模型API的使用成本,避免资源浪费与意外开支,对资源监控能力提出了更高的挑战。
例如,在使用搜索引擎时将一个复杂网页作为大模型的输入将引起高额的开销,而开发者的感知往往滞后。为了解决这个问题,AgentScope设计了Monitor模块,实现了:
API开销自动统计:准确记录不同模型API的token用量,并自动计算当前开销,确保开发者对模型API成本的每一份支出都了如指掌。
预算设置及超额报警:支持开发者设定各模型API的预算上限。当总开销超过预算时,系统自动触发报警,及时通知开发者进行检查和调整,避免超支的发生。
支持自定义监控指标:除了预设的模型API相关指标外,Monitor还允许开发者自定义其他监控指标,例如搜索工具的开销,数据存储服务的开销,网络流量等等,从而让开发者能够对应用的状态进行全面且自动化的监控。
△ Monitor模块
即拿即用的开发资源
AgentScope内置了丰富的工具函数、智能体和应用样例,开发者可以通过轻量化的修改,轻松的开发属于自己的多智能体应用。
工具函数:AgentScope支持包含网络搜索、数据库查询、文件操作、文本处理等多种类型的工具函数,每种类目下又包含不同实现形式。例如网络搜索层面,AgentScope已经支持Bing、arXiv和DBLP等多种搜索引擎。
智能体:AgentScope内置了功能各异的智能体,包含基础对话、格式化对话、Reasoning、RAG、分布式等多种不同类型的智能体。开发者只需要使用不同的参数初始化智能体实例,就可以将智能体特化成自己需要的智能体实例。
应用样例:AgentScope预置了包含对话(Conversation)、游戏(Game)、和分布式(Distribution)等多种不同类型的应用。一方面这些样例可以帮助开发者降低开发代价,另一方面也为应用的开发提供了模版和参照。
为了让开发者能够更好、更快地了解AgentScope中的内置资源,AgentScope提供了丰富且详细的文档,包含教程(Tutorial)、接口文档(API Document)和设计论文,帮助开发者更好的了解和使用AgentScope。
稳定可靠
基于大模型的多智能体应用会面临模型幻觉、模型指令跟随能力不足等诸多新的挑战。为了保证多智能体应用能够稳定可靠地运行,AgentScope首先将应用中出现的错误进行分类,然后相应地提供了一套完整的容错机制和自定义的容错处理。
面向随机性的容错:随机性错误常常由网络状况不稳定,或者模型生成内容的不确定性引起,是基于大模型构建应用时最常见的一类错误。这类错误往往十分琐碎且难以穷举,因此AgentScope通过的内置重试机制,将此类随机性的错误进行过滤和屏蔽,方便开发者将精力投入到应用的编排中。
基于规则的容错:应用中遇到的部分错误可以通过规则进行修复。例如,要求大模型产生指定格式的回复时,大模型有时会产生额外的内容,因此可以通过预置的规则进行截断,确保应用的正常运行。
基于模型的容错:借助大模型自身能力进行纠错是多智能体应用的特点之一,AgentScope会尝试将输入和错误信息提供给大模型,利用大模型的理解能力和知识来纠正错误。
面向智能体/开发者的容错:当预置规则和大模型都无法解决错误时,往往需要开发者或者是智能体的介入才能解决问题,因此AgentScope在遇到此类错误的情况下,会将错误的格式化归因、错误信息、输入输出信息完整的提交给开发者或智能体,从而帮助解决遇到的问题。
提示优化
多智能体应用性能的提升很大程度依赖大模型的提示(Prompt)质量,一个好的提示可以大幅提高应用运行成功的概率。AgentScope编程框架提供了提示调优模块,助力开发者持续优化应用。
提示自动生成:对于开发者来说,产生一个好的提示往往是一件耗时耗力的事情。AgentScope预置了一个智能体,其内部通过上下文学习的方式(In-context learning,ICL),综合开发者的应用场景,直接生成所需的提示,帮助开发者快速开始开发。
支持样例输入:在AgentScope中,开发者同时可以输入若干样例作为模板,AgentScope可以根据这些样例,为特定的下游任务生成具体的提示词。
提示动态调优:在应用运行过程中,大模型的提示词还需根据运行情况做进一步的调整,例如添加新的规则以避免错误的产生。AgentScope将此过程自动化,在智能体与开发者、环境进行交互的过程中,其历史数据将成为调整提示的依据;AgentScope根据当时的场景,修改智能体的系统提示(System prompt)从而在运行过程中提高智能体的表现。
分布式并行
作为一个多智能体编程框架,AgentScope在设计之初就将提升智能体之间的协作效率作为主要目标之一,并为此设计了分布式模式。在该模式中,多智能体可以运行在不同的进程和机器当中,从而充分利用计算资源,提高运行效率。AgentScope中的分布式主要具有以下特点:
自动并行优化:AgentScope中分布式的设计遵循Actor编程范式,可以自动识别应用流程编排中不同智能体之间潜在的并行可能性,并且进行自动并行优化,提升运行效率。同时各个智能体可以独立运行在本地或者远程机器上,能够充分利用计算资源,支持大规模部署。
上手门槛极低:AgentScope向开发者完全屏蔽了分布式的技术实现细节,开发者可以零代价开发分布式多智能体应用,或者将已有的多智能体应用转化成分布式模式运行。在转化成分布式应用时,AgentScope中分布式应用编排与本地化的编排方式完全兼容,即使没有分布式背景知识,开发者也能轻松编排分布式多智能体应用。
支持大规模部署:AgentScope目前支持在单台机器(64核8卡A100)上一次性运行16000多个智能体实例,并且该规模能够随着机器数量的增加实现规模的线性增长。举例来说,AgentScope在4台机器的集群上可以在30秒内完成64000多次智能体的调用。这一特点使得智能体的大规模并行和仿真成为可能。
△本地模式向分布式模式转换
多模态支持
AgentScope支持开发者使用多模态数据和多模态模型来构建强大的多智能体应用。为了让开发者可以更加直观、便捷地与自己编排的多智能体应用交互,AgentScope提供了一款开发者友好、简便易用的可交互式界面AgentScope Studio,让文本、声音、图像等不同模态的数据得以生动呈现,确保了开发者能以最直观的方式感受并调整自己创造的智能体应用。
△AgentScope Studio
接下来,AgentScope还将持续为开发者带来更多的开发便利,也期待更多开发者加入AgentScope开源社区的建设,探索更多更有趣的多智能体应用。
AgentScope开源仓库地址:
https://github.com/modelscope/agentscope
欢迎试用:
https://agentscope.aliyun.com