惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
Recent Commits to openclaw:main
Recent Commits to openclaw:main
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
罗磊的独立博客
V
Visual Studio Blog
爱范儿
爱范儿
H
Help Net Security
J
Java Code Geeks
I
InfoQ
Recent Announcements
Recent Announcements
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Recorded Future
Recorded Future
Jina AI
Jina AI
Microsoft Security Blog
Microsoft Security Blog
WordPress大学
WordPress大学
GbyAI
GbyAI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Y
Y Combinator Blog
Google DeepMind News
Google DeepMind News
Scott Helme
Scott Helme
S
SegmentFault 最新的问题
S
Securelist
L
LINUX DO - 热门话题
Cyberwarzone
Cyberwarzone
C
Cisco Blogs
Simon Willison's Weblog
Simon Willison's Weblog
G
Google Developers Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 叶小钗
T
The Blog of Author Tim Ferriss
博客园_首页
B
Blog
F
Fortinet All Blogs
AWS News Blog
AWS News Blog
V
Vulnerabilities – Threatpost
S
Secure Thoughts
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Forbes - Security
Forbes - Security
S
Security @ Cisco Blogs
T
Threat Research - Cisco Blogs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
Schneier on Security
Project Zero
Project Zero
Martin Fowler
Martin Fowler
C
Cybersecurity and Infrastructure Security Agency CISA
N
Netflix TechBlog - Medium
N
News and Events Feed by Topic

翔宇工作流

Hermes Agent 成本控制实战:模型路由 + 凭据池轮换 + Token 追踪 Hermes Agent + Home Assistant:用 AI 语音管家控制全屋智能家居 Hermes Agent 本地模型指南:Ollama + LM Studio 性能调优与模型选型 一人公司 AI 消息中枢:Hermes Agent 年省 12000 元实测 Hermes Agent 变现指南:7 种可落地的 AI Agent 商业模式详解 Hermes SOUL.md 人设工程 + 三层记忆深度解析:让 Agent 精确遵循你的人格 Hermes 语音模式完全攻略:CLI + Telegram + Discord 三表面免费搭建 Hermes Skill 自我进化系统:让 AI 助手越用越聪明 循环工程 Loop Engineering 指南:Skill 解决终止条件难题 用 Hermes Agent 搭建跨平台 AI 消息助手:一个 Agent 同时管 Telegram + Discord + 微信 Ghost 建站最佳实践:一人公司从零到有订阅者的完整手册 Hermes Agent Cron 定时自动化:任务链 + 预运行门控 + 零成本触发 Agent 工作流完全指南 2026:一人公司如何用多 Agent 自动化运营 Claude Code + Hermes MCP 消息桥接实战:任务完成自动通知手机 AI 知识库最佳实践:CLAUDE.md 多级路由 + 纯文件系统完整指南 零基础 AI 编程入门 2026:不会写代码,也能用 AI 做出产品 2026 年 8 大 AI Agent 横评:从 OpenClaw 到 Hermes,谁最适合你? Runway Gen-4.5 提示词怎么写?八层框架从零到电影级 2026 AI 编程工具横评:Cursor vs Claude Code vs Codex vs Windsurf 深度对比 Codex 最佳实践完整指南 Hermes Agent Docker 部署实战:VPS 24/7 运行完整方案 Veo 3.1 视频提示词怎么写?八层框架从零到电影级 Claude Code 完全指南 2026:安装到 Agent 工作流 | 翔宇工作流 AI 配图不用找参考图:GPT Image 2 + 100 种风格方案 | 翔宇工作流 Hermes Agent 完全指南:架构、部署、成本对比与 14 篇实战教程导航 可灵 AI 视频提示词怎么写?八层框架从零到电影级 MCP 最佳实践:8 大场景推荐 + 安装提示词 Vibe Coding 完全指南 2026:氛围编程入门到进阶 | 翔宇工作流 即梦 Seedance 2.0 提示词怎么写?八层框架从零到电影级 Claude Code /loop 实战指南:十个场景让 AI 替你干活 | 翔宇工作流 Claude Code 最佳实践完整指南 CLAUDE.md 最佳实践 | 6 套完整模板直接复制 小红书 AI 运营完全指南(2026):选品到批量发布 Agent 工作流实战指南(2026):从单 Agent 到多 Agent 协作 Agent 编程方法论(2026):从驾驭工程到上下文工程 AI 知识库构建指南(2026):从文档到 Agent 可用的知识资产 自媒体 AI 自动化指南(2026):从手动创作到 Agent 驱动 AI 图片与视频生成指南(2026):提示词、工具、工作流 一人公司 AI 创收指南(2026):从副业到全职的完整路径 Claude Code Skill 开发指南(2026):从零开发到变现 Claude Code 动态工作流(Dynamic Workflows)+ ultracode 实战 | 翔宇工作流 什么是 Harness Engineering(驾驭工程)?概念到实战(2026)| 翔宇工作流 多Agent协作完全指南:SSH+tmux 跨机器 AI 调度 AI 编程工具中文教程到底去哪学?我做了 aiworkflowtutorials.com Claude Code thinking modes 新手指南 | 翔宇工作流 Claude Code Subagents 新手指南 | 翔宇工作流 Claude Code Slash Commands 新手指南 | 翔宇工作流 Claude Code Plugins 新手指南 插件生态 | 翔宇工作流 Claude Code 权限新手指南:6 模式 + 沙箱 Claude Code MCP 怎么装新手指南 | 翔宇工作流 Claude Code Hooks 新手指南 | 翔宇工作流 Claude Code 上下文窗口新手指南 1M context | 翔宇 OpenAI Codex 团队协作指南:单人到小团队 | 翔宇工作流 怎么给 OpenAI Codex 派活不跑偏?7 步任务拆解 | 翔宇工作流 Codex Skills/Subagents/Hooks 新手指南 | 翔宇工作流 OpenAI Codex 沙箱与审批怎么配?双层防线新手指南 | 翔宇工作流 OpenAI Codex 模型怎么选?任务×推理档位速查表 | 翔宇工作流 OpenAI Codex MCP 服务器怎么装?新手指南 | 翔宇工作流 AI 副业实战中文教程站:8 条路怎么选 | 翔宇工作流 AI 自媒体运营中文教程站:6 平台怎么选 | 翔宇工作流 vibe coding 第一个项目手把手 | 翔宇工作流 OpenCode 安装教程:Claude Code、Codex 的第三条后路 Q-Day OpenClaw AI 销售介绍:Agent 销售闭环 | 翔宇工作流 vibe coding 工具怎么选?按身份选 | 翔宇工作流 SEO工具实战指南:用112条命令完成网站SEO诊断、GEO优化与AI搜索优化全流程 GoodTrans 介绍:长文档翻译交付可审校成果 | 翔宇工作流 AI 编程入门:零基础别再先学语法 | 翔宇工作流 学员实践:openbili AI 接入驾驶舱介绍 | 翔宇工作流 学员实践:42织序播客介绍 | 翔宇工作流 AI 编程中文教程哪里找?10 大主流工具公开站完整指南 vibe coding 是什么?能不能用、适合谁 | 翔宇工作流 Animaker Dev 介绍:头像照片+参考视频生成 AI 动画的学员实践 | 翔宇工作流 2026 RSS 订阅源大全:开源 1745 个源 + Claude Code 工作流
Hermes Kanban 多 Agent 编排:让多个 Agent 并行协作完成复杂任务
翔宇 · 2026-07-10 · via 翔宇工作流

