Hermes Agent 的多 Agent 与自动化:从 Goal 到 Kanban

Hermes Agent 的多 Agent 与自动化:从 Goal 到 Kanban

💡 原文中文,约6500字,阅读约需16分钟。
📝

内容提要

本文介绍Hermes Agent的多Agent与自动化机制,区分会话内控制器(Goal、Loop、Heartbeat、Cron)与多Agent系统(delegate_task临时委派和Kanban持久协作)。delegate_task创建独立子Agent,隔离上下文,支持并行与树形工作流;Kanban基于SQLite实现跨重启、可认领的持久任务。两者生命周期不同,各有适用场景,并强调安全降权与可观测性。

🔎

延伸解读

会话内控制器与多Agent系统的本质区别

文章明确区分了会话内控制器(Goal、Loop、Heartbeat、Cron)与多Agent系统(delegate_task和Kanban)。会话内控制器共享同一Session和上下文,适合单会话内的自动迭代;而delegate_task创建独立子Agent,隔离上下文,适合临时并行任务;Kanban则基于SQLite实现持久化任务队列,适合跨重启、多人协作。理解这一区别有助于根据任务生命周期选择合适的机制。

delegate_task的权限降级与隔离设计

delegate_task在创建子Agent时,会继承父会话的模型、Provider和凭据池,但会进行二次降权:默认移除delegate_task、clarify、memory等可能造成递归或用户交互的工具,危险命令审批默认自动拒绝。这种设计确保子Agent不能借委派扩大权限,同时通过隔离上下文避免父上下文被中间输出挤满,是多Agent可控性的关键。

Kanban与delegate_task的适用场景对比

文章指出,delegate_task适合当前会话内并行处理认知子问题,而Kanban适合需要跨重启、依赖关系、认领、Review和多人协作的持久工作流。选择时需根据任务性质:临时并行用delegate_task,持久协作用Kanban,简单循环用execute_code。这种对比帮助读者避免误用机制,提高效率。

Q&A

Hermes Agent 中 delegate_task 和 Kanban 有什么区别?

delegate_task 是会话内的临时委派机制,创建独立的子 Agent 来并行处理子任务,适合当前会话中的临时并行认知工作;Kanban 是基于 SQLite 的持久任务队列,支持跨重启、任务认领、依赖和多人协作,适合需要长期跟踪和恢复的工作流。

Hermes Agent 的会话内控制器有哪些?它们分别适合什么场景?

会话内控制器包括 Heartbeat、Loop、Goal 和 Cron。Heartbeat 适合固定间隔唤醒检查;Loop 适合会话内重复检查或操作;Goal 适合有明确完成条件、需要自动迭代的单会话任务;Cron 适合无人值守、跨进程重启的固定计划。

delegate_task 创建的子 Agent 会继承父 Agent 的哪些权限?

子 Agent 会继承父会话已允许的模型、Provider、凭据池和 Toolset 基线,但会进行降权处理,默认移除 delegate_task、clarify、memory、send_message 和 cronjob 等工具,危险命令审批默认自动拒绝。

Hermes Agent 中如何配置多 Agent 的并发和深度?

通过 delegation 配置项设置,例如 max_concurrent_children 控制并发数,max_spawn_depth 控制委派深度,orchestrator_enabled 启用编排器,child_timeout_seconds 设置子任务超时,subagent_auto_approve 控制自动审批。

Hermes Agent 中如何监控和控制正在运行的子 Agent?

可以通过 delegate_task 的 action 参数进行控制,支持 list 列出活动子 Agent,steer 向指定子 Agent 追加方向修正,stop 请求停止。此外,插件可以使用 agent.subagent_lifecycle 或 ctx.subagent_lifecycle 获取生命周期句柄,支持 status、wait、cancel、result 和 reconnect 操作。

Hermes Agent 的 Kanban 系统是如何工作的?

Kanban 系统基于 SQLite 存储任务,dispatcher 原子认领 ready 状态的任务,按 assignee/Profile 启动 worker 进程,worker 在任务中通过评论、附件和心跳更新进度,支持依赖、Review 和回收 stale claim,实现跨重启的持久协作。

Hermes Agent 中如何选择使用 delegate_task、Kanban 还是 execute_code?

如果希望当前会话并行处理几个认知子问题,用 delegate_task;如果希望工作成为可查询、可认领、能在重启后继续的组织状态,用 Kanban;如果只是循环执行十次机械工具调用,优先用 execute_code,避免不必要的 Agent Loop 开销。

🏷️

标签

➡️

继续阅读