8000 GitHub - jackqin-19/IoA: 面向异构多智能体协同的分布式执行底座与通信降本优化 (基于清华大学 OpenBMB IoA 框架的解耦重构与状态机守卫机制研究) · GitHub
[go: up one dir, main page]

Skip to content
jackqin-19Public
forked from OpenBMB/IoA

About

面向异构多智能体协同的分布式执行底座与通信降本优化 (基于清华大学 OpenBMB IoA 框架的解耦重构与状态机守卫机制研究)

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

基于 IoA 的三 Agent 协作实验

本项目基于 OpenBMB/IoA,在同一台机器的多个 Docker 容器中运行 ReAct、AutoGPT 和 Open Interpreter,研究协作过程中的任务质量、通信开销与执行可靠性。

保留 IoA 的注册发现、WebSocket 会话通信、协作决策、同步/异步任务派发和 pause/trigger 机制。模型接入与实验运行层经过适配,后续在此基础上实现 Workspace、DAG Guard 和通信 Pruning。

系统组成

实验运行器 → IoA 客户端 CommunicationLayer ↔ IoA Server
                         ↓                  注册、会话、消息路由
                    AgentAdapter
                         ↓
             ReAct / AutoGPT / Open Interpreter

固定三人协作:ReAct 协调,AutoGPT 提案或编写代码,Open Interpreter 检查与执行。实验运行器负责提交、隔离、记录和评分,Agent 内部的协作仍由 IoA 驱动。

配置 当前设置
部署 同机多容器,一次一道任务
生成服务 DeepSeek 官方 API;deepseek-flash / deepseek-v4-pro
思考模式 默认关闭,组间保持一致
Embedding 独立 OpenAI 兼容接口,text-embedding-3-small,1536 维
数据集 HotpotQA distractor、MBPP sanitized
执行控制 每题工具隔离、步骤/超时预算、HTTP usage 分层统计

快速开始

1. 配置并启动

将 dockerfiles/compose/.env_template 复制为同目录 .env,填写生成和 Embedding 的密钥。首次使用需要构建镜像,完整步骤见启动说明。

模型入口也在 .env:FAST_LLM=deepseek-flash、SMART_LLM=deepseek-v4-pro。AutoGPT 的 AUTOGPT_BIG_BRAIN=false(默认)选择 FAST,true 选择 SMART;新建和恢复任务均采用启动配置。已有 YAML 中的 ${FAST_LLM} / ${SMART_LLM} 决定其他 Agent 的模型。首次接入此开关需更新镜像;之后修改 .env 并重新创建客户端及工具容器即可,无需再改构建补丁。详见模型配置。

镜像已构建时:

docker compose -f dockerfiles/compose/milvus.yaml up -d
# 等待 Milvus 健康后启动实验服务
docker compose --env-file dockerfiles/compose/.env -f dockerfiles/compose/benchmarks.yaml up -d --no-build

前端为 http://localhost;Server 为 http://localhost:7788/docs;三个客户端端口分别为 5050、5051、5052。

2. 准备数据

python -m pip install -r scripts/benchmarks/requirements.txt
python -m scripts.benchmarks.hotpotqa prepare --allow-hf-mirror
python -m scripts.benchmarks.mbpp prepare
python -m scripts.benchmarks.mbpp check-reference

题目来源、ID、抽样和校验值保存在 datasets/benchmarks/manifests/。MBPP 统一公开第一条示例,其余断言隐藏,使用一份 mbpp.json。判题金标不发送给 Agent。

3. 预览实验

python -m scripts.benchmarks.hotpotqa run --split dev --limit 1
python -m scripts.benchmarks.mbpp run --split dev --limit 1

以上只预览,不调用模型。确认配置和执行计划后,添加 --execute 并指定新的 --output 目录才实际运行。默认启用 fresh-tools;HotpotQA 默认采用三角色 evidence-review 协议。加 --collaborative-planning 可开启上游共享文字计划。