Hermes Kanban 是一块持久化任务板,多个命名 Agent 从上面认领工作、并行执行、结构化交接——跨进程、跨重启、可追溯。

如果你已经在用 Hermes 做单 Agent 任务,但发现一个 Agent 做所有事效率太低、上下文太长、任务之间互相干扰——Kanban 就是你需要的下一步。

这篇文章适合谁:已上手 Hermes 单 Agent 的用户,准备升级到多个专精 Agent 并行协作。


为什么需要多 Agent 编排

单 Agent 的瓶颈很明显。

翔宇在实际使用中反复遇到三个问题:一个 Agent 同时处理研究、编码、审查三类任务时,上下文窗口被占满,前面讨论的细节被压缩丢失;长任务执行到一半进程崩溃,所有中间状态全部丢失,从头再来;需要人工确认的决策点无法优雅地暂停和恢复。

多 Agent 协作不是让一个 Agent 更聪明,而是让多个专精 Agent 各做各的事。

Hermes 提供了两种互补的多 Agent 机制:Kanban 持久化任务板用于跨进程、跨重启的长期协作,delegate_task 子代理委派用于进程内的短期并行推理。


Kanban 六列看板:任务卡片在 Triage 到 Done 之间流转

Kanban 的六列看板机制

Hermes Agent Kanban 官方文档页面:持久化任务板、六列定义与协作模式

Kanban 的核心是一个 SQLite 数据库(~/.hermes/kanban.db),在所有 Hermes Profile 之间共享。每个任务是数据库中的一行,每次交接是一条任何人都能读写的记录,每个 Worker 是一个拥有自身身份的完整操作系统进程。

💡 通俗讲:把 Kanban 想象成一块共享白板。你在白板上贴任务卡片,不同的人(Agent)走到白板前认领自己的卡片,做完后把结果写在卡片背面。白板不会因为某个人下班(进程退出)而消失。

六列定义

含义 典型状态
Triage 原始想法,调度器默认自动运行分解器 用户扔进来的一句话需求
Todo 已创建但等待依赖或未分配 父任务还没完成,排队中
Ready 已分配,等待调度器认领 万事俱备,等下一个 tick
In Progress Worker 正在执行,默认按 Profile 分组 某个 Agent 正在干活
Blocked Worker 请求人工输入,或断路器触发 需要你做决定,或者连续失败
Done 已完成 结果已写入,下游可读

任务在六列之间流转的逻辑是自动的:调度器每 60 秒执行一次 dispatch tick,检查 Ready 列中有任务的 Profile,为匹配的 Profile 派生 Worker 进程,Worker 通过工具集与看板交互,完成或阻塞后调度器处理状态转换。

依赖引擎

