Fix README Markdown code fence
CogFlow 用于降低多智能体协作中的通信和重复推理开销。系统使用 Qwen3.5-9B 与 BGE-M3,支持纯文本、结构化、结构化加状态、结构化加状态与共享记忆四种模式,并以蛋糕组合和团队旅行两组连续十轮任务进行测试。
多个 Agent 连续协作时,上游通常把分析过程写成自然语言交给下游。任务越长,重复传递的上下文越多,下游也需要重新编码和理解这些信息。后续任务依赖先前决策时,还会重复分析已经处理过的问题。
CogFlow 主要从三个方面减少这些重复工作:
系统包含四类主要 Agent:
Planner 生成计划后,PlanStateRuntime 按依赖关系调度各 Agent。同一进程中的各角色共用一个 Qwen 模型实例,运行记录包含候选获取、模型调用、工具执行和最终结果。
当前公开任务与 Agent 能力表 │ ▼ Planner │ 执行计划 ▼ PlanStateRuntime │ 按计划依赖调度 ▼ Retriever → ToolExecutor → Summarizer → 最终结果 ▲ │ └──── 后续轮次检索共享记忆 ────┘
公开任务位于 demo/competition/continuous_tasks.json,包含两组各十轮的连续任务:
demo/competition/continuous_tasks.json
两组任务包含相邻轮次依赖、跨轮依赖和双分支汇合。数据基于 MemoryArena 的两条公开样例,补充候选属性后扩展为十轮。原始样例与许可说明保存在 demo/competition/upstream_samples/。
demo/competition/upstream_samples/
以下是 Qwen3.5-9B 与 BGE-M3 在 openEuler 24.03-LTS-SP4 环境中的测试结果。蛋糕组合与团队旅行分别完整运行十轮,四种模式按顺序运行。任务成功指最终业务答案正确;机制成功指协议、状态、记忆与工具调用通过对应检查。在线消息 token 统计序列化的 Agent 消息,Prompt / Completion 统计模型实际输入与输出。
相比纯文本,结构化模式的在线消息 token 在蛋糕和旅行任务中分别减少 58.18% 和 59.06%。在结构化模式上加入非文本状态后,运行时间分别缩短 10.63% 和 6.41%,总 LLM token 分别减少 2.43% 和 1.72%。
再加入共享记忆后,相比无记忆的状态模式,两组任务的总 LLM token 分别减少 61.03% 和 50.49%,运行时间分别缩短 60.90% 和 44.35%。蛋糕任务成功率从 70% 提高到 100%,旅行任务保持 100%。两组任务所需的历史记忆都被检索到并用于执行。
在线消息和模型调用按 token 统计,状态张量按 MiB 统计。完整模式的在线消息包含检索出的历史事实,因此高于无记忆的状态模式。
在项目根目录创建环境并安装依赖:
python3 -m venv .venv source .venv/bin/activate python -m pip install -r src/requirements.txt
所有配置集中在 src/config/:
src/config/
default.json
implementations.json
model.yaml
agents.yaml
memory.yaml
sandbox.json
在 src/config/model.yaml 中填写 Qwen3.5-9B 和 BGE-M3 的本地权重路径,再通过 src/config/default.json 选择运行组合。默认启用结构化通信、非文本状态与共享记忆。
src/config/model.yaml
src/config/default.json
python demo/run.py --dry-run python demo/run.py
第一条命令预览配置,第二条启动网页演示。打开 http://127.0.0.1:8080/demo,选择任务并点击运行后,系统加载模型,页面显示各 Agent 的进度和四种模式的结果。
http://127.0.0.1:8080/demo
网页地址和端口通过 default.json 的 demo_host、demo_port 设置,结果保存到 output_dir。也可以通过 src/run.py 或测试入口直接运行任务。
demo_host
demo_port
output_dir
src/run.py
实验入口使用两个参数:--task cake|travel 选择任务,--mode 选择模式。
--task cake|travel
--mode
text_collaboration
structured_protocol
structured_protocol_state
structured_protocol_state_memory
python tests/test_competition_cli.py --task cake --mode structured_protocol python tests/test_competition_cli.py --task travel --mode structured_protocol_state_memory
以上命令使用本地模型运行所选任务和模式的完整十轮。一次运行两组任务的四种模式,可使用:
python src/run.py --all-modes
在运行配置中,用 output_dir 指定结果目录,用 raw_log 保存原始模型调用。src/benchmark/measurement/ 提供逐轮结果、模型调用和性能指标的汇总工具。
raw_log
src/benchmark/measurement/
src/agents/
src/protocol/
src/runtime/
src/features/
src/llm/
src/tools/
src/benchmark/
src/dashboard/
src/independent_translation/
src/moe_translation/
tests/
demo/
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
CogFlow 多智能体低开销协作系统
CogFlow 用于降低多智能体协作中的通信和重复推理开销。系统使用 Qwen3.5-9B 与 BGE-M3,支持纯文本、结构化、结构化加状态、结构化加状态与共享记忆四种模式,并以蛋糕组合和团队旅行两组连续十轮任务进行测试。
作品简介
1. 面向的问题
多个 Agent 连续协作时,上游通常把分析过程写成自然语言交给下游。任务越长,重复传递的上下文越多,下游也需要重新编码和理解这些信息。后续任务依赖先前决策时,还会重复分析已经处理过的问题。
CogFlow 主要从三个方面减少这些重复工作:
2. Agent 与执行流程
系统包含四类主要 Agent:
Planner 生成计划后,PlanStateRuntime 按依赖关系调度各 Agent。同一进程中的各角色共用一个 Qwen 模型实例,运行记录包含候选获取、模型调用、工具执行和最终结果。
3. 三项核心机制
结构化通信
非文本状态传递
共享记忆
4. 连续任务
公开任务位于
demo/competition/continuous_tasks.json,包含两组各十轮的连续任务:两组任务包含相邻轮次依赖、跨轮依赖和双分支汇合。数据基于 MemoryArena 的两条公开样例,补充候选属性后扩展为十轮。原始样例与许可说明保存在
demo/competition/upstream_samples/。5. 十轮实验结果
以下是 Qwen3.5-9B 与 BGE-M3 在 openEuler 24.03-LTS-SP4 环境中的测试结果。蛋糕组合与团队旅行分别完整运行十轮,四种模式按顺序运行。任务成功指最终业务答案正确;机制成功指协议、状态、记忆与工具调用通过对应检查。在线消息 token 统计序列化的 Agent 消息,Prompt / Completion 统计模型实际输入与输出。
蛋糕组合
团队旅行
状态、记忆与工具记录
相比纯文本,结构化模式的在线消息 token 在蛋糕和旅行任务中分别减少 58.18% 和 59.06%。在结构化模式上加入非文本状态后,运行时间分别缩短 10.63% 和 6.41%,总 LLM token 分别减少 2.43% 和 1.72%。
再加入共享记忆后,相比无记忆的状态模式,两组任务的总 LLM token 分别减少 61.03% 和 50.49%,运行时间分别缩短 60.90% 和 44.35%。蛋糕任务成功率从 70% 提高到 100%,旅行任务保持 100%。两组任务所需的历史记忆都被检索到并用于执行。
在线消息和模型调用按 token 统计,状态张量按 MiB 统计。完整模式的在线消息包含检索出的历史事实,因此高于无记忆的状态模式。
运行说明
1. 环境要求
在项目根目录创建环境并安装依赖:
2. 配置模型
所有配置集中在
src/config/:default.jsonimplementations.jsonmodel.yamlagents.yamlmemory.yamlsandbox.json在
src/config/model.yaml中填写 Qwen3.5-9B 和 BGE-M3 的本地权重路径,再通过src/config/default.json选择运行组合。默认启用结构化通信、非文本状态与共享记忆。3. 启动演示
第一条命令预览配置,第二条启动网页演示。打开
http://127.0.0.1:8080/demo,选择任务并点击运行后,系统加载模型,页面显示各 Agent 的进度和四种模式的结果。网页地址和端口通过
default.json的demo_host、demo_port设置,结果保存到output_dir。也可以通过src/run.py或测试入口直接运行任务。4. 按任务和模式运行实验
实验入口使用两个参数:
--task cake|travel选择任务,--mode选择模式。text_collaborationstructured_protocolstructured_protocol_statestructured_protocol_state_memory以上命令使用本地模型运行所选任务和模式的完整十轮。一次运行两组任务的四种模式,可使用:
5. 结果保存
在运行配置中,用
output_dir指定结果目录,用raw_log保存原始模型调用。src/benchmark/measurement/提供逐轮结果、模型调用和性能指标的汇总工具。主要目录
src/agents/src/protocol/src/runtime/src/features/src/llm/src/tools/src/benchmark/src/dashboard/src/config/src/independent_translation/src/moe_translation/tests/demo/