LangChain 为 Deep Agents 推出 async subagents 后台子智能体
LangChain 在 Deep Agents 中推出 async subagents,让编排器保持对用户可响应,子智能体作为后台 worker 并行执行长任务并在完成后回报。
LangChain:Blog·2026-11-06 04:00· 1 小时前AI 评分65
Agents 正在走向异步
AI 导读
LangChain 在 Deep Agents 中推出 async subagents,让编排器保持对用户可响应,子智能体作为后台 worker 并行执行长任务并在完成后回报。
正文 · 原文
想象一位幕僚长,每次你交给他一个大项目,他就消失不见,直到项目完成才回来。你大概会立刻解雇他。一位优秀的幕僚长会让项目在后台持续推进,同时保持可联系,并沿途向你汇报进展。当我们要求智能体朝着更大的目标努力时,它们也需要同样的两个特性。智能体必须保持响应性,能立即基于此前所有上下文执行新指令;同时必须保持生产力,能同时推进许多大型任务。
我们长期以来用于构建智能体的架构无法同时满足这两项要求。在标准的 ReAct 循环中,每次长时间的工具调用都会阻塞循环,其他所有任务都排在它后面。因此,我们看到生态系统正趋向于一种分工:一个智能体始终陪伴用户,后台 worker 负责长时间工作。Claude Code 默认在后台运行子智能体,OpenAI 的 dots 将工作交给后台 worker,以同时推进多项事务,而 DeepSeek Harness 围绕一个与用户对话的路由器和并行执行任务的后台 worker 构建了其超级智能体。
我们正通过 async subagents 将这一模式引入 Deep Agents。编排器保持对用户可用,并持续整理对话上下文,而 async subagents 作为后台 worker 运行,并在完成时回报。这样,智能体能承担的工作量便随后台 worker 的数量增长,而不是受限于单个循环的长度。
async subagents 如何工作
智能体在一个循环中运行。模型调用工具、等待结果,然后决定下一步做什么。过去,工具和子智能体会阻塞该循环,直到它们返回,就像代码依次 await 每个慢速调用一样。async subagent 的工作方式类似于用 asyncio.create_task 启动的任务,或一个你尚未 await 的 Promise。调用会立即返回,工作在后台独立运行,结果稍后返回。

异步工作依赖于系统的两个特性:
- 用户可以联系到编排器。 编排器是用户直接交互的智能体。子智能体不再占用其循环,因此只要编排器自身的循环不忙,用户就能联系到它,而不必等待每个子智能体完成。
- 任务并行运行且不阻塞。 编排器在工作到来时即启动子智能体,而不是等待整批任务返回。
编排器通过五个工具管理 async subagents:
start_async_task在独立线程上启动子智能体并立即返回。check_async_task获取任务状态,并在任务完成后获取其结果。update_async_task向正在运行的任务发送新指令。cancel_async_task停止正在运行的任务。list_async_tasks列出所有任务及其状态。
引导正在运行的子智能体与联系编排器是两回事。当编排器通过 update_async_task 发送后续指令时,该子智能体定义中的 update_strategy 字段决定会发生什么:
"interrupt"(默认值)会停止当前运行,并用新指令重启子智能体。适用于类似“改用 Postgres”这样的纠正。"enqueue"会保留后续操作,直到当前运行结束。可以用它来添加类似“完成后运行测试”这样的操作。
通知的工作方式
每个未完成的任务都会列在编排器的系统提示中,因此它始终知道哪些任务正在进行中。它可以用 check_async_task 轮询,或者任务可以自行回报:
- 如果编排器忙碌,它会在每次模型调用前检查未完成的任务,并在运行过程中获取结果。
- 如果它空闲,子代理会通过一次新的运行将其唤醒。
- 如果它因等待审批而暂停,审批会保持原样,结果会在用户答复后送达。

需要审批的子代理会显示为 waiting,用户在子代理自己的线程上答复,不会打断编排器。在 Slack 上的 Managed Deep Agents 中,该请求会回帖到原始线程。
我们预计这种模式会从子代理推广到各类工具。OpenAI 最近新增了对异步工具调用的支持,模型在调用工具后可以继续工作,你的应用会在后续请求中把结果发回。
使用异步子代理
异步子代理已在 Python 和 JavaScript 的 Deep Agents 中提供,也在 Managed Deep Agents 中提供;在那里,将子代理设为异步只需一个字段:
from managed_deepagents import define_deep_agent
agent = define_deep_agent(
name="research-assistant",
model="openai:gpt-5.5",
subagents=[
{
"name": "researcher",
"description": "Researches a topic in the background.",
"system_prompt": "Research the topic and report your findings.",
"async": True,
},
],
)在 Managed Deep Agents 中,每个提供服务的代理还会获得一个 general-purpose 子代理的异步副本,因此它可以在运行时决定是在前台还是后台运行委派的工作。
任务通知处于测试阶段,因此 API 仍可能变化。async-deep-agents 仓库中有一个可用的 supervisor,包含 Python 和 TypeScript 编写的 researcher 和 coder 子代理。
试试异步子代理,并在 GitHub issues 或 forum 上告诉我们你的想法。
来源:LangChain:Blog · langchain.com
来源:RadarAI · aihot.news