agents - 使用自然语言编写配置的代理开源框架

Created at: 2023-07-18 10:01:03
Language: Python
License: Apache-2.0

自治语言代理的开源框架

📄 [ 论文 ] [ 网站] [ 演示] [ 不和谐] [ 🔥 🌐 🤖️ 🔥 微信群]


概述

代理是一个用于构建自治语言代理的开源库/框架。该库经过精心设计,以支持重要功能,包括长期短期记忆工具使用Web 导航多智能体通信以及包括人代理交互符号控制在内的全新功能。使用代理,只需用自然语言填写配置文件,并在终端、Gradio 接口或后端服务中部署语言代理,即可自定义语言代理或多代理系统。

代理与其他现有语言代理框架之间的一个主要区别是,我们的框架允许用户通过SOP(标准操作流程)为语言代理提供细粒度的控制和指导。SOP 为整个任务定义子目标/子任务,并允许用户为语言代理自定义细粒度工作流。

📢 更新

  • [ ] 支持基于 LLM 的 SOP 生成
  • [x] 2023.9.20 在拥抱面空间上部署演示
  • [x] 2023.9.12 正式发布

💡 突出

  • 长期短期记忆:库中的语言代理配备了通过VectorDB +语义搜索实现的长期记忆和由LLM维护和更新的短期记忆(工作记忆)。
  • 工具使用:库中的语言代理可以通过函数调用使用任何外部工具,开发人员可以在此处添加自定义工具/API。
  • Web 导航:库中的语言代理可以使用搜索引擎来导航 Web 并获取有用的信息。
  • 多代理通信:除了单语言代理之外,该库还支持构建多代理系统,其中语言代理可以与其他语言代理和环境进行通信。与大多数使用预定义规则来控制代理操作顺序的多代理系统的现有框架不同,代理包含一个控制器函数,该函数通过考虑以前的操作、环境和当前状态的目标,动态决定哪个代理将使用 LLM 执行下一个操作。这使得多代理通信更加灵活。
  • 人机交互:除了让语言代理在环境中相互通信外,我们的框架还无缝支持人类用户自己扮演代理的角色并输入自己的动作,并与环境中的其他语言代理进行交互。
  • 符号控制:与仅使用简单的任务描述来控制整个任务完成过程中的整个多代理系统的现有语言代理框架不同,代理允许用户使用SOP(标准操作流程)来定义整个任务的子目标/子任务,以自定义语言代理的细粒度工作流。

🛠 安装

选项 1.从源代码构建

git clone https://github.com/aiwaves-cn/agents.git
cd agents
pip install -e . 

选项 2.通过 PyPI 安装

pip install ai-agents

📦 用法

🛠️ 生成配置文件

选项 1.手动填写配置模板

修改

example/{Muti|Single_Agent}/{target_agent}/config.json

选项 2.尝试使用我们的 WebUI 来自定义配置文件。

还没有弄清楚如何编写 JSON 文件?查看我们的文档

🤖️ 代理中心

我们提供了一个AgentHub,你可以在其中搜索我们或其他开发人员共享的感兴趣的代理,试用它们或将它们用作自定义你自己的代理的起点。我们鼓励你分享你的自定义代理,以帮助其他人更轻松地建立自己的代理!你可以通过提交添加配置和自定义代码的 PR 来共享你的自定义代理。你也可以通过电子邮件向我们发送你自己的配置文件和自定义代理代码,我们将在未来的更新中分享你的示例并感谢你的贡献!

用于自动上传自定义代理的 WebUI 即将推出!

📷 示例和演示

我们在此处提供了单代理和多代理系统的示例配置文件、代码和演示。

网络演示

注意

1.由于流量巨大,我们的在线演示可能会遇到排队时间长和不稳定的问题。请按照我们的快速入门指南)并在本地部署语言代理进行测试。或查看我们的网站。2.软件公司无法在线生成可执行代码,如果你希望直接生成可执行代码,请在本地运行:)

为代理做出贡献

感谢你有兴趣为我们的开源计划做出贡献。请随时提交 PR 或分享你对如何改进问题库中的想法!

注意:

  1. 运行代码时,我们将下载一个嵌入模型,这将导致代码运行缓慢。我们稍后会将其调整为 API 接口
  2. 目前,无法使用购物助手。稍后我们将替换 API。敬请关注

📚 文档

请查看我们的文档,了解框架的详细文档

⭐ 明星历史

星史图表

引文

如果你发现我们的回购对你的研究有用,请考虑引用:

@misc{zhou2023agents,
      title={Agents: An Open-source Framework for Autonomous Language Agents}, 
      author={Wangchunshu Zhou and Yuchen Eleanor Jiang and Long Li and Jialong Wu and Tiannan Wang and Shi Qiu and Jintian Zhang and Jing Chen and Ruipu Wu and Shuai Wang and Shiding Zhu and Jiyu Chen and Wentao Zhang and Ningyu Zhang and Huajun Chen and Peng Cui and Mrinmaya Sachan},
      year={2023},
      eprint={2309.07870},
      archivePrefix={arXiv},
      primaryClass={cs.CL}
}