词元之母TOK.MOM - 平台充值汇率 1:1 即 1 人民币充值到账 1 美元,支持一个 Key 调用近 600+ 海内外模型,限时特价模型低至 1 折,欢迎上岸!
kanban_* 工具集(kanban_show、kanban_list、kanban_complete、kanban_block、kanban_heartbeat、kanban_comment、kanban_create、kanban_link、kanban_unblock)来操作看板。三个界面——dashboard、CLI、worker 工具——都通过同一个每看板独立的 SQLite 数据库(默认看板为 ~/.hermes/kanban.db,后续创建的任意看板为 ~/.hermes/kanban/boards/<slug>/kanban.db)进行路由,因此无论变更来自哪一侧,每个看板的数据始终一致。default 看板。如果你需要多个隔离队列(每个项目/仓库/领域一个),请参阅概述中的看板(多项目)——相同的 CLI/dashboard/worker 流程适用于每个看板,且 worker 在物理上无法看到其他看板上的任务。bash 的代码块是你运行的命令。 标注为 # worker tool calls 的代码块是生成的 worker 模型发出的工具调用——展示在这里是为了让你能端到端地了解整个循环,而不是让你自己去运行它们。
hermes kanban decompose <id> / /kanban decompose <id>。对于不需要扇出的单个任务,✨ Specify 会进行一次性规格重写(目标、方法、验收标准)并将任务提升到 todo。在 config.yaml 的 auxiliary.kanban_decomposer 和 auxiliary.triage_specifier 下配置相关模型。参见主 Kanban 指南中的自动与手动编排。Lanes by profile 切换按钮和 Nudge dispatcher 按钮——后者会立即执行一次调度 tick,而无需等待守护进程的下一个间隔。点击任意卡片会在右侧打开其详情抽屉。
API 以 SCHEMA 为父任务,tests 以 API 为父任务,只有 SCHEMA 从 ready 状态开始。其他两个任务在 todo 中等待,直到其父任务完成。这正是依赖提升引擎在发挥作用——在有 API 可测试之前,不会有其他 worker 去接手测试编写工作。backend-dev profile 会以 HERMES_KANBAN_TASK=$SCHEMA 作为环境变量生成一个 worker。以下是该 worker 在 agent 内部的工具调用循环:kanban_show 默认将 task_id 设为 $HERMES_KANBAN_TASK,因此 worker 无需知道自己的 id。kanban_complete 将 summary 和 metadata 写入当前 task_runs 行,关闭该 run,并将任务转换为 done——全部通过 kanban_db 以原子方式完成。SCHEMA 进入 done 状态时,依赖引擎会自动将 API 提升为 ready。API worker 认领任务后,调用 kanban_show() 时会看到 SCHEMA 的 summary 和 metadata 附加在父任务交接信息中——因此它无需重新阅读冗长的设计文档就能了解 schema 的决策。
completed,worker @backend-dev,耗时、时间戳,以及完整的交接 summary。metadata 块(changed_files、decisions)也存储在 run 上,并会呈现给读取该父任务的任何下游 worker。content-ops(或直接搜索"Transcribe"),你会看到:
kanban_complete(summary="translated 4 pages, style matched existing marketing voice", metadata={"duration_seconds": 720, "tokens_used": 2100})——对分析以及依赖此任务的任何下游任务都很有价值。auth-project 筛选:
Spec: password reset flow(DONE,pm)、Implement password reset flow(DONE,backend-dev)、Review password reset PR(READY,reviewer)。每个任务底部都有绿色的父任务,以及作为依赖项的子任务。$IMPL 提升回 ready,并在下一次 tick 时重新生成 backend-dev worker。这第二次生成是同一任务上的新 run:
@backend-dev 标记为 blocked。审查反馈紧跟在结果下方:"password strength check missing, reset link isn't single-use (can be replayed within 30min)"。@backend-dev 标记为 completed。全新的 summary,全新的 metadata。task_runs 中都是独立的一行,有自己的 outcome、summary 和 metadata。重试历史不是叠加在"最新状态"任务之上的概念性附加物——它是主要的数据表示形式。当重试的 worker 打开任务时,build_worker_context 会向其展示之前的尝试,因此第二次 worker 能看到第一次被阻塞的原因,并针对性地解决那些具体问题,而不是从头重来。Review password reset PR 时,会看到:
Review password reset PR 上生成并调用 kanban_show() 时,返回的 worker_context 包含父任务最近一次已完成 run 的 summary 和 metadata——因此审查者在查看 diff 之前就已读到"added zxcvbn strength check, reset tokens are now single-use",并掌握了变更文件列表。AWS_ACCESS_KEY_ID 而无法生成 worker 的部署任务:RuntimeError: AWS_ACCESS_KEY_ID not set)。dispatcher 释放认领,递增失败计数器,并在下一次 tick 重试。由于本示例设置了 --max-retries 3,在三次连续失败后熔断器触发:任务进入 blocked 状态,outcome 为 gave_up。如果省略该标志,Hermes 使用 kanban.failure_limit(默认值:2)。在人工解除阻塞之前不再重试。
error 字段均为相同错误。前两个为 spawn_failed(可重试),第三个为 gave_up(终止)。上方的事件日志显示完整序列:created → claimed → spawn_failed → claimed → spawn_failed → claimed → gave_up。gave_up 事件时发送通知,让你无需主动检查看板就能得知故障。systemctl stop。dispatcher 轮询 kill(pid, 0) 检测到死亡的 pid;认领释放,任务回到 ready,下一次 tick 将其分配给新的 worker。