详细的探索分区、M0/M0-P 命令、失败处理和评分见实验运行说明。

实验安排与当前状态

  • 当前支持两套数据的开发检查,以及规划关闭/开启的探索对照。
  • Workspace、DAG Guard、Pruning 尚未实现;正式模块对照和消融尚未开始。
  • 本轮新 M0 尚未运行;开发验证不作为正式结果。
  • 确认候选题在协议发布前禁止实际执行,避免调试消耗确认集。
  • 所有当前实验均采用同机部署,多机不是本阶段的前置条件。论文结论限定到实际验证的场景。

目录导航

目录 内容
common/ 公共类型、模型设置、预算和 usage 账本
im_client/ IoA 通信调度、Agent 适配和执行器
im_server/ 注册、会话、消息路由和前端
configs/client_configs/benchmarks/ 当前三个 Agent 的角色配置
dockerfiles/ 镜像构建与 Compose 服务
scripts/benchmarks/ 数据准备、运行、判题、统计与收尾
datasets/benchmarks/manifests/ 固定数据清单与评分依据
tests/ 离线、容器和模型适配器检查
docs/ 启动、模型配置、实验协议

datasets/benchmarks/raw/、prepared/、results/、logs/ 和数据库挂载不随 Git 上传。复现实验需准备数据、填写自己的密钥并保存独立结果;具体回答可能因远端模型更新和随机性不同。

离线检查

python -m unittest discover -s tests -p 'benchmark*checks.py'
python -m unittest discover -s tests -p mbpp_checks.py
python -m unittest discover -s tests -p execution_budget_checks.py
python -m unittest discover -s tests -p usage_checks.py

MBPP 检查依赖 Linux Docker;provider 检查需对应镜像环境。上述检查不需要真实模型调用。

来源与许可

基础框架:Internet of Agents 论文、OpenBMB/IoA。保留上游 LICENSE。本项目是 IoA 的研究适配与扩展,不宣称复现原论文全部实验;数据集来源和许可见各自清单。

Workspace 单机受控实验入口(W-on)

M0 继续使用原有 Compose。W-on 使用可信宿主启动器 workspace_host.py;普通工具容器不持有 Docker socket 或管理密钥。

  1. 复制 configs/workspace/host.example.json 到本地 dockerfiles/compose/volumes/workspace_host/host.json,填写 Docker Engine ID、已缓存镜像 digest、身份和私有密钥文件路径。Control、Pepper、各角色 Management/Owner 密钥须各不相同,密钥文件不要放入源码目录。
  2. 首次全新部署可运行 python workspace_host.py --enable-workspace --role server --config <本地配置> --enroll-only,通过原 T03 登记角色并保存私有 credential;已有登记和凭证不会被覆盖。
  3. 启动服务端:python workspace_host.py --enable-workspace --role server --config <本地配置> --open-fresh-deployment。在另外三个进程中分别以 --role react、--role autogpt、--role open_interpreter 启动原客户端应用。模型环境可用 --env-file dockerfiles/compose/.env 读取。首次开放仅接受全新或只有身份登记的库;已有执行库须按原恢复流程处理。
  4. 新群按固定配置完成带 MAC 的 Owner 授权。父子群交接由可信控制端调用 im_client.workspace.handoff.request_handoff;协调 Agent 用自己的 HandoffReader 读取精确版本,控制端用 revoke_handoff 撤销。引用本身不授予权限,接收者须已是父、子群共同成员。

宿主使用项目已有 Python 依赖和 Docker CLI,并能访问本机 Milvus。usage_dir 复用既有 usage 事件目录;task_deadline_seconds 应与实验任务截止一致(原运行器默认 600 秒),不修改模型、步数和重试规则。此入口不运行 Benchmark,也不实现 M1~M4 方法派发。

About

面向异构多智能体协同的分布式执行底座与通信降本优化 (基于清华大学 OpenBMB IoA 框架的解耦重构与状态机守卫机制研究)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

0