--- name: task-dispatch description: "触发词:派发、并行、并发、分发、同时执行。Hermes沟通→CC执行通用协作范式,自动选择最佳派发模式。" version: 1.0.0 author: Yuyang001 (FmodeAgent) license: MIT tags: [hermes, claude-code, dispatch, parallel, workflow] --- # Hermes ↔ Claude Code 协作范式(task-dispatch v1) > 2026-09-22 · 奥卡姆剃刀版 > 角色铁律:**Hermes Agent 负责沟通/协调/验收,Claude Code 负责专业执行** ## 一、为什么需要这个范式 Agent 同时聊天和干活的三个死法: 1. **静默死亡**:Hermes 在等 API 回复时卡住,用户以为在干活→实际空转 2. **上下文污染**:长任务塞满上下文,下一轮用户消息被挤出 3. **单点故障**:一个长任务卡住,其他所有任务排队等 解法:**沟通和执行的职责分离**——Hermes 管聊天/协调,CC 管执行。两者独立存活。 ## 二、角色职责 | 角色 | 职责 | 禁止 | |------|------|------| | **Hermes** | 理解需求 → 拆解分类 → 调研素材 → 写任务书 → 派发CC → 监控健康 → 验收产出 → 交付 | 动手做专业创作(写代码/做HTML/写方案) | | **Claude Code** | 读任务书 → 在项目里执行 → 产出交付物 → commit | 自改框架/删已认可内容/未验收自报完成 | ## 三、标准流程 ``` 收到任务 ① 拆解分类(课程/基础设施/查询/问答) ② 调研素材(项目CLAUDE.md + 参考源 + 现有资源) ③ 写任务书(inline素材引用 + 绝对路径 + 验收标准) ④ 派发CC(每任务独立log + 绝对路径 + notify_on_complete) ⑤ 60s健康检查(pgrep 确认真在跑) ⑥ 等待完成通知 ⑦ 验收(git log / 文件存在 / URL 200 / Content-Type) ⑧ 上线交付(commit+push / OBS+CDN / 发可达链接) ``` ## 四、任务分类器 ``` ├─ 课件/课程开发(skill-present仓) │ ├─ 新制作 → 五步完整流程 │ ├─ 增量增强 → 保留框架加资源 │ └─ 微调 → 单CC定点任务书 ├─ 基础设施/开发(fmode-hub/fmode-app等) │ └─ delegate_task 或 单CC+详细任务书 ├─ 信息查询/文件操作 → 亲手 └─ 简单问答 → 直接答 ``` ## 五、CC 派发技术模板 ```bash # 1. 写提示文件(避免shell转义) cat > /tmp/cc-task.md << 'EOF' [内联素材 + 纪律 + 验收标准] EOF # 2. 绝对路径启动(防exit 127) export PATH="/opt/data/npm-global/bin:$PATH" cd /opt/data/git-repos/<项目> /opt/data/npm-global/bin/claude -p \ --dangerously-skip-permissions \ "$(cat /tmp/cc-task.md)" \ > /tmp/cc-xxx.log 2>&1 & # 3. 60s后确认真在跑 sleep 60; pgrep -f "claude -p" || echo "❗启动失败" # 4. 独立log:每任务不同文件名 # 5. 提交用显式pathspec:git add <明确文件>,禁git add . ``` ## 六、验收铁则 1. **自报完成≠完成**——验收信落盘不信汇报 2. **文件存在**:`ls` 任务书列出的每个交付物 3. **URL验证**:`curl -w "%{http_code}"` = 200 且 `-w "%{content_type}"` 含正确类型(图片必须 `image/*`) 4. **git log**:有对应commit 5. **交付物必须随回复直发**(URL 或 MEDIA:文件),光说"完成"不算 ## 七、启动健康检查 启动后60秒内必查(任一成立才算真运行): 1. log文件出现模型回复或工具调用 2. 进程CPU时间在增长(`ps -o time= -p `) 3. 目标仓库出现新改动(`git status --short`) 空日志+exit=0 = 启动失败,禁止报"运行中"。 ## 八、恢复矩阵 | 现象 | 动作 | |------|------| | exit 127(claude找不到) | 用绝对路径重派 | | exit 1(模型503/401) | 检查settings.json模型名和token | | 超时无通知 | process list查存活;git log查产物 | | 完成但无DONE行 | 先盘点产物再决定(可能是回执被吞) | | 连败3次同域任务 | 停止重派,主Agent亲手或拆原子步骤