OpenBMB 推出的开源智能体协作框架,采用互联网式架构实现异构代理的自主组队与异步任务协同,支持 AutoGPT、Open Interpreter 等多种代理集成。
项目概述#
IoA(Internet of Agents)是由 OpenBMB 团队开发的开源智能体协作框架。该项目采用受互联网启发的架构设计,旨在连接异构、分布式的 AI 智能体,使其能够自主组建团队并协同完成复杂任务。
核心特性#
架构能力#
- 互联网式连接:类似互联网的架构设计,支持跨设备、跨环境的 Agent 互联
- 异构代理集成:支持集成不同来源、不同架构的 Agent(已验证支持 AutoGPT、Open Interpreter、ReAct Agent)
- 异步任务执行:支持异步处理机制,提升系统并发能力和执行效率
协作机制#
- 自主嵌套团队协作:Agent 可根据任务需求自主组建团队,甚至形成子团队结构
- 自适应对话流程:自动管理 Agent 之间的对话结构,根据任务进展动态调整交互流程
可扩展性#
- 架构设计允许开发者方便地添加新类型的 Agent
- 采用即时消息式架构,确保 Agent 间通信结构清晰
架构组件#
| 组件 | 说明 |
|---|---|
| IoA Server | 核心服务端,负责调度、通信管理和状态维护 |
| IoA Client | 客户端,封装具体的 Agent 逻辑,连接到 Server |
| Server Frontend | 提供 Web UI 供用户监控和交互 |
| Milvus | 向量数据库,用于存储向量数据,支持语义检索或记忆功能 |
安装部署#
环境要求#
- Docker(必须)
- Docker Compose(推荐)
快速开始#
- 克隆仓库
git clone git@github.com:OpenBMB/IoA.git
cd IoA
- 拉取核心组件镜像
docker pull weize/ioa-server:latest
docker pull weize/ioa-client:latest
docker pull weize/ioa-server-frontend:latest
docker tag weize/ioa-server:latest ioa-server:latest
docker tag weize/ioa-client:latest ioa-client:latest
docker tag weize/ioa-server-frontend:latest ioa-server-frontend:latest
- 拉取代理镜像(按需)
docker pull weize/react-agent:latest
docker pull weize/autogpt:latest
docker pull weize/open-interpreter:latest
- 启动 Milvus 服务
docker network create agent_network
docker-compose -f dockerfiles/compose/milvus.yaml up -d
- 配置环境变量并启动
cd dockerfiles/compose/
cp .env_template .env
# 编辑 .env 文件,填入 OPENAI_API_KEY 等必要信息
docker-compose -f dockerfiles/compose/open_instruction.yaml up
使用示例#
HTTP 请求#
import requests
goal = "I want to know the annual revenue of Microsoft from 2014 to 2020. Please generate a figure in text format showing the trend of the annual revenue, and give me an analysis report."
response = requests.post(
"http://127.0.0.1:5050/launch_goal",
json={
"goal": goal,
"max_turns": 20,
"team_member_names": ["AutoGPT", "Open Interpreter"],
},
)
print(response)
API 接口#
POST /launch_goal:核心接口,用于启动一个新的协作任务goal(string): 任务目标描述max_turns(int): 最大轮次team_member_names(list[string]): 团队成员名称列表
适用场景#
- 复杂的数据分析任务(跨时间段的数据检索与可视化)
- 需要结合多种工具的任务(代码编写 + 执行调试)
- 分布式 AI 协作研究与开发