Hermes Agent推出异步子代理 父对话不再被阻塞
•0 阅读•4分钟•开源
Nous ResearchHermes Agentasync_delegation
•0 阅读•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) |
典型使用场景
- 长时研究:在子代理中进行市场报告撰写,父代理继续完成文案编辑。
- 并行评估:同时启动三名子代理测试不同搜索后端,保持相互独立,防止交叉污染。
- 后台代码重构:委托子代理完成多文件重构,父代理可即时审阅其他文件并提供反馈。
- 实时监控:通过
check_task与steer_task在子代理运行期间动态调整数据来源或模型版本。
启用方式与注意事项
- 更新 Hermes Agent:
hermes update。 - 在
config.yaml中可为子代理指定更低成本模型,以降低并行运行费用。 - 子代理继承父代理的凭证池,支持凭证轮换与速率限制管理。
- 由于子代理在同一进程内运行,异常会影响整体服务,建议在生产环境使用容器化隔离或 ACP(#4949)实现跨回合持久化。
业界意义
异步子代理的引入标志着开源个人代理系统在 并行任务调度 与 交互流畅性 上迈出关键一步。相比传统的单线程代理,开发者可以在同一对话窗口同时进行多任务处理,提升工作效率并降低对话上下文膨胀的风险。随着生成式 AI 应用向复杂工作流迁移,此类非阻塞调度机制将成为构建可扩展 AI 助手的基础设施之一。
“异步子代理让我们不再为长任务卡死聊天界面,真正实现了‘边聊边跑’的工作方式。” — Teknium(Nous Research 联合创始人)
本文是对第三方新闻源的主观解读。消息可能出现过时、不准确、歧义或错误的地方,仅供参考使用。点击此处查看消息源。