From 3b56d9a86ec466918d6d7d37a4374672e005776d Mon Sep 17 00:00:00 2001 From: cfdaily Date: Sat, 11 Apr 2026 12:40:02 +0800 Subject: [PATCH] auto-sync: 2026-04-11 12:40:02 --- .../report.md | 304 ++++++++++++++++++ 1 file changed, 304 insertions(+) create mode 100644 pangtong-value/research/20260411-three-multiagent-projects-analysis/report.md diff --git a/pangtong-value/research/20260411-three-multiagent-projects-analysis/report.md b/pangtong-value/research/20260411-three-multiagent-projects-analysis/report.md new file mode 100644 index 000000000..71580e79d --- /dev/null +++ b/pangtong-value/research/20260411-three-multiagent-projects-analysis/report.md @@ -0,0 +1,304 @@ +# 三个主流多Agent项目协作模式分析报告 + +**日期**:2026-04-11 +**分析人**:庞统 (pangtong-fujunshi) +**项目**:Hermes Agent / oh-my-codex / oh-my-claudecode + +--- + +## 目录 + +1. [项目概览](#一项目概览) +2. [多Agent协作模式对比](#二多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` + +#### 轮询收敛机制(核心实现) + +```typescript +// 每次查询状态都重新从文件读取 +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) 状态文件约定 + +可以在项目根目录约定: + +``` +/ +└── .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` + +--- + +**报告完**。