agents

https://github.com/aiwaves-cn/agents (opens in a new tab) An Open-source Framework for Data-centric, Self-evolving Autonomous Language Agents

基于常用开源框架,如AutoGPT, LangChain, SuperAGI的智能体普遍存在规划和行为不可控的问题:这些智能体的运行一旦开始,就几乎脱离了人类的控制,对任务规划和执行一旦出错,就会通过误差传播引起明显的滚雪球效应,因此任务失败概率很高。 除了失败率高以外,更致命的是用户或开发者遇到这种情况,对于如何调优很容易完全没有头绪,只能盲目更改任务描述,依靠玄学希望得到更好的效果。

为了解决这个痛点,让LLM Agent更可控,调优LLM Agent的过程更简单更系统化,波形智能联合苏黎世联邦理工大学和浙江大学,开发了名为Agents的开源智能体框架。 该框架创新性地提供了通过符号式的推理图,即“SOP”,来对任务进行分解,首次实现了对LLM Agent的细粒度控制。 框架同时支持长短期记忆,工具使用,网络搜索,以及多智能体系统的构建,用户只需要用自然语言填写配置文档,就能轻松定义各种功能和使用场景的AI智能体/多智能体系统,比如导购机器人,客服机器人,以及包含各种角色的小说工作室! 在支持零代码定制/微调多智能体系统的同时,Agents框架也对开发者和研究者扩展新的功能和定制复杂的多智能体环境/场景提供了很好的支持,为基于语言的智能体(Language Agents)研究提供便利。

Agents框架的主要功能和亮点如下:

  • 长短期记忆: 基于RecurrentGPT[4]的方案让自主智能体能够维持长短期记忆,从而更好的和人类/环境/其他智能体交互。长期记忆将智能体自己的以及观察到的对话/行为历史储存在向量数据库(VectorDB)中并根据当前的观察(observation),通过语义搜索(semantic search)来选择性的激活储存的记忆。短期记忆则是以文字形式,通过LLM+prompt进行更新,负责智能体的working memory。
  • 工具使用/网络搜索: 我们通过将各种工具/API封装在"ToolComponent"类中,统一定义接口,让智能体能够通过OpenAI GPT的function-calling来智能地使用各种工具。网络搜索功能也被封装成了API,模型可以根据需求,通过function-calling自动生成搜索query,获取搜索结果来辅助行动。
  • 人-智能体交互: Agents框架除了支持多智能体之间的相互交互,也支持了能够让人类使用者扮演多智能体系统中的一个或多个智能体的功能,可以方便地支持各种人-智能体交互的应用场景,如人和智能体一起玩游戏,辩论等。
  • 符号化细粒度控制: 作为Agents框架的核心亮点,框架中的SOP系统支持了通过符号化的推理图来对智能体/多智能体系统提供更细粒度的控制。

一个任务/场景的SOP是一个图结构,图中的每个节点被称作"状态",每个状态定义了该任务场景的一个子任务或者中间过程。用户可以在Agent系统的设置模版(config template)中定义每个智能体在每个状态中的任务描述,策略,规则,和in-context learning的样例等。状态和状态之间的切换通过一个基于LLM的控制器来决定。 基于SOP的细粒度的控制让智能体系统更能够严格按照人类确认过的流程运行,从而更加稳定,可控,进而达到可以作为商业化的客服/销售/导购等智能体的目标。另外因为智能体系统的控制严格按照SOP的流程,所以任何一步发生问题,用户都可以方便的定位到问题所在,并且有针对性地对SOP进行修改,提升系统的表现,既提高了Agent系统的可解释性,又方便了系统的编辑和调优。

多智能体系统: Agents框架中同时支持单智能体和多智能体系统。其中多智能体系统区别于现有框架的一点是: 不同于其他系统一般利用事先规定好的规则来决定智能体行动的先后顺序,Agents库当中支持了基于LLM的控制器,可以根据当前状态的目标,智能体的行为, 和当前环境,来决定是否进入下一个状态,以及确定下一个行动的智能体应该是谁。