ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Hermes Agent 跑 Kanban 多 Agent 工作队列:Key 用 TaoToken

Hermes Agent 跑 Kanban 多 Agent 工作队列:Key 用 TaoToken 在 Hermes Agent 里把 Kanban 多 Agent 工作队列跑起来之后真正容易被忽略的成本点不在看板本身而在 Dispatcher 每 30 秒拉起一个 Worker 时每个 Profile 都要独立调用一次模型。backend、frontend、tester 三个 Profile 如果各自绑定不同服务商的 Key配置和维护都会变成负担。这篇就围绕「Hermes Agent 跑 Kanban 多 Agent 工作队列Key 用 TaoToken」这个场景讲清楚怎么让被 Dispatcher 自动 spawn 的 Worker 统一走 TaoToken 通道同时不改动原有的 kanban init、create、link、assign、gateway start 协作流程。TaoToken 官网是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 一个 Key 就能同时喂给多个 Profile。一、原问题与场景Dispatcher 拉起的每个 Worker 都在消耗 TokenHermes Agent 的 Kanban 是一个基于 SQLite 的持久化任务看板和 delegate_task 那种「父 Agent 发起、子 Agent 执行、返回结果就结束」的临时协作不同。Kanban 里的任务可以跨越数小时甚至数天任务之间有依赖关系Agent 重启后任务也不会丢。它的核心角色有三个Board看板一个 SQLite 数据库文件存储所有任务。Task任务有标题、描述、状态Pending → In Progress → Done / Blocked、分配给的 Profile、依赖关系。Worker工作者每个 Profile 都可以作为 Worker自动从看板认领任务并执行。真正让多 Agent 跑起来的是 Dispatcher。它在网关中运行配置项是kanban.dispatch_in_gateway: true。启动hermes gateway start之后Dispatcher 每 30 秒检查一次看板有没有新的 Pending 任务依赖是否已满足分配的 Profile 是否空闲满足条件就自动 spawn 对应 Profile 执行任务。问题就出在第 4 步。每 spawn 一个 Worker这个 Worker 执行任务时都要调用模型。三个 Profile 意味着三份模型调用配置。如果 backend 用一家服务商的 Key、frontend 用另一家、tester 再用第三家那么每个 Profile 都要单独申请、单独管理 Key额度分散某个 Profile 额度用完就卡住整条依赖链换模型或换通道时要改三处配置容易漏改。而 Kanban 的持久化依赖调度是照常运转的——Task 4 等 Task 3 完成后自动开始多 Worker 同时认领任务。也就是说调度逻辑不需要动需要统一的只是「Worker 调用模型时走哪条通道」。这就是本篇要解决的问题让 Dispatcher 拉起的 backend、frontend、tester 三个 Worker统一走 TaoToken 通道用一个 Key 覆盖全部 Profile。二、TaoToken 前置一个 Key 喂给多个 ProfileTaoToken 在这里扮演的角色很明确它是这些 Worker 调用模型时统一的 API 通道。你不需要为每个 Profile 单独找不同服务商只需要在 Hermes 各 Profile 的模型配置里把 API Base 指向 TaoTokenKey 填成从官网创建的 TaoToken Key。具体来说API Base 填https://taotoken.net/apiKey 填从 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 创建的 TaoToken Key模型 ID 按你在 TaoToken 侧可用的模型填写。这样做的直接好处是backend、frontend、tester 三个 Worker 共用同一个 Key避免每个 Profile 单独申请不同服务商 Key。Kanban 的持久化依赖调度、Dispatcher 的 30 秒轮询、Worker 的精简工具集全都不受影响。需要先拿到 Key 的读者可以走这条路径创建 Keyhttps://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite如果你还在验证模型是否通可以先用模型对话页面确认通道可用模型对话https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite长期跑多 Agent 编码和任务编排的可以了解 Coding PlanCoding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite三、可复制配置把三个 Profile 的 API Base 指向 TaoToken这一节是操作核心。原文的 kanban init、create、link、assign、gateway start 这些协作流程不用改只改各 Profile 的模型配置。3.1 先创建三个 Profilehermes profile create backend hermes profile create frontend hermes profile create tester3.2 在每个 Profile 的模型配置里填 TaoTokenHermes 的 Profile 配置里模型部分需要设置 API Base、Key 和模型 ID。以 backend 为例配置形如# backend Profile 的模型配置 model: api_base: https://taotoken.net/api api_key: YOUR_API_KEY model_id: YOUR_MODEL_IDfrontend 和 tester 用同样的方式把api_base都指向https://taotoken.net/apiapi_key都填同一个 TaoToken Keymodel_id按需填写。三个 Profile 的配置差异只在model_id如果确实需要不同模型API Base 和 Key 完全一致。这就是「一个 Key 同时喂给三个 Worker」的落地方式。3.3 看板与任务流程保持不变配置改完之后原文的协作流程原样执行# 初始化看板 hermes kanban init # 创建任务 hermes kanban create 搭建后端骨架 hermes kanban create 搭建前端骨架 hermes kanban create 实现商品 API hermes kanban create 实现商品页面 hermes kanban create 编写商品测试 # 设置依赖 hermes kanban link 实现商品页面 --depends-on 实现商品 API hermes kanban link 编写商品测试 --depends-on 实现商品 API # 分配任务 hermes kanban assign 搭建后端骨架 --profile backend hermes kanban assign 搭建前端骨架 --profile frontend hermes kanban assign 实现商品 API --profile backend hermes kanban assign 实现商品页面 --profile frontend hermes kanban assign 编写商品测试 --profile tester # 启动网关Dispatcher 自动调度 hermes gateway start3.4 网关里的 Dispatcher 配置# config.yaml kanban: dispatch_in_gateway: trueDispatcher 每 30 秒检查一次看板发现「搭建后端骨架」和「搭建前端骨架」无依赖就 spawn 对应 Profile 执行。骨架完成后自动开始「实现商品 API」。API 完成后同时启动「实现商品页面」和「编写商品测试」。这些被 spawn 的 Worker执行任务时调用的模型通道就是你在 3.2 里配置的 TaoToken。四、验证请求与成功结果配置完成后需要确认两件事通道通不通以及 Dispatcher 是否真的拉起了 Worker。4.1 验证 TaoToken 通道先用一个最小请求确认 API Base 和 Key 可用。可以用 curl 直接打 TaoToken 的 APIcurl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer YOUR_API_KEY \ -H Content-Type: application/json \ -d { model: YOUR_MODEL_ID, messages: [{role: user, content: ping}] }如果返回正常的补全结果说明 Key 和 API Base 都没问题。这一步也可以在模型对话页面里直接验证更直观。4.2 验证 Worker 是否走 TaoToken启动网关后观察 Dispatcher 的行为hermes gateway start预期结果Dispatcher 每 30 秒检查一次看板发现无依赖的 Pending 任务后spawn 对应 ProfileWorker 启动后工具集是精简版只包含 Kanban 相关工具加标准开发工具/kanban show查看自己的任务/kanban complete标记完成/kanban block遇到阻碍时标记Worker 执行任务时调用模型走的就是 Profile 里配置的 TaoToken 通道。你可以在 TaoToken 的 console 里看到对应的调用记录Consolehttps://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite4.3 验证任务生命周期用以下命令查看任务状态流转hermes kanban list hermes kanban show TASK_ID hermes kanban stats hermes kanban tail预期看到的状态流转是Pending → In_Progress → Done遇到阻碍时进入 Blocked问题解决后 unblock 继续。五、本篇常见错排查5.1 Worker 起来了但调用模型报 401最常见的原因是 Key 没填对或者某个 Profile 漏改了配置。检查三个 Profile 的api_key是否都是同一个有效的 TaoToken Key。如果只有 backend 能跑、frontend 报错基本就是 frontend 的配置没改。5.2 API Base 写成了带路径的完整地址API Base 应该填https://taotoken.net/api不要自己拼/v1/chat/completions之类的路径。Hermes 会基于 API Base 拼接具体端点。写错会导致请求打到不存在的路径。5.3 Dispatcher 不 spawn Worker先确认kanban.dispatch_in_gateway: true已配置且hermes gateway start确实在运行。然后检查任务是否满足条件依赖是否已满足、分配的 Profile 是否空闲。如果任务一直 Pending用hermes kanban show TASK_ID看依赖状态。5.4 任务卡在 Blocked 不继续Blocked 是 Worker 主动标记的说明执行时遇到了阻碍。用hermes kanban comment TASK_ID 注释查看或补充说明解决问题后用hermes kanban unblock TASK_ID解除阻碍Dispatcher 下一轮就会重新调度。5.5 改了配置但 Worker 还用旧通道Profile 配置修改后需要重启网关让新的配置生效。已经 spawn 的 Worker 可能还持有旧配置重启hermes gateway start即可。5.6 想确认 Key 和接入细节如果对 Key 创建、API Base 填写、接入方式有疑问直接看接入文档最稳妥API Keyshttps://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite六、语义一致 CTA回到本篇的场景Hermes Agent 跑 Kanban 多 Agent 工作队列Dispatcher 每 30 秒自动调度 backend、frontend、tester 三个 Profile 作为 Worker 认领任务。每个 Worker 执行时都要调用模型也就是每个 Worker 都在消耗 Token。TaoToken 在这里的价值是让你用一个 Key 同时喂给三个 Worker避免每个 Profile 单独申请不同服务商 Key而 Kanban 的持久化依赖调度照常运转。按你的实际需求分流排障、接入、settings 配置、CC Switch、Cline 相关问题先拿 Key 再看接入文档API Keyshttps://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite验证模型是否通用模型对话页面https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite长期编码、Agent 任务编排了解 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite如果你用的是 Claude Code 类工具配置落在 settings.json 的 ANTHROPIC_* 环境变量如果是 Codex配置落在 config.toml。Kanban 这套多 Agent 协作配置改的是各 Profile 的模型部分协作命令不变。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进