任务之间可以建立父子依赖关系。子任务在父任务完成前停留在 Todo 列,不会被提升到 Ready。这意味着你可以创建依赖链:设计 Schema → 实现 API → 编写测试——只有 Schema 任务完成后,API 任务才会变为 Ready。

工具集划分

Kanban 的工具严格分为两组:

Worker 工具(任务范围内操作):

  • kanban_show — 获取当前任务信息
  • kanban_complete — 标记任务完成,写入 summary 和 metadata
  • kanban_block — 阻塞任务,等待人工或审查
  • kanban_heartbeat — 报告进度
  • kanban_comment — 添加评论

Orchestrator 工具(跨任务路由):

  • kanban_list — 列出所有任务
  • kanban_create — 创建新任务
  • kanban_link — 建立任务依赖
  • kanban_unblock — 解除阻塞
  • kanban_comment — 对外部任务评论

这个分割不是建议,而是由 kanban-orchestrator Skill 强制执行的约束。Worker 不做分发或路由,Orchestrator 不做实现工作。


九种协作模式

Kanban 支持九种协作模式,覆盖了从简单并行到复杂流水线的各种场景:

模式 形状 适用场景 示例
P1 Fan-out N 个同级,同角色 同类任务批量并行 并行研究 5 个角度
P2 Pipeline 角色链:A → B → C 多角色依次处理 scout → editor → writer 组装每日简报
P3 Voting/Quorum N 个同级 + 1 个聚合器 需要多方评估后汇总 3 个研究员各自调研 → 1 个审查员选择最优
P4 Long-running Journal 同 Profile + 共享目录 + cron 持续维护型任务 长期维护 Obsidian 知识库
P5 Human-in-the-loop Worker 阻塞 → 用户评论 → 解除 模糊决策需要人参与 架构选型需要你拍板
P6 @mention 文本中的内联路由 临时指定某个 Agent 处理 @reviewer look at this
P7 Thread-scoped /kanban here 在线程中 按项目隔离任务板 每个项目一个 gateway 线程
P8 Fleet Farming 同一 Profile,N 个主题 大规模同质任务 50 个社交账号运营
P9 Triage Specifier 粗想法 → triage → specify → todo 需求从模糊到清晰 把一句话需求展开成完整规格

翔宇在实际使用中最常用的是 P1(并行研究)、P2(流水线)和 P5(人工闸门)。P8 在运营多个品牌频道时非常有用——每个品牌频道是同一个 content-creator Profile 的不同任务,自然并行。

编排模式:自动 vs 手动

Kanban 的任务分解有两种模式:

  • Auto 模式:Triage 列的任务自动被分解器处理——读取 Profile 名单和描述,生成子任务图,路由到最合适的专家
  • Manual 模式:点击卡片上的「Decompose」或运行 hermes kanban decompose <id>

分解器使用的模型可以在 auxiliary 配置段中单独指定:

提示词:生成看板分解器辅助配置

请帮我生成 Hermes config.yaml 的 auxiliary 配置段。要求:

  • 包含 kanban_decomposertriage_specifier 两个子项
  • 每个子项包含 provider(默认 "auto")和 model(默认空字符串)字段
  • 格式为 YAML

将生成的配置段添加到 ~/.hermes/config.yaml 的顶层即可。


delegate_task 子代理机制:父节点向三个完全隔离的子沙箱委派任务

delegate_task:进程内子代理委派

Kanban 是跨进程的持久化协作,而 delegate_task 是同一个进程内的轻量级委派。两者互补,不是替代关系。

核心机制

delegate_task 派生 AIAgent 子实例,每个子代理有三个关键特性:

完全隔离的对话 — 子代理从零开始,不知道父代理的对话历史、工具调用记录或讨论过的任何内容。唯一上下文来自 goalcontext 字段。

受限工具集 — 通过 toolsets 参数控制子代理可访问的工具。叶子子代理被永久阻止访问 delegate_taskclarifymemorysend_messageexecute_code 五个工具。

独立终端会话 — 每个子代理有自己的终端、工作目录和状态。中间工具调用不进入父上下文,只返回摘要。

并行批次

默认最多 3 个并发子代理(通过 delegation.max_concurrent_children 配置,无硬上限):

提示词:并行批次委派任务

请帮我写一个 delegate_task 调用,同时启动三个子代理。要求:

  • 两个子代理分别研究 topic A 和 topic B,工具集只开放 web
  • 一个子代理修复构建问题,工具集开放 terminal 和 file
  • 使用 tasks 列表批量传入

三个子代理同时启动,各自独立工作,结果按任务索引排序返回。如果批次超过 max_concurrent_children 限制,会返回工具错误而不是静默截断。

上下文传递的铁律

这是翔宇在实际使用中反复踩的坑:子代理完全不知道你的对话。必须在 goalcontext 中传递所有需要的信息。

提示词:正确传递上下文给子代理

请帮我写一个 delegate_task 调用,修复 api/handlers.py 第 47 行的 TypeError。要求:

  • goal 要具体到文件名和错误类型,不能写模糊的 "Fix the error"
  • context 要包含完整的错误信息('NoneType' object has no attribute 'get')
  • context 要说明函数名(process_request)、数据来源(webhook 的 dict)和根因('metadata' 键有时缺失)
  • 子代理完全看不到父代理的对话历史,所有背景必须写在 goal 和 context 中

