近一年来,随着大模型突飞猛进的发展,基于大模型的推理泛化能力的语言智能体 (Language Agents) 展示了通向 AGI 的巨大潜力。科研和开发者社区也涌现出各种语言智能体的框架和系统,如 AutoGPT [1], LangChain [2], SuperAGI [3] 等。这些系统能够接受人类提供的简单的指令之后自主规划和执行任务。尽管看起来很炫酷,这些框架和系统的都存在一个非常致命的通病:智能体的运行一旦开始,就几乎脱离了人类的控制,对任务规划和执行一旦出错,就会通过误差传播引起明显的滚雪球效应,因此任务失败概率很高。除了失败率高以外,更致命的是用户或开发者遇到这种情况,对于如何调优很容易完全没有头绪,只能盲目更改任务描述,依靠玄学希望得到更好的效果。
图 1 Agents 框架示意图
为了解决这个痛点,让 LLM Agent 更可控,调优 LLM Agent 的过程更简单更系统化,波形智能联合苏黎世联邦理工大学和浙江大学,开发了名为 Agents 的开源智能体框架。
Agents 框架探索了通过结合基于推理图的符号主义 (symbolism) 推理和基于 LLM 的连接主义 (connectionism) 推理,来结合高层次的世界模型知识和低层次的简单推理泛化能力,从而实现更智能更可控的通用人工智能 (AGI) 方案。
具体来说,该框架创新性地提供了通过符号式的推理图,即 “SOP”,来对任务进行分解,首次实现了对 LLM Agent 的细粒度控制。框架同时支持长短期记忆,工具使用,网络搜索,以及多智能体系统的构建,用户只需要用自然语言填写配置文档,就能轻松定义各种功能和使用场景的 AI 智能体 / 多智能体系统,比如导购机器人,客服机器人,以及包含各种角色的小说工作室。
在支持零代码定制 / 微调多智能体系统的同时,Agents 框架也对开发者和研究者扩展新的功能和定制复杂的多智能体环境 / 场景提供了很好的支持,为基于语言的智能体 (Language Agents) 研究提供便利。Agents 框架的主要功能和亮点如下:
图 2 Agents 框架和其他常见开源智能体系统框架的功能对比
Agents 框架包含三个主要类:Agent、SOP 和 Environment,具体如下:
智能体系统的初始化代码如下:所有类均可由一个用户定制好的 config 文件加载。
加载之后多智能系统的运行逻辑如下:SOP 的控制器决定了下一个状态和行动的智能体是哪个,之后智能体结合环境和状态执行行动,最后环境根据智能体的行为进行自我更新。Agents 框架同时支持让智能体系统动态 Planning,生成新的后续状态和节点,只需要定义从 action 抽取新状态节点设置的函数并将对应的设置动态添加到当前的 SOP 中即可。
Step 1:配置多智能体系统参数 (框架提供了相应的 WebUI)
Step 2: 得到 JSON 配置文件
Step 3:启动多智能体系统
接下来,作者展示了一个利用 Agents 框架开发的多智能体影视工作室的 Demo。小说工作室中包括了作家,编辑,导演,和演员等角色。SOP 中规定了首先作家和编辑要根据特定的剧情设定来构思人设和剧本大纲,之后作家根据大纲写出剧本,再由导演根据剧本指导多个演员一起进行每一段情节的表演:
其他的多智能体框架在接受了这样一个复杂流程的指示之后,很容易会在执行任务的过程中逐渐偏离原始的任务规划和指示。这是因为在每一次执行的时候,各个智能体都只能根据总体的相对笼统的任务介绍来推测系统现在走到了哪一步以及接下来要做什么,而基于 Agents 框架的智能体系统则为每个智能体提供了当前状态特有的指令,规则,和示例,并且有了解全局任务和当前 / 下一个状态各自的目标的控制器来决定状态的转变,因此能够更准确、稳定地沿着预先设定的流程完成整个剧本设计,创作到表演的复杂任务流。
Agents 框架除了支持在终端和 Gradio 体验多智能体系统之外,还为开发者提供了利用 FastAPI 在后端部署自主智能体系统的示例代码,可以让开发者便捷的将调教好的智能体部署到应用程序中。另外 Agents 开发团队还提供了 community AgentHub,可供方便地供用户搜索他人共享的智能体系统从而更便捷地打造自己的智能体系统,也可以将自己调试好的智能体系统方便地共享给社区其他用户。