Agent 卡在一条循环里太久了,LangChain 开始拆前后台
LangChain 11月5日文章讲异步子代理:编排者留在前台,长任务交给后台 worker。Claude Code、OpenAI dots、DeepSeek Harness 都在走类似路线。五个工具管任务,interrupt 和 enqueue 两种改法,代码只加 async: True。
Agent 卡在一条 ReAct loop 里太久了。过去一个 agent 跑在单条循环里:模型调一个工具,死等结果,再决定下一步。工具或子任务一跑几分钟,整条 loop 被堵死,你发的新消息只能在后面排队。
LangChain 11月5日发了一篇《Agents Are Going Async》,作者是 S. Runkle 和 T. Bengre。文章讲的变化,是把 agent 拆成前后台两层。一个编排者留在前台跟你对话,长任务丢给后台子 agent 跑。Claude Code 默认在后台跑子 agent,OpenAI 的 dots 把活交给后台 worker,DeepSeek Harness 也用了类似的路由加后台 worker 结构。
关键区别在调用方式。老式子 agent 像一行 await,不返回就卡住。async 子 agent 像 asyncio.create_task,或者一个没 await 的 Promise:调用立刻返回,活在独立线程跑,结果稍后回来。agent 能同时接的工作量,跟着后台 worker 的数量涨,不再被一条 loop 的长度限死。

编排者靠五个工具管后台任务:start_async_task 启动,check_async_task 查状态和结果,update_async_task 发新指令,cancel_async_task 停掉,list_async_tasks 列出全部。
运行中改任务有两种策略。默认 interrupt 是打断当前运行、带着新指令重启,适合“改用 Postgres”这种纠正。enqueue 是把新指令攒着、等这轮跑完再执行,适合“跑完顺手把测试跑了”这种追加。
结果怎么回来也分情况。编排者正忙,它会在每次调模型前扫一遍未完成任务,中途把结果捡走。它闲着,子 agent 会唤醒一轮新运行。它正卡在等你审批,审批不动,等你答完结果才到。需要审批的子任务在自己线程里等,不打断前台;在 Slack 的 Managed Deep Agents 里,请求会发回原帖线程。

怎么用,其实就一个字段。在 Managed Deep Agents 里给子 agent 加 async: True:
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,
},
],
)
Python 和 JavaScript 版 Deep Agents 都已支持。每个托管 agent 还会自动得到一个通用子 agent 的 async 副本,运行时自己决定把活放前台还是后台。通知还在 beta,API 可能变。
有网友追问了一个细节:用 enqueue 追加时,如果子 agent 前一轮已经把中间产物写到某个临时路径,编排者用 update_async_task 追加的指令会不会读到过期结果?还是 Deep Agents 给每个 subagent 维护了自己的状态快照,追加指令自动绑到新快照上?原文没有回答这一点。任务通知还在 beta,这个问题可以等官方后续说明。
有网友把前台体验总结得更直接:后台任务跑的时候,前台只收一条状态,在跑、已完成,还是停在某个报错。日志先留在子任务自己的记录里。方向错了就停掉重开,只是补测试就排到这轮结束之后。
另一位网友说,工具一跑几分钟,整条 ReAct 就堵死,新消息只能排后面。拆成前台跟人聊、长任务扔后台之后,中途插一句还能接上,不用干等。也有人提到,这跟 DeepSeek 的 super agent 思路很像。
OpenAI 最近也加了 async tool calling:模型调完工具后继续工作,应用在后续请求里把结果送回去。LangChain 这篇把子 agent 的异步化写得更具体,五个工具、两种 update 策略、三种通知路径,基本把前后台协作的骨架搭出来了。
原文链接:https://langchain.com/blog/agents-are-going-async
推文链接:https://x.com/yibie/status/2118575832767836166
发布时间: 2026-11-06 23:30