关键原则:写得越模糊,子代理越容易跑偏。把 delegate_task 想象成给一个全新同事发邮件——对方完全不知道你之前做了什么。

💡 通俗讲:把 delegate_task 想象成给一个全新的同事发邮件。这个同事完全不知道你之前做了什么,你得在邮件里把所有背景信息写清楚。写得越具体,他干得越好。

模型覆盖

子代理可以配置更便宜的模型——这是成本优化的关键杠杆:

提示词:配置子代理使用便宜模型

请帮我在 Hermes config.yaml 中添加 delegation 配置段。要求:

  • model 设为 "google/gemini-flash-2.0"(或其他便宜快速模型)
  • provider 设为 "openrouter"
  • 格式为 YAML,放在 config.yaml 顶层

翔宇的做法是主 Agent 用贵模型做规划和综合,子代理用便宜模型做具体的研究或实现工作。一次三路并行研究,主 Agent 用 Claude Sonnet,子代理用 Gemini Flash,成本降低 80% 以上。

关于 Hermes 的完整成本控制策略,见 Hermes 成本控制指南


五种委派模式(Delegation Patterns)

Hermes Agent Delegation Patterns 官方文档页面:五种委派模式与工具集选择

官方文档定义了五种委派模式,每种解决一类特定问题:

Pattern 1:Parallel Research(并行研究)

三个话题同时研究,每个子代理独立搜索网页,返回摘要。父代理综合为连贯简报。

提示词:三路并行研究认证方案

请帮我写一个 delegate_task 调用,同时启动三个研究子代理。要求:

  • 项目背景:~/code/auth-service(Python, FastAPI)
  • 子代理 1:研究 OAuth 2.0 PKCE 流程,聚焦移动客户端,输出写入 /tmp/research-oauth.md
  • 子代理 2:研究 JWT 轮换和刷新令牌策略,聚焦令牌轮换与重放检测,输出写入 /tmp/research-jwt.md
  • 子代理 3:研究基于 Redis 的会话认证,聚焦 Redis 会话存储和 Cookie 安全,输出写入 /tmp/research-session.md
  • 每个子代理的 toolsets 开放 web 和 file
  • 每个子代理的 context 要包含项目路径、技术栈、聚焦点和输出文件路径

三个子代理完全隔离运行,互相不知道对方的存在,研究结论不会交叉污染。

Pattern 2:Code Review(代码审查)

委派安全审查到一个全新上下文的子代理。因为子代理不知道你写代码时的任何假设,它能用新鲜的视角审视代码。context 必须包含项目路径、文件列表、测试命令。

Pattern 3:Compare Alternatives(方案对比)

并行评估同一问题的多种方案。因为子代理之间完全隔离,每个评估独立进行,不会交叉污染——评估方案 A 的子代理不知道方案 B 的存在。

Pattern 4:Multi-File Refactoring(多文件重构)

把大重构任务分配到并行子代理,每个处理不同的代码区域。关键约束:如果两个子代理可能改同一个文件,留给父代理在并行工作完成后处理冲突。

Pattern 5:Gather Then Analyze(采集后分析)

先用 execute_code 做机械化数据收集(10+ 顺序工具调用,成本低),再用 delegate_task 做推理密集的分析(单次昂贵推理,干净上下文)。这是成本优化的经典模式。

并发和深度调优

配置 默认 效果
max_concurrent_children 3 每次 delegate_task 的并行批次大小
max_spawn_depth 1 能派生更深委派的层数

🔥 翔宇判断max_spawn_depth: 3 加上 max_concurrent_children: 3,理论上能产生 27 个并发叶子代理。每多一层乘以开销。翔宇建议 depth 保持默认的 1,需要嵌套时用 Kanban 代替——Kanban 的嵌套有依赖引擎保护,不会失控。


并行批次 vs Kanban 的对比

两种机制的并行方式完全不同:

Kanban 的并行性

Kanban 的并行天然来自调度器。每个 Profile 是一个独立的 Worker 池。调度器在每个 tick 为每个有 Ready 任务的 Profile 派生 Worker:

  • Translator Profile → 一个翻译任务在跑
  • Transcriber Profile → 一个转录任务在跑
  • Copywriter Profile → 一个文案任务在跑

三个 Profile 自然并行。同一 Profile 内的任务按优先级串行——这是有意设计,避免同一角色的两个 Worker 争抢资源。

delegate_task 的并行性

delegate_task 的并行通过 ThreadPoolExecutor 实现。默认 3 个并发子代理,结果按任务索引排序返回。

全维度对比

