Hermes Agent 多 Agent 工作流入门:delegate_task、Kanban、Cron 与 worktree(小白版)
一篇面向新手的 Hermes Agent 多 Agent 使用指南,讲清 delegate_task、Kanban、Cron 与 worktree 的区别、配置和避坑。
Hermes Agent 多 Agent 工作流入门:delegate_task、Kanban、Cron 与 worktree(小白版)
适合对象:刚开始使用 Hermes Agent、听说“多 agent”但不知道怎么配置和怎么用的人。
本文依据 Hermes Agent 官方文档整理,重点参考:
- Subagent Delegation: https://hermes-agent.nousresearch.com/docs/user-guide/features/delegation
- Kanban Multi-Agent Board: https://hermes-agent.nousresearch.com/docs/user-guide/features/kanban
- Kanban Tutorial: https://hermes-agent.nousresearch.com/docs/user-guide/features/kanban-tutorial
- Cron Scheduled Tasks: https://hermes-agent.nousresearch.com/docs/user-guide/features/cron
- Git Worktrees: https://hermes-agent.nousresearch.com/docs/user-guide/git-worktrees
- Configuration: https://hermes-agent.nousresearch.com/docs/user-guide/configuration
- Toolsets Reference: https://hermes-agent.nousresearch.com/docs/reference/toolsets-reference
1. 先用一句话理解 Hermes 的“多 Agent”
Hermes 的多 Agent,不是一个机器人变聪明一点,而是:
一个主 Agent 可以把任务拆给多个“子 Agent”或多个“角色 Agent”去做。
你可以把它想成一个小团队:
- 主 Agent:项目经理,负责理解你的目标、拆任务、汇总结果。
- 子 Agent:临时助手,帮忙查资料、检查代码、分析问题。
- Kanban Worker:有名字、有角色、能长期接任务的工人,比如 researcher、writer、backend-dev、reviewer。
- Cron Agent:定时自动运行的 Agent,比如每天早上自动总结新闻。
2. Hermes 里常见的 4 种“多 Agent”玩法
玩法 A:delegate_task,临时叫几个子 Agent 来帮忙
这是最简单、最常用的多 Agent。
适合:
- 让 3 个 Agent 同时查 3 个资料来源
- 让一个 Agent 写草稿,另一个 Agent 复核
- 让子 Agent 检查代码、找 bug、做对比分析
特点:
- 子 Agent 是临时的,用完就结束。
- 子 Agent 有隔离的上下文;它只知道主 Agent 传给它的 goal/context,不知道父会话完整历史。
- 如果任务涉及工具/终端操作,不要依赖父会话里的临时状态。
- 即使父 Agent 指定 toolsets,某些工具也会被 Hermes 固定禁止给 leaf subagent,例如 delegation、clarify、memory、send_message、execute_code/code_execution 等;这是安全边界,不是配置错误。
- 子 Agent 不知道主 Agent 前面聊过什么,所以主 Agent 必须把背景写清楚。
- 子 Agent 最后只把总结交回给主 Agent,中间过程不会全部塞回主上下文。
- 批量 delegate_task 默认最多允许 3 个并发子 Agent;如果一次提交的 tasks 数量超过该限制,当前版本会返回工具错误,而不是自动排队。可通过
delegation.max_concurrent_children调整。 - 这是同步的:主 Agent 会等子 Agent 完成后再继续。
- 不适合跑很久或必须跨会话保存的任务。
你可以这样对 Hermes 说:
请你调用 3 个 subagent:
1. 一个查官方文档;
2. 一个检查我这份配置有没有问题;
3. 一个站在小白角度指出哪里看不懂。
最后把三份结果合并成一版建议。
如果你自己在代码或工具层面使用,核心工具叫:
delegate_task
玩法 B:Kanban,多角色长期协作的任务看板
Kanban 是更正式的多 Agent 协作系统。
适合:
- 一个任务要拆成很多步骤
- 不同角色接不同任务
- 任务需要重试、阻塞、恢复、审查
- 你希望任务进度能被人类看到
- 你希望 Agent 重启后任务还在
你可以把 Kanban 理解成一个本地任务看板数据库。
官方文档里说,每个任务会存在 SQLite 数据库里,默认位置是:
~/.hermes/kanban.db
如果只用默认 board,就是这个文件;如果启用多 board,每个 board 会有自己的数据库路径。
Kanban 里的常见角色:
- researcher:调研
- writer:写稿
- backend-dev:写后端
- frontend-dev:写前端
- reviewer:复核
- ops:运维
Kanban 和 delegate_task 最大区别:
| 对比 | delegate_task | Kanban |
|---|---|---|
| 用途 | 临时并行处理 | 长期任务协作 |
| 子 Agent 身份 | 临时、匿名 | 有 profile/角色名 |
| 是否耐久 | 不耐久,父任务中断就可能没了 | 耐久,任务存在数据库里 |
| 人类可见性 | 主要看主 Agent 汇总 | 可以看板、CLI、dashboard 查看 |
| 适合场景 | 快速复核、调研、分析 | 项目流水线、多人/多角色协作 |
玩法 C:Cron,定时自动运行 Agent
Cron 不是传统意义的“多个 Agent 同时工作”,但它也是多 Agent 工作流的一部分。
适合:
- 每天早上自动总结 RSS/新闻
- 每小时检查服务器状态
- 每周生成项目报告
- 定时触发某个技能或脚本
注意:Cron 任务的创建和保存不等于它一定会自动执行。定时执行通常由 gateway daemon 的 scheduler 负责;如果 gateway/scheduler 没有运行,到点任务不会被触发。创建后建议检查:hermes gateway status 和 hermes cron status。
你可以这样说:
每天早上 9 点帮我总结 AI 新闻,并发到当前聊天。
如果你是在 Telegram/Discord/Slack 等聊天入口里创建,默认可回到 origin 聊天;如果你在 standalone CLI 里创建,默认通常保存到本地输出目录,除非显式设置 deliver 目标。具体以 hermes cron create --help 为准。
Hermes 会使用 cronjob 工具创建定时任务。
CLI 示例:
hermes cron create "every 1d at 09:00" "总结过去 24 小时的 AI 新闻"
hermes cron list
# 把 JOB_ID 换成 hermes cron list 看到的实际任务 ID
hermes cron pause JOB_ID
hermes cron resume JOB_ID
hermes cron remove JOB_ID
玩法 D:启动多个 Hermes 进程,各跑各的
这是更“硬核”的方式:你可以开多个终端,每个终端启动一个 Hermes。
适合:
- 多个长期任务并行
- 每个 Agent 在不同目录或 git worktree 里工作
- 你想让它们完全隔离
如果是写代码,推荐配合 git worktree。
最简单的命令:
cd /path/to/your/repo
hermes -w
-w 表示自动创建一个隔离的 git worktree,让这个 Hermes 在单独分支/目录里工作,减少多个 Agent 同时改同一个文件造成冲突。
也可以开多个终端:
# 终端 1
cd /path/to/your/repo
hermes -w
# 终端 2
cd /path/to/your/repo
hermes -w
3. 小白应该先用哪一种?
建议按这个顺序学:
第一步:先学 delegate_task
因为它最简单。你只要用自然语言告诉 Hermes:
请调用 subagent 帮我复核这份内容。
或者:
请并行调用 3 个 subagent,分别从准确性、可读性、可操作性三个角度检查。
第二步:再学 hermes -w / Git worktree
如果你让多个 Agent 改代码,就要学会隔离,否则容易互相覆盖。
第三步:项目复杂后再学 Kanban
当任务开始变成“调研 → 编写 → 复核 → 修改 → 发布”这种流水线,就可以用 Kanban。
第四步:重复任务再交给 Cron
如果一件事你每小时、每天、每周都要做,就用 Cron。
4. 使用 delegate_task 前要配置什么?
4.1 确认 delegation 工具集可用
Hermes 的子 Agent 能力来自 delegation toolset。
你可以用交互界面检查工具:
hermes tools
或者查看工具列表:
hermes tools list
如果你在某个平台,比如 CLI、Telegram、Discord 上用 Hermes,要确认该平台启用了 delegation。
注意:工具变更通常需要新会话才生效。在聊天里可以 /reset,CLI 可以退出后重开;如果是在 gateway 平台改工具,可能还需要重启 gateway 或开启新会话。
4.2 配置子 Agent 的并发数量
默认情况下,批量 delegate_task 最多同时跑 3 个子 Agent;超过限制通常会报工具错误,而不是自动排队。
如果你想改,可以编辑:
hermes config edit
在 ~/.hermes/config.yaml 里加入或修改:
delegation:
max_concurrent_children: 3
也可以用命令设置:
hermes config set delegation.max_concurrent_children 3
新手建议先保持 3,不要一上来开太大。
为什么?
因为并发越多,速度可能越快,但也会:
- 花更多 token/API 费用
- 更容易撞到限速
- 输出更难管理
- 如果每个 Agent 都能操作文件,冲突风险更高
4.3 配置子 Agent 使用哪个模型
默认情况下,子 Agent 会继承主 Agent 的模型和 provider。
如果你想让子 Agent 用更便宜或更快的模型,可以在配置里写:
delegation:
provider: openrouter
model: google/gemini-flash-2.0
或者使用你自己的 provider/model。
官方文档说明:如果不配置,subagent 默认继承父 Agent 的 provider 和 model。
新手建议:
- 刚开始不要单独配置 delegation model。
- 先确认主 Agent 能正常用。
- 等你经常使用 subagent 后,再考虑给子 Agent 换便宜模型。
4.4 是否允许子 Agent 再创建子 Agent?
默认情况下,Hermes 的 delegation 是“扁平”的:
主 Agent 可以创建子 Agent,但子 Agent 默认不能继续创建孙 Agent。
这可以避免无限套娃、费用失控。
如果你真的需要多层级,先理解费用、复杂度和失控风险,再按官方 Configuration 文档提高 max_spawn_depth,并在调用时使用 orchestrator 角色。默认 max_spawn_depth: 1,role="orchestrator" 在默认深度下基本不会产生孙 Agent;要允许一层孙 Agent 通常需设为 2。官方会限制深度上限,并可用 delegation.orchestrator_enabled: false 全局禁用。
新手不建议一开始打开多层级。先用默认的一层就够了。
5. 如何正确地让 subagent 工作?
最重要的一条:把背景讲清楚。
因为 subagent 没有你当前聊天的完整记忆。技术上可以理解为:父 Agent 调用 delegate_task 时,只会把写在 goal/context 里的信息交给 child AIAgent。
不好的说法
请让 subagent 修一下这个问题。
问题:subagent 不知道“这个问题”是什么。
好的说法
请调用一个 subagent 复核下面这份 Hermes 多 Agent 入门文案。
复核重点:
1. 是否符合官方文档;
2. 小白是否看得懂;
3. 命令是否有风险或缺少前提;
4. 是否混淆 delegate_task、Kanban、Cron、worktree。
这是文案:
……
推荐模板
你可以复制这个模板给 Hermes:
请调用 N 个 subagent 来处理这个任务。
背景:
[这里写项目背景、文件路径、目标、限制]
每个 subagent 的分工:
1. [角色 A]:负责……
2. [角色 B]:负责……
3. [角色 C]:负责……
要求:
- 不要问我问题,基于现有信息完成。
- 如果不确定,明确写出假设。
- 最后输出:发现的问题、修改建议、风险点、最终结论。
6. Kanban 怎么配置和使用?
先记住 Kanban 跑起来需要四样东西:
- 一个任务数据库:默认
~/.hermes/kanban.db。 - 一个持续运行的 gateway/dispatcher:负责认领任务、启动 worker。
- 一个能正常启动的 profile/worker:比如 researcher、writer、reviewer。
- worker 加载
kanban-workerskill,并使用kanban_*tools 读取、更新、heartbeat、完成或阻塞任务。
注意区分两类使用者:
- 人类用户:主要使用
hermes kanban ...CLI 或 dashboard 创建、查看、管理任务。 - Worker Agent:应该加载
kanban-workerskill,并使用 Hermes 提供的kanban_*tools 工作,而不是主要靠 shell 里手敲hermes kanban命令。
安全提示:下面的命令会在本机创建数据库、profile、后台服务、定时任务或 git worktree。第一次运行前建议先执行对应的 --help,并确认当前目录、模型、provider 和工具权限配置正确。
6.1 初始化 Kanban
hermes kanban init
官方文档也说明,第一次运行很多 hermes kanban 命令时会自动初始化;但小白可以手动 init,更直观。
6.2 启动 gateway,让 dispatcher 工作
Kanban 任务需要 dispatcher 来认领任务、启动对应 profile 的 worker。
官方文档说明:默认情况下 dispatcher 嵌在 gateway 进程里。
常见命令:
hermes gateway start
或前台运行:
hermes gateway run
gateway/dispatcher 需要保持运行;如果关闭 gateway,Kanban 数据库里的任务仍然存在,但不会自动被 worker 认领执行。
如果你已经安装成后台服务,也可以:
hermes gateway status
hermes gateway restart
注意:不要同时跑 gateway 内置 dispatcher 和已废弃的独立 hermes kanban daemon,官方文档提示这样可能造成 claim race,不推荐。
6.3 创建不同角色的 profile
Kanban 的 worker 通常按 profile 来区分角色。
比如:
# 从当前能正常使用的 profile 克隆配置,避免空 profile 没模型/API key
hermes profile create researcher --clone
hermes profile create writer --clone
hermes profile create reviewer --clone
# 可选:快速确认每个 profile 能正常调用模型
hermes -p researcher chat -q "只回复 OK"
hermes -p writer chat -q "只回复 OK"
hermes -p reviewer chat -q "只回复 OK"
你可以给不同 profile 配不同模型、工具、记忆和习惯。仅创建 profile 名称还不够;实际使用前请确认这些 profile 能正常启动 Hermes、能访问需要的工具,并已安装或加载 kanban-worker skill。
查看 profile:
hermes profile list
使用某个 profile:
hermes --profile researcher
6.4 安装/确认 Kanban worker 技能
官方文档建议 worker 加载 kanban-worker 技能,因为它会教 worker:
- 开始时读取任务
- 在工作中发送 heartbeat
- 完成时写 summary/metadata
- 卡住时 block 任务
命令:
# 以当前版本 skills 列表/官方文档中的实际名称为准
hermes -p researcher skills install devops/kanban-worker
hermes -p writer skills install devops/kanban-worker
hermes -p reviewer skills install devops/kanban-worker
dispatcher 通常会在启动 worker 时自动传入 kanban-worker skill;但新手仍应确认该 skill 在目标 profile 中可用,尤其是使用自定义 profile 或裁剪安装时。
如果你有专门负责任务拆解的 orchestrator,也可以安装:
# 以当前版本 skills 列表/官方文档中的实际名称为准
hermes skills install devops/kanban-orchestrator
6.5 创建一个 Kanban 任务
例子:让 researcher 做调研。
hermes kanban create "调研 Hermes Agent 多 Agent 官方文档" \
--assignee researcher \
--body "请阅读官方 delegation、kanban、cron、worktree 文档,输出:1) 关键概念;2) 新手最容易误解的点;3) 推荐使用场景。不要修改文件,只写总结。"
然后查看:
hermes kanban list
hermes kanban watch
当 dispatcher 发现这个任务后,会启动 researcher profile 去执行。
如果任务一直不动,先查:
hermes gateway status
hermes kanban list
# 把 TASK_ID 换成 hermes kanban list 看到的实际任务 ID
hermes kanban runs TASK_ID
hermes kanban log TASK_ID
6.6 创建有依赖关系的流水线
比如:先调研,再写文案,再复核。
简化理解:
调研任务完成后,写作任务才能开始;
写作任务完成后,复核任务才能开始。
Kanban 支持任务依赖/父子任务等机制,用于表达“某任务完成后,后续任务才能开始”。具体状态名和命令请以当前版本 hermes kanban --help 为准。
具体命令会随版本变化,建议用:
hermes kanban --help
hermes kanban create --help
hermes kanban link --help
7. 多 Agent 改代码时,为什么要用 worktree?
如果两个 Agent 同时改同一个项目,很容易出现:
- A 改了文件,B 又覆盖
- 两个 Agent 同时跑测试,环境互相影响
- git diff 混在一起,不知道谁改了什么
所以官方推荐用 git worktree 隔离。
最简单方式:
cd /path/to/repo
git status # 先确认这里是 Git 仓库,并看清是否有未提交改动
hermes -w
使用 hermes -w 前,请确认当前目录是 Git 仓库。如果你有重要未提交改动,先确认是否要提交或备份。worktree 能隔离文件目录,但不能自动解决最终合并冲突。
每个 hermes -w 会创建一个独立 worktree 和分支。任务结束后,先在该 worktree 内运行 git status / git diff 看改动;满意后 commit,再回主仓库 merge 或 cherry-pick。worktree 能隔离目录,但不能自动解决最终合并冲突。
新手记住一句话:
多个 Agent 同时改代码,优先用
hermes -w。
8. Cron 定时任务怎么和多 Agent 配合?
Cron 可以定时启动一次独立的 Agent 运行。创建前先确认 scheduler/gateway 正在运行:
hermes gateway status
hermes cron status
如果任务需要特定技能:
# 前提:已安装并确认该 skill 可用;SKILL_NAME 换成实际技能名
hermes cron create "every 1h" \
"读取指定 RSS 源,汇总过去 1 小时的新内容,输出标题、链接和一句话摘要" \
--skill SKILL_NAME
如果任务只需要特定工具,可以通过 cronjob 的 enabled_toolsets 限制工具,降低风险和成本。
比如只允许 web 和 file。注意:这是 cronjob 工具参数的概念示例,不是 shell 命令:
enabled_toolsets=["web", "file"]
如果通过 CLI 创建,请先查看 hermes cron create --help,确认当前版本是否支持对应参数。
新手建议:
- 定时任务的 prompt 要自包含,不要写“像上次那样”。
- 因为定时任务运行时没有人在场,不能临时问你问题。
- 如果只是检查阈值,能用脚本就用 no-agent 模式,省 token。脚本通常放在
~/.hermes/scripts/,参数和路径以hermes cron create --help为准。
9. 常见推荐配置
9.1 新手安全配置
delegation:
max_concurrent_children: 3
max_spawn_depth: 1
解释:
- 批量任务同时最多 3 个子 Agent。
- 只允许主 Agent 创建子 Agent,不允许继续套娃。
- 不主动开启多层 delegation;只有明确需要“子 Agent 再拆任务”时,再研究 orchestrator。
9.2 子 Agent 用便宜模型
delegation:
provider: openrouter
model: google/gemini-flash-2.0
max_concurrent_children: 3
解释:
- 主 Agent 可以用强模型做决策。
- 子 Agent 用便宜模型做资料整理、初步复核。
注意:模型名和 provider 要以你自己的 Hermes 配置为准。
9.3 多 Agent 写代码
新手优先使用明确的 CLI 参数:
hermes -w
如果你的 Hermes 版本支持全局 worktree 配置,可按官方 Configuration 文档设置;字段名请以当前版本文档为准。
解释:
- 每个 Hermes 会进入独立 git worktree。
- 更适合并行开发。
10. 权限和成本边界
多 Agent 很强,但也更容易花钱和扩大权限。建议遵循最小权限原则:
- 子 Agent 只给它完成任务需要的 toolsets。
- Cron 和 Kanban 是后台/无人值守场景,更要限制 file、terminal、browser、send_message 等能力。
- prompt 里写清楚输出位置、允许修改的文件范围、不要做什么。
- 并发数量先小后大,确认稳定后再提高。
11. 小白最容易踩的坑
坑 1:以为 subagent 知道当前聊天全部内容
它不知道。你要把任务背景、文件路径、错误信息、目标都写清楚。
坑 2:并发开太大
并发越大,费用和出错概率越高。新手先用 2~3 个。
坑 3:让多个 Agent 同时改同一份代码
容易冲突。用 hermes -w 或手动 git worktree。
坑 4:把 delegate_task 当后台任务
delegate_task 是同步的,不是持久后台任务。父 Agent 会同步等待结果;如果父会话中断、进程退出或任务超时,不应依赖 delegate_task 继续在后台可靠运行。需要持久状态请用 Kanban;需要定时重复请用 Cron。
坑 5:Kanban worker 不写 summary/metadata
这样后续 Agent 很难接手。完成任务时要留下清楚的交接信息。
坑 6:定时任务 prompt 不自包含
Cron 任务以后会在没有你的上下文里运行。prompt 要写清楚:目标、数据来源、输出格式、交付位置。
坑 7:工具改完没有重开会话
很多工具/配置变更需要 /reset 或重启 Hermes 才生效。
12. 一套从简单到复杂的实践路线
第 1 天:只用 subagent 复核
对 Hermes 说:
请调用 3 个 subagent,从准确性、可读性、可操作性复核这份文案。先只输出问题清单和修改建议,不要直接改文件。
第 2 天:用 subagent 并行调研
请调用 3 个 subagent,分别调研官方文档、GitHub README、社区案例,最后合并成一份摘要。
第 3 天:用 hermes -w 让两个 Agent 改不同功能
cd /path/to/repo
hermes -w
另开一个终端:
cd /path/to/repo
hermes -w
第 4 天:用 Kanban 跑一个小流水线
hermes kanban init
# 克隆当前可用 profile,避免空 profile 没模型/API key
hermes profile create researcher --clone
hermes profile create writer --clone
hermes profile create reviewer --clone
# 确认每个 profile 能启动
hermes -p researcher chat -q "只回复 OK"
hermes -p writer chat -q "只回复 OK"
hermes -p reviewer chat -q "只回复 OK"
# 给 worker profile 安装/确认 skill
hermes -p researcher skills install devops/kanban-worker
hermes -p writer skills install devops/kanban-worker
hermes -p reviewer skills install devops/kanban-worker
hermes gateway start
hermes gateway status
hermes kanban create "调研某个主题" \
--assignee researcher \
--body "请输出 5 条要点和来源,不要修改文件。"
hermes kanban watch
第 5 天:用 Cron 自动跑重复任务
hermes gateway start
hermes cron create "every 1d at 09:00" "总结昨天的重要信息,输出 5 条要点"
hermes cron status
13. 最后给小白的选择指南
如果你不知道该用哪个,就按下面选:
- 我只是想让 AI 找人帮忙复核一下:用
delegate_task。 - 我想同时查几个方向的资料:用
delegate_task批量并行。 - 我要多个角色长期协作:用 Kanban。
- 我要每天/每小时自动做事:用 Cron。
- 我要多个 Agent 同时改代码:用
hermes -w或 git worktree。 - 我要几个隔离的 Agent 同时手工处理任务:开多个终端或 tmux,分别运行 Hermes。
- 我要任务可持久保存、可重试、可阻塞和恢复:用 Kanban。
一句话总结:
小任务用 delegate_task,长期协作用 Kanban,重复任务用 Cron,并行改代码用 worktree。