跳到主要内容
返回时间线
langchain.com来源发表:

Deep Agents 把子智能体改成异步:编排智能体自身循环空闲时即可回应用户,长任务在后台并行

核心概要

Deep Agents 新增异步子智能体:一个编排智能体留在前台与用户对话并整理上下文,子智能体作为后台工作线程跑长任务,完成后回报。此前标准 ReAct 循环里每次长工具调用都会阻塞循环,其他任务只能排队;现在子智能体不再占住编排智能体的循环,用户可在其自身循环不忙时联系它,可承担的工作量随后台工作线程数量增长,而不是随单条循环的长度增长。

Source-provided article image: Agents Are Going Async
langchain.com

深度剖析

智能体开始承担更大的目标后,需要同时做到两件事:对用户保持响应,并在多个长任务上并行推进。 此前长期用于构建智能体的标准 ReAct 循环无法同时满足这两点:每次长工具调用都会阻塞循环,其他任务只能排在它后面。 生态中已出现同一分工:Claude Code 默认在后台运行子智能体,OpenAI 的 dots 把工作交给后台工作线程以同时推进多件事,DeepSeek Harness 的超级智能体由面向用户的 router 与并行执行任务的后台工作线程组成。

编排智能体留在前台维持对话上下文,异步子智能体作为后台工作线程运行,完成后向编排智能体回报。 异步子智能体类似用 asyncio.create_task 启动的任务或尚未 await 的 Promise:调用立即返回,工作在后台独立进行,结果稍后送回。 编排智能体通过五个工具管理异步子智能体:start_async_task 在独立线程上启动子智能体并立即返回,check_async_task 查询状态并在完成后取回结果,update_async_task 向运行中的任务发送新指令,cancel_async_task 停止运行中的任务,list_async_tasks 列出全部任务及状态。

对运行中子智能体的追加指令由该子智能体定义中的 update_strategy 字段决定处理方式。 interrupt 为默认策略,会停止当前运行并以新指令重启子智能体,适用于“改用 Postgres”这类纠正;enqueue 则把追加指令保留到当前运行结束,适用于“跑完顺便跑测试”这类补充。 每个未完成任务都列在编排智能体的系统提示中;编排智能体忙碌时在每次模型调用前检查未完成任务并中途取回结果,空闲时由子智能体以一次新的运行唤醒它,停在审批上时审批不受打扰、结果在用户答复后送达。

启示与展望

异步子智能体已在 Python 与 JavaScript 的 Deep Agents 以及 Managed Deep Agents 中提供,在 Managed Deep Agents 中把子智能体设为异步只需一个字段;任务通知仍处于 beta,API 可能变化。

任务通知处于 beta 阶段,API 仍可能调整;发布方对异步模式推广到各类工具的表述是预期,而非已验证的结果。