维度 delegate_task Kanban
生命周期 同步,在父轮次内完成 持久,跨重启存活
人工参与 不可,子代理不能用 clarify 可阻塞等人
发现性 父上下文内可见 Dashboard 全局可见
跨 Agent 不可,仅限父子关系 核心能力,任意 Profile 认领
进程模型 ThreadPoolExecutor 线程 每个 Worker 是独立 OS 进程
依赖管理 需 Orchestrator 手动协调 内建依赖引擎(--parent
失败恢复 父被中断则全部取消 断路器 + 崩溃检测 + 自动重试
最大深度 max_spawn_depth 限制 无限制(parent-child 链)
适用场景 短期推理、快速并行研究 跨边界、需持久、需人工的工作

💡 通俗讲:delegate_task 像你在会议中分配即时任务——"你去查 A,你去查 B,五分钟后回来汇报"。Kanban 像公司的项目管理看板——任务贴在板上,不同部门的人各自认领,做完交接,项目经理随时能看到全局进度。


Orchestrator 铁律:指挥官只分配任务不亲自动手,工人各司其职

Orchestrator 铁律

一个行为端正的 Orchestrator 绝不亲自做工作。

它分解用户的目标为任务,链接依赖,把每个任务分配给你设置的 Profile 之一,然后退场。kanban-orchestrator Skill 编码了三条约束:

  1. 反诱惑规则 — Orchestrator 不能写代码、不能运行测试、不能编辑文件
  2. Step-0 Profile 发现 — Orchestrator 必须先运行 hermes profiles list 发现机器上实际存在的 Profile,不能分配给不存在的 Profile(调度器对未知 assignee 静默失败)
  3. 分解手册 — 基于 kanban_createkanban_linkkanban_comment 的标准化分解流程

翔宇的 Orchestrator SOUL.md 模板长这样:

提示词:生成 Orchestrator SOUL.md

请帮我生成一个 Hermes Orchestrator Profile 的 SOUL.md 文件。要求:

  • 身份定义为任务分解和路由专家
  • 铁律部分包含五条:禁止自己做实现工作、禁止写代码/跑测试/编辑文件、分配必须基于机器上实际存在的 Profile、顺序任务必须创建依赖链、任务正文必须包含完整上下文
  • 分解流程分六步:读取用户目标 → 运行 hermes profiles list 发现可用 Profile → 拆分为 3-7 个离散任务 → 用 kanban_create 创建并用 kanban_link 建立依赖 → 分配到最合适的 Profile → 退场
  • 格式为 Markdown,包含标题、铁律列表和编号步骤

这份 SOUL.md 放在 Orchestrator Profile 的目录下,Hermes 启动时自动加载为系统提示词。


Kanban Tutorial:四个用户故事

官方教程用四个递进的用户故事展示 Kanban 的完整能力。翔宇把每个故事的关键操作提炼出来。

初始化

hermes kanban init           # 可选,首次使用自动初始化
hermes dashboard             # 打开 http://127.0.0.1:9119

Dashboard、CLI、Worker 工具三个入口共享同一个 SQLite 数据库,数据始终一致。

Story 1:Solo Dev 发布功能

三任务依赖链——设计 Schema → 实现 API → 编写测试:

提示词:创建三任务依赖链

请帮我用 hermes kanban create 创建三个有依赖关系的任务。要求:

  • 任务 1:"Design auth schema",分配给 backend-dev,tenant 为 auth-project,优先级 2,body 描述设计 user/session/token 的 schema
  • 任务 2:"Implement auth API endpoints",分配给 backend-dev,用 --parent 依赖任务 1,body 描述实现 POST /register、POST /login 等端点
  • 任务 3:"Write auth integration tests",分配给 qa-dev,用 --parent 依赖任务 2,body 描述覆盖正常路径和错误密码等场景
  • 每个任务创建后用 --json | jq -r .id 捕获 ID,作为下一个任务的 --parent 参数

依赖引擎自动管理提升:只有任务 1 在 Ready,任务 2 和 3 在 Todo 等待父任务完成。

Worker 完成任务时调用 kanban_complete,把结构化交接信息写入 task_runs 表:

提示词:结构化交接完成任务

请帮我写一个 kanban_complete 调用,完成 Schema 设计任务。要求:

  • summary 写一句话结论,包含设计出的表结构(如 users 表含 id/email/pw_hash,sessions 表含 id/user_id/jti/expires_at)
  • metadata 传入结构化数据,包含 changed_files 列表和 decisions 列表
  • summary 给下游 Worker 看,metadata 给下游 Worker 用

下游 Worker 调用 kanban_show() 时,会在 worker_context 中看到父任务的 summary 和 metadata——这就是结构化交接的威力。

Story 2:Fleet Farming(批量任务并行)

提示词:批量创建翻译和转录任务

请帮我用 shell 循环批量创建 Kanban 任务。要求:

  • 第一组:分别为 Spanish、French、German 三种语言各创建一个翻译任务,标题格式 "Translate homepage to {语言}",分配给 translator Profile,tenant 为 content-ops
  • 第二组:为 5 个客户电话录音各创建一个转录任务,标题格式 "Transcribe Q3 customer call #{编号}",分配给 transcriber Profile,tenant 为 content-ops
  • 使用 for 循环批量创建

三个专业 Profile 的任务在同一个 kanban.db 上并行推进。In Progress 列按 Profile 分组,每个 Worker 的活跃任务一目了然。

Story 3:角色流水线 + 重试

PM 写规格 → 工程师实现 → 审查员拒绝 → 工程师带改动重试 → 审查员通过。

重试是一等公民。每次尝试是 task_runs 表中的独立行,有自己的 outcome、summary、error、metadata。重试的 Worker 看到前次尝试的阻塞原因,针对性修复而非从头开始:

# 审查员发现问题,阻塞任务
kanban_block(
    reason="Review: password strength check missing, reset link isn't single-use"
)
# → 任务转到 blocked,run 1 以 outcome='blocked' 关闭

解除阻塞后,调度器把任务推回 Ready,下一 tick 派生新 Worker。新 Worker 调用 kanban_show() 时看到 run 1 的阻塞原因,针对性修复:

kanban_complete(
    summary="added zxcvbn strength check, reset tokens are now single-use",
    metadata={"changed_files": [...], "review_iteration": 2},
)

Story 4:断路器和崩溃恢复

断路器:连续 N 次失败后自动阻塞,防止看板无限抖动。

hermes kanban create "Deploy to staging (missing creds)" \
    --assignee deploy-bot --tenant ops \
    --max-retries 3

三次 spawn_failed 后任务变 blocked,outcome 为 gave_up。如果接入了 Telegram 或 Discord 或 Slack,网关在 gave_up 事件时自动发通知。

崩溃恢复:Worker 进程死掉(内存溢出、段错误),调度器通过 kill(pid, 0) 检测到死 PID,释放认领,任务回到 Ready,下一 tick 派发新 Worker。重试 Worker 看到崩溃历史,可以选择更安全的策略。


结构化交接通道:上游 summary+metadata 流入下游 worker_context,取代杂乱评论

Kanban 的结构化交接是它与普通任务管理工具的核心差异。

Worker 调用 kanban_show() 时获得的 worker_context 包含两部分信息:

  1. 当前任务的前次尝试 — outcome、summary、error、metadata
  2. 父任务结果 — 每个父任务最近完成 run 的 summary 和 metadata

这取代了平面看板系统中"翻评论和产出"的低效模式。PM 在 spec 的 metadata 写验收标准,工程师的 Worker 在父交接中结构化地看到这些标准——不是去评论区搜索,而是数据直接传递。

🔥 翔宇判断:结构化交接是 Kanban 最被低估的特性。大部分教程只讲任务创建和看板流转,但真正让多 Agent 协作高效的是交接质量。翔宇建议每个 kanban_complete 调用都认真写 summary(给下游看的一句话结论)和 metadata(给下游用的结构化数据),不要只写一个"done"。


Kanban Codex Lane:让 Codex 参与协作

Hermes 设计了一个名为 Kanban Codex Lane 的 Skill,让 Codex CLI 作为隔离实现车道参与 Kanban 协作。

设计原则

核心理念是"Hermes 是壳层,Codex 是引擎":

  • Hermes 始终是任务所有者 — 它调用 kanban_show,决定是否适合 Codex,创建隔离工作空间,启动和监控 Codex,协调差异,运行验证,写最终的 kanban_completekanban_block
  • Codex 仅是输入车道 — Codex 的输出不是任务完成信号,不是受信审查者,不允许直接写持久 Kanban 状态
  • Codex 成功退出时故意阻塞等待审查 — 依赖任务不会自动提升

Codex 被明确禁止调用 kanban_completekanban_blockkanban_create、网关消息或任何 Hermes 看板 CLI。

Worker Lane 架构

Kanban Worker Lane 是调度器可以路由任务的进程类别。当前有三种 Lane 类型:

Lane 类型 描述 当前状态
Profile Lane 标准形状:assignee 是 Profile 名,调度器派生 hermes -p <profile> 完全可用
Orchestrator Lane Profile Lane 的特化:工具集包含 kanban 但排除 terminal/file/code/web 完全可用
Non-Hermes CLI Lane 将非 Hermes CLI(Codex、Claude Code 等)作为 Worker Lane 尚未铺设

Non-Hermes CLI Lane 的 spawn_fn 是可插拔的,但包装 CLI 退出码到 kanban_complete/kanban_block、映射 CLI 工作空间惯例到 HERMES_KANBAN_WORKSPACE 环境变量等集成工作仍需逐案设计。Codex Lane 的 PR 因范围过大被关闭,等待从最新 main 重建的窄范围后续 PR。

关于 Hermes 的完整功能体系,见 Hermes Agent 完全指南


完整的三 Profile Kanban 实操

翔宇把从创建 Profile 到启动 Dashboard 的完整步骤整理出来:

提示词:搭建三 Profile 流水线并创建依赖链任务

请帮我完成以下五步 Hermes Kanban 搭建。要求:

第一步:创建三个专精 Profile

  • researcher:描述 "Deep web research and source gathering"
  • implementer:描述 "Code implementation with TDD"
  • reviewer:描述 "Code review and quality gates"

第二步:为每个 Profile 安装 Skill

  • researcher 安装 llm-wiki
  • implementer 安装 test-driven-development 和 subagent-driven-development
  • reviewer 安装 requesting-code-review

第三步:创建 Orchestrator Profile

  • 描述 "Task decomposition and routing only"

第四步:创建三任务依赖链(tenant 为 auth-project,优先级 2)

  • 任务 1:Research authentication best practices → 分配给 researcher,body 为调研 OAuth2/JWT/session-based auth
  • 任务 2:Implement auth module → 分配给 implementer,--parent 依赖任务 1,body 为按调研结论用 TDD 实现
  • 任务 3:Review auth implementation → 分配给 reviewer,--parent 依赖任务 2,body 为安全审查加代码质量检查
  • 每个任务用 --json | jq -r .id 捕获 ID 传给下游

第五步:启动 Dashboard

这个配置创建了一个 P2 Pipeline 模式的三阶段流水线:researcher 调研最佳实践 → implementer 按调研结论实现 → reviewer 做安全审查。每个阶段完成后,结构化交接数据自动传递到下游。

每个 Worker 是完整的 Hermes 实例

一个容易忽视的细节:每个 Kanban Worker 是一个完整的 Hermes 实例,拥有自己的 Agent 循环(Agent Loop)。这意味着每个 Worker 可以在执行任务过程中独立学习和创建 Skill——第一次做代码审查时创建的 Skill,后续任务自动可用。Orchestrator 不需要知道 Worker 的 Skill 细节,Worker 自适应。

关于 Hermes 的 Skill 进化系统如何工作,见 Hermes Skill 自我进化系统


config.yaml 完整 delegation 配置段

提示词:生成完整的 delegation 配置段

请帮我生成 Hermes config.yaml 的 delegation 配置段。要求包含以下五个字段:

  • max_concurrent_children:每次 delegate_task 的并行批次大小,设为 3
  • max_spawn_depth:子代理嵌套深度,设为 1(扁平,不嵌套)
  • model:子代理默认模型,设为 "google/gemini-flash-2.0"(可选)
  • provider:子代理默认提供商,设为 "openrouter"(可选)
  • orchestrator_enabled:是否允许 orchestrator 角色的子代理,设为 true
  • 格式为 YAML,每个字段加注释说明用途
配置项 推荐值 原因
max_concurrent_children 3 平衡并行度和系统负载
max_spawn_depth 1 避免嵌套失控,需要嵌套用 Kanban
model 便宜快速模型 子代理做执行,不需要最贵的推理能力

嵌套编排:Kanban vs delegate_task

当任务需要嵌套时,两种机制的行为差异很大:

delegate_task 的嵌套

通过 role="orchestrator" 允许子代理再委派:

提示词:嵌套委派——子代理再派生子代理

请帮我写一个 delegate_task 调用,委派一个 Orchestrator 子代理。要求:

  • goal 为 "Survey three code review approaches and recommend one"
  • role 设为 "orchestrator"(允许该子代理再派生叶子子代理)
  • context 包含项目背景和评估维度

这个 Orchestrator 子代理可以再派生三个叶子子代理分别研究三种方案,然后综合结论。但嵌套深度受 max_spawn_depth 限制。

Kanban 的嵌套

通过 --parent 参数建立任务依赖:

提示词:创建扇入依赖——多个研究汇聚到一个综合任务

请帮我用 hermes kanban create 创建四个任务的扇入结构。要求:

  • 三个并行研究任务:分别研究 approach A/B/C,全部分配给 researcher Profile
  • 一个综合任务:"Synthesize findings",分配给 analyst Profile
  • 综合任务用 --parent 同时依赖三个研究任务(传入三个 --parent $ID
  • 每个研究任务用 --json | jq -r .id 捕获 ID

SYNTHESIS 任务在三个 RESEARCH 任务全部完成前停留在 Todo。Kanban 的嵌套没有深度限制,依赖引擎自动管理提升。

两者的本质差异

维度 Kanban 嵌套 delegate_task 嵌套
持久性 持久,跨重启存活 瞬时,父轮次内完成
依赖管理 内建依赖引擎 需 Orchestrator 手动协调
失败恢复 断路器 + 崩溃检测 父中断则全部取消
人工参与 可阻塞等人 不可

多看板支持

当项目多了之后,一个全局看板会变得拥挤。Hermes 支持创建独立的 Board:

hermes kanban board create my-project
hermes kanban --board my-project create "任务标题" --assignee backend

每个 Board 有独立的 kanban.db,Worker 物理上无法看到其他 Board 的任务。这在多项目并行时非常有用——auth-project 的任务和 payment-project 的任务完全隔离。


Kanban 相关 Skill 推荐

Hermes 生态中有几个 Skill 与 Kanban 多 Agent 协作直接相关:

Skill 用途 与 Kanban 的协同
kanban-orchestrator 强制 Orchestrator 不做实现工作 Orchestrator Profile 必装
subagent-driven-development 通过 delegate_task 执行实现计划,带两阶段审查 Worker 内部用它做复杂任务
requesting-code-review 预提交验证流水线,含独立审查者子代理 Pipeline 模式的审查者 Profile 用
test-driven-development 强制 RED-GREEN-REFACTOR 循环 实现者 Profile 用它保证代码质量
llm-wiki 构建和查询互链 Markdown 知识库 P4 模式的研究员 Profile 用

一个典型的配置:研究员 Profile 装 llm-wiki,实现者 Profile 装 test-driven-development 和 subagent-driven-development,审查者 Profile 装 requesting-code-review。每个 Profile 的 Skill 组合决定了它的专业能力。


行业对比:Hermes Kanban 的定位

Hermes Kanban 不是唯一的多 Agent 编排方案,但它的定位非常独特。

同类工具

工具 定位 与 Hermes 的核心差异
Kagan 多 Agent CLI 编排层,强制人工审查闸门 REVIEW → DONE 转换必须人工批准;Hermes 更灵活
Claw-Kanban 6 种 Agent CLI 统一仪表盘 统一管理异构 Agent;Hermes 是单框架内的多 Profile 协作
Kangentic 桌面看板,跨异构 Agent 交接上下文 跨厂商 CLI 交接;Hermes 限于同框架 Profile 交接
Routa 工作空间优先的多 Agent 协调平台 多协议集成(ACP/MCP/A2A);Hermes 以看板为中心

Microsoft 的三种编排模式

微软 Azure 的 AI Agent 编排文档定义了三种模式:

模式 描述 Hermes 对应
Supervisor 中心 Agent 分配任务给专家 Kanban Orchestrator Profile
Adaptive 每个 Agent 独立决定下一步 Profile Lane + 自我改进循环
Custom 完全自定义编排逻辑 spawn_fn 可插拔 + 插件系统

Hermes 的独特之处在于它同时覆盖了三种模式:Orchestrator 做 Supervisor,每个 Worker 通过自我改进循环做 Adaptive,Worker Lane 的可插拔架构支持 Custom。


社区反响

Kanban 多 Agent 功能在社区引发了强烈反响。Nous Research 官方 User Stories 页面收录了一篇标题为 "WHAT IS THE NEW KANBAN FEATURE BUILT INTO HERMES? (IT'S GAME CHANGING)" 的 Reddit 帖子。

社区反复提到的三个赞点:

  1. 持久性 — 不像 delegate_task 在父轮次中断时全部丢失,Kanban 任务跨重启存活
  2. 可见性 — Dashboard 让你随时看到所有 Agent 在做什么,不用翻日志
  3. 结构化交接 — 不是"去评论区找信息",而是 summary 加 metadata 在父子任务间结构化传递

YouTube 上也有多个深度教程,其中 "I Built the Ultimate Multi-Agent Workflow w/ Hermes Agent Kanban Board" 获得了超过 24000 次观看。

关于 Hermes 的定时任务自动化能力,见 Hermes Cron 自动化。如果你还没开始用 Hermes,建议先从 Hermes Agent 完全指南 入手。更多关于多 Agent 协作的通用方法论,见翔宇之前写的 多 Agent 协作指南


常见问题

Hermes Kanban 和 delegate_task 有什么区别?

delegate_task 是同步的进程内委派,子代理在父轮次内完成后返回结果。Kanban 是持久化的跨进程任务板,任务跨重启存活,支持人工介入和多 Agent 认领。前者适合短期推理任务,后者适合跨边界、需持久化、需人工参与的工作。两者互补——Kanban Worker 内部可以使用 delegate_task 进一步并行。

Kanban 最多能跑多少个 Agent 并行?

并行数等于 Profile 数量——三个 Profile 就是三路并行,十个就是十路。同一 Profile 内的任务按优先级串行,跨 Profile 天然并行。

delegate_task 的子代理能看到父代理的对话历史吗?

不能。子代理完全隔离,唯一上下文来自 goalcontext 字段显式传入的内容。这是有意设计——隔离防止父代理偏见传递。

Kanban 任务失败了怎么办?会无限重试吗?

不会。内置断路器在连续 N 次失败(默认 2 次,--max-retries 可调)后自动阻塞任务为 gave_up 状态,接入消息网关时自动发通知。

Orchestrator 可以自己做实现工作吗?

绝对不可以。Orchestrator 只负责分解目标、链接依赖、分配 Profile 后退场,kanban-orchestrator Skill 通过反诱惑规则强制执行这一约束。

可以给 Kanban Worker 和 delegate_task 子代理配置不同的模型吗?

可以。delegate_task 通过 delegation.model 配置子代理模型,Kanban 每个 Profile 独立配置。典型做法是 Orchestrator 用贵模型做规划,Worker 用便宜模型做执行。

Kanban 能让 Codex 参与协作吗?

设计了 Kanban Codex Lane,Codex 作为隔离实现车道参与协作,Hermes 保留任务所有权,成功退出时故意阻塞等待审查。该 PR 因范围过大被关闭,等待窄范围后续 PR。

Kanban 和工作流是什么关系?

工作流是单 Agent 内的多步指令执行,Kanban 是多 Agent 间的任务分发和交接。Kanban 不替代工作流,而是在更高层级编排——一个 Kanban 任务的 Worker 内部可以执行一个完整工作流。两者是互补的层级关系。


下一步

  • AI 编程实操课:Claude Code + Codex + Agent 工作流,覆盖一人公司、自媒体自动化、AI 副业全场景。237 篇实战教程 + 最佳实践 + 源码包,跟着做就出成果。国内版-FlowUS | 国际版-BMC
  • YouTube 频道翔宇工作流
  • 微信公众号:搜索「翔宇工作流」