Files
sanguo_quant_live/pangtong-value/research/20260411-three-multiagent-projects-analysis/report.md
T
2026-04-11 12:40:02 +08:00

9.8 KiB
Raw Blame History

三个主流多Agent项目协作模式分析报告

日期2026-04-11
分析人:庞统 (pangtong-fujunshi)
项目Hermes Agent / oh-my-codex / oh-my-claudecode


目录

  1. 项目概览
  2. 多Agent协作模式对比
  3. 任务依赖控制实现
  4. 通信共享信息实现
  5. 提示词设计总结
  6. 对三国量化项目的借鉴

一、项目概览

项目 开发者 定位 目标
Hermes Agent NousResearch 自进化自治Agent框架 打造能随用户一起成长的自主Agent,从经验创建技能
oh-my-codex Yeachan-Heo OpenAI Codex CLI 工作流层 为 Codex CLI 预置标准工作流和专家技能
oh-my-claudecode Yeachan-Heo Claude Code 多Agent编排插件 为 Claude Code 提供阶段化流水线多Agent协作

二、多Agent协作模式对比

1. Hermes Agent (NousResearch)

协作模式:原生内置 主Agent ↔ 隔离子Agent 层次结构

  • 主Agent:理解需求 → 分解任务 → 生成子Agent提示词 → 等待结果 → 整合输出
  • 子Agent:执行分配的具体任务 → 写结果到共享内存 → 汇报完成
  • 特点:原生支持动态生成子Agent,主Agent全权调度

2. oh-my-codex / oh-my-claudecode

协作模式阶段化流水线 + 同阶段并行

固定流程:

深度访谈澄清需求 → 制定方案计划 → 拆解任务 → 多worker并行执行 → 验证评审 → 修复循环 → 汇总交付
  • 阶段之间:顺序执行,必须等前一阶段完成才进入下一阶段
  • 同一阶段:多个worker完全并行,无依赖
  • 特点:开箱即用,适合大多数软件开发任务,用户不用自己设计流程

三、任务依赖控制实现

1. Hermes Agent

  • 实现:主Agent负责依赖调度,动态生成子Agent时声明依赖
  • 支持Python脚本RPC编排,可以显式定义依赖顺序
  • 优点:灵活;缺点:需要编写编排代码

2. oh-my-codex / oh-my-claudecode

固定阶段流水线(默认推荐)

澄清 → 计划 → 执行 → 验证 → 修复
  • 天然满足依赖:前面阶段输出就是后面阶段输入
  • 同一阶段内并行任务无依赖,直接同时跑
  • 简单够用,绝大多数软件开发任务都能套这个流程

复杂依赖(支持)

如果任务需要自定义依赖:

  • 每个任务JSON声明 depends_on: [task-id...]
  • 系统轮询检查所有依赖任务状态,全部 completed 才解锁当前任务
  • 状态存在文件系统:.omx/state/team/{name}/tasks/task-{id}.json

轮询收敛机制(核心实现)

// 每次查询状态都重新从文件读取
while (!timeout) {
  for (all tasks) {
    // 从结果工件文件读取状态
    const artifact = readResultArtifact(jobId);
    // 如果结果文件标记完成,更新任务状态
    convergeJobWithResultArtifact(job, jobId);
  }
  // 检查是否全部terminal
  if (allTasksTerminal()) break;
  // 指数退避等待
  await sleep(pollDelay);
  pollDelay = min(pollDelay * 1.5, 2000);
}

没有用任何开源第三方调度库,完全手写文件轮询,简单可靠。


四、通信共享信息实现

1. Hermes Agent

  • 通信方式:共享持久化内存 + 主Agent中转
  • 所有Agent都能读写共享记忆库
  • 支持全文搜索,跨会话回忆

2. oh-my-codex / oh-my-claudecode

核心设计思想:文件系统就是共享总线

目录结构

project-root/
└── .omx/
    └── state/
        └── team/{team-name}/
            ├── manifest.v2.json       # 团队信息
            ├── mailbox/
            │   ├── worker1.json     # 每个worker一个邮箱,存消息
            │   └── worker2.json
            ├── tasks/
            │   ├── task-0.json      # 每个任务一个文件,包含状态/依赖/结果
            │   └── task-1.json
            └── events/
                └── events.ndjson   # 事件日志,append-only

通信机制

  • 发消息:写到接收方mailbox JSON文件
  • 收消息:从自己mailbox JSON文件读取
  • 任务输入输出:每个任务从指定文件读输入,写完结果到指定文件
  • 总结文件就是通信,没有IPC,没有复杂机制,简单到不会丢消息

和三国Sanguo Mail对比

oh-my-claudecode 三国Sanguo Mail
状态存储 .omx/state/ JSON文件 项目git目录 + 各将军工作目录
消息通信 文件mailbox Sanguo Mail + 文件
依赖检查 轮询文件状态 邮件通知 + 主军师调度
并行 tmux多CLI真并行 多Agent独立会话真并行
优点 单机全自动 分布式跨机器,支持团队协作

