让 Agent 自己写循环:LangChain 把子 Agent 调度搬进代码1×0:005:420:08开场0:45技术拆解2:21工程意义3:40对照与落地5:16收尾0:08主播今天这期看一个刚发布的 Agent 编排更新。据 LangChain 官方博客,北京时间六月三十日零点,他们在 Deep Agents 里介绍了 Dynamic Subagents,动态子 Agent。核心变化不是多一个工具,而是让 Agent 写一小段 JavaScript,用代码去调度子 Agent。0:27主播这件事很适合放进 Loop Engineering 里看。过去多 Agent 系统常靠模型一轮一轮发工具调用。任务一大,比如三百页文档逐页检查,或者审完整个路由目录,模型很容易只抽样看一部分,然后在总结里说自己完成了。0:45主播按 LangChain 文档,动态子 Agent 需要两样东西:已经配置好的 subagents,以及一个代码解释器。Deep Agents 现在用 QuickJS 做轻量解释器。Agent 看到适合 workflow 的任务时,会调用 eval 工具,在解释器里通过内置 task 函数分派子 Agent。1:04主播差别在控制流。循环、分支、并发,不再靠模型在多轮对话里临场记住,而是交给代码表达。对一个目录做安全审查时,模型可以先列出文件,再写 Promise.all,把每个文件交给 reviewer 子 Agent,最后把 issues 合成报告。1:24主播这会改变覆盖率。普通工具调用模式下,模型每轮都要决定下一步叫哪个工具、叫几次、是否继续。它可能因为上下文变长或成本变高,误判已经够了。代码循环不会这样想。files 数组里有五百项,循环就会处理五百项,除非停止条件被写进代码。1:45主播LangChain 列了六种编排形状:分类后分派、扇出后汇总、对抗式验证、生成后筛选、锦标赛比较,以及一直扫到没有新发现为止。它们本质上是控制流模板。模型负责判断和归纳,代码负责让流程别漏项。2:02主播另一个价值是上下文隔离。每个子 Agent 处理自己的局部任务,中间材料不必全塞回主 Agent 的上下文。解释器文档说,它适合保存状态、聚合结构化数据、决定哪些结果返回给模型。主模型拿到的是加工后的状态,不是一锅原始日志。2:21主播我会把这次更新理解成一个信号:生产级 Agent 的控制平面,正在从纯提示词转向提示词加代码。提示词适合表达意图,代码适合表达覆盖范围、停止条件、并发策略和数据规约。长任务只靠一句「请完整处理所有文件」,风险太高。2:43主播这里 responseSchema 也很关键。LangChain 文档里,task 可以带 responseSchema,子 Agent 返回 typed object。安全审查就返回 file、line、severity、description。后续过滤、排序、去重,可以直接在代码里做,而不是在自然语言里猜字段。3:02主播但安全边界也变了。解释器文档说明,QuickJS 默认没有文件系统、网络、shell、包管理器和时钟,只有计算和日志。外部能力必须通过工具白名单或子 Agent 桥接进去。一旦把高权限工具暴露给解释器,模型写的循环就可能放大副作用。3:24主播还有一个提醒:LangChain 文档说,task 是从已经运行的 eval 内部发出的,不经过父 Agent 常规工具调用路径,所以逐次审批不会自动套到每个子任务上。如果团队需要审批,应该先卡住 eval 这道门。3:40主播这条产品更新,和近一周一篇 arXiv 论文形成了对照。论文 Semantic Early-Stopping for Iterative LLM Agent Loops 研究的是 Agent 循环什么时候该停。作者发现,固定 max iterations 很钝,容易在简单问题上浪费 token,也可能在难题上过早截断。4:02主播论文里一个结果是,在 HotpotQA 六十题测试拆分上,只用语义距离做早停的版本,相比固定六轮,减少了百分之三十八的 operational tokens,质量指标几乎持平。但每轮都叫评估模型做质量门控,成本会反过来吃掉收益。4:20主播把这两件事放在一起,结论很清楚。Agent 循环不该只靠整数上限,也不该把所有控制都塞回模型脑子里。能结构化的部分结构化,能用代码表达的部分用代码表达,真正需要判断的地方再交给模型。4:36主播如果要落地,先挑三类任务试:文档逐页审阅、代码批量审查、工单分类处理。验收标准不是 Agent 说自己覆盖了多少,而是输入集合有多少项、循环实际处理了多少项、失败项如何重试。再配上结构化返回,才谈得上稳定。4:54主播最后别忘了观测。Honeycomb 在六月二十九日发布的 Agent Timeline 指南里建议,为 Agent 执行链路记录 conversation id、agent name、operation name、tool call id、token 用量和错误类型。动态子 Agent 一旦开始扇出,没有这些字段,你只会看到一团并发噪音。5:16主播今天带走一个问题:你们现在的 Agent 长任务,哪些地方还在靠一句「请完整处理」维持覆盖率?如果这个承诺不能被一个循环、一个 schema、一个 trace 字段验证,它大概率还不是工程能力,只是一次模型表现不错的演示。
このコンテンツについて、さらに観点や背景を補足しましょう。