Hermes Agent推出异步子代理 父对话不再被阻塞

1 阅读4分钟开源

关键更新

Nous Research 宣布 Hermes Agent 最新版本已支持 异步子代理(async_delegation),原本的同步 delegate_task 会在所有子代理完成前阻塞父聊天,如今改为立即返回 task_id,用户可以继续在主对话中操作。此功能通过在进程内开启后台线程实现,保持同一套 API Key 与凭证池,兼顾安全与成本控制。

异步子代理工作原理

  • spawn: delegate_task_async(goal, ...) 在后台启动子代理并返回唯一 task_id
  • check: check_task(task_id) 查询子代理当前状态及最新输出,非阻塞。
  • steer: steer_task(task_id, message) 向运行中的子代理注入指令,实现中途调整。
  • collect: collect_task(task_id) 阻塞等待子代理完成并返回完整结果。
  • cancel: cancel_task(task_id) 终止指定子代理。
  • list: list_tasks() 列出会话内所有异步任务。

每个子代理拥有独立的对话历史、终端会话和工具集,仅在结束时将 最终摘要 回传父代理,确保父上下文窗口保持精简。

同步 vs 异步 对比表

维度同步 delegate_task异步 delegate_task_async
父聊天完全阻塞,等待所有子代理完成立即返回 task_id,聊天自由
控制方式只能在任务结束后获取结果支持实时查询、注入指令、取消
资源消耗同时运行的子代理受 delegation.max_concurrent_children 限制(默认 3)采用后台线程,受限于进程资源
持久性单回合内有效仅限单会话,跨回合需使用 ACP(#4949)

典型使用场景

  1. 长时研究:在子代理中进行市场报告撰写,父代理继续完成文案编辑。
  2. 并行评估:同时启动三名子代理测试不同搜索后端,保持相互独立,防止交叉污染。
  3. 后台代码重构:委托子代理完成多文件重构,父代理可即时审阅其他文件并提供反馈。
  4. 实时监控:通过 check_tasksteer_task 在子代理运行期间动态调整数据来源或模型版本。

启用方式与注意事项

  • 更新 Hermes Agent:hermes update
  • config.yaml 中可为子代理指定更低成本模型,以降低并行运行费用。
  • 子代理继承父代理的凭证池,支持凭证轮换与速率限制管理。
  • 由于子代理在同一进程内运行,异常会影响整体服务,建议在生产环境使用容器化隔离或 ACP(#4949)实现跨回合持久化。

业界意义

异步子代理的引入标志着开源个人代理系统在 并行任务调度交互流畅性 上迈出关键一步。相比传统的单线程代理,开发者可以在同一对话窗口同时进行多任务处理,提升工作效率并降低对话上下文膨胀的风险。随着生成式 AI 应用向复杂工作流迁移,此类非阻塞调度机制将成为构建可扩展 AI 助手的基础设施之一。

“异步子代理让我们不再为长任务卡死聊天界面,真正实现了‘边聊边跑’的工作方式。” — Teknium(Nous Research 联合创始人)

本文是对第三方新闻源的主观解读。消息可能出现过时、不准确、歧义或错误的地方,仅供参考使用。点击此处查看消息源。