核心思想一致:都是文件系统做共享总线,状态存在文件,靠文件变化推进流程。


五、提示词设计总结

1. Hermes Agent

设计思路:自主技能进化,提示词随使用自动改进

  • 系统提示:定义自主学习身份能力
  • 技能创建提示:从对话提取新技能,生成格式完整的技能文档
  • 技能改进提示:基于使用反馈优化提示词
  • 用户建模提示:持续学习用户偏好
  • 记忆压缩提示:压缩长期记忆,保留关键信息

2. oh-my-codex / oh-my-claudecode

设计思路:预置专家角色+阶段化提示词,开箱即用

核心预置命令/提示词

命令 作用
/deep-interview 苏格拉底式提问澄清需求,揭示隐藏假设
/team N:role "task" 启动Team阶段流水线
/omc-teams N:model "task" 启动tmux多CLI混合模型
/plan 只执行计划阶段,输出plan.md
/exec 只执行阶段

阶段分工提示词

每个阶段独立提示词模板,只干一件事

阶段 职责 输出
深度访谈 澄清需求,确认验收标准 requirements.md
团队计划 拆分任务,识别依赖 plan.md + tasks/
团队执行 并行执行任务 results/
团队验证 代码评审,质量检查 issues.md
团队修复 根据问题修复 更新结果

混合模型提示词优化

当使用多模型混合时,提示词会强化模型优势

  • Codex:你擅长代码分析和审查,请重点关注架构和安全
  • Gemini:你擅长设计和文档,请产出清晰的设计方案
  • Claude:你擅长编码实现,请根据设计写出完整代码

让每个模型干它擅长的,提示词配合模型能力定制优化。


六、对三国量化项目的借鉴

1. 我们已有基础

  • Sanguo Mail 异步消息通信已经搞定
  • 各将军分工已经明确
  • Git + 文件系统共享已经在用
  • 多Agent跨机器并行已经支持

2. 可以直接借鉴的点

(1) 阶段流水线工作流模板

针对代码输出型项目(sanguo_vnpy / sanguo_quant_live),可以照搬这个阶段化流水线:

需求澄清 → 方案计划 → 拆解任务 → 并行执行 → 验证评审 → 修复循环 → 汇总交付

每个阶段对应发邮件给相应将军:

  • 需求澄清 → 庞统/诸葛亮
  • 方案计划 → 庞统/诸葛亮
  • 执行 → 张飞/关羽/赵云 按分工
  • 验证 → 司马懿
  • 修复 → 返还给对应将军
  • 汇总 → 诸葛亮/庞统

这就是标准流程,新项目直接套用,不用每次重新商量怎么走

(2) 状态文件约定

可以在项目根目录约定:

<project-root>/
└── .sanguo/
    └── state/
        └── team/{team-name}/
            ├── config.json
            ├── tasks/
            ├── mailbox/
            └── events/

和 oh-my-claudecode 一样,靠文件状态推进流程,不用改造Sanguo Mail。

(3) 依赖处理简单化

  • 大部分项目用固定阶段流水线就够了,不用复杂DAG调度
  • 需要自定义依赖的任务,走文件状态检查:每个任务声明依赖,轮询检查依赖完成解锁
  • 我们有Sanguo Mail,依赖完成可以发邮件通知,比纯轮询更高效

(4) 提示词模块化预置

按角色/阶段预置提示词模板:

prompts/
├── deep-interview.md    # 需求澄清
├── team-plan.md         # 计划拆解
├── team-exec.md         # 任务执行
├── team-verify.md       # 验证评审
└── team-fix.md          # 修复问题

每个将军接过任务,直接用对应模板,保证输出格式一致。

(5) 支持混合模型(未来扩展)

我们也可以支持"不同将军用不同模型",提示词按模型优势定制:

  • 比如:赵云(数据)用某个模型,张飞(编码)用另一个模型,司马懿(评审)用第三个模型
  • 因为我们本来就是独立进程,天然支持混合模型,和 oh-my-claudecode 的 tmux 混合思路一致

3. 总结落地方案

已有 需要新增
通信层 Sanguo Mail -
状态层 文件系统 新增 .sanguo/state/ 目录约定
流程层 - 新增 阶段流水线脚本 + 预置提示词模板
依赖层 - 新增简单依赖检查工具

工程量很小,就是在现有Sanguo Mail上层加一层流程编排,不用改底层。


附录:源码关键文件位置(oh-my-claudecode

  • 状态类型定义:src/interop/omx-team-state.ts
  • 任务收敛:src/mcp/team-job-convergence.ts
  • tmux进程管理:src/team/tmux-session.ts
  • MCP服务器:src/mcp/team-server.ts

报告完