news 2026/7/17 4:23:59

langchain最新实践:如何使用DeepAgents构建Multi-Agent应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
langchain最新实践:如何使用DeepAgents构建Multi-Agent应用

多智能体架构不必很复杂。Deep Agents 的设计哲学是用正确的抽象(中间件处理管道、工具调用处理调用)把这些模式变成可以自由组合的简单构建块。

构建真正能用的 AI Agent 系统,最有效的方法之一就是把复杂任务拆解给多个专业化的智能体来协作完成。但随之而来的一个棘手问题是:当一个 Agent 执行大量工具调用时,上下文窗口会迅速被中间结果填满,导致模型性能急剧下降。

LangChain 团队新推出的 Deep Agents 框架用两个简洁的核心原语解决了这个问题:subagents(子智能体)用于上下文隔离,skills(技能)用于能力的渐进式披露。

上下文膨胀:Agent 工程的隐形杀手

在 Agent 工程实践中,有一个被广泛观察到但很少被正式讨论的现象:当 Agent 的上下文窗口逐渐填满时,模型完成任务的能力会显著下降。

Chroma 团队将这种现象称为"context rot"(上下文腐化),而 HumanLayer 团队则更形象地把这种高上下文区域叫做"dumb zone"(愚蠢区)。

想象一下这个场景:你的 Agent 需要完成一个复杂的研究任务,过程中进行了几十次网页搜索和文件读取。每一次工具调用的返回结果都会累积在上下文中,很快你就会发现 Agent 开始"犯傻"——它可能会重复之前做过的操作,或者在已经找到答案的情况下继续无意义地搜索。

这不是模型本身的问题,而是架构设计的问题。当上下文被大量中间结果污染时,真正重要的信息反而被淹没了。

Subagents:隔离上下文的专业工人

Subagents 的核心思想非常直观:让子智能体在独立的上下文窗口中运行,主智能体只接收最终结果,而不是过程中的所有中间步骤。

如果子智能体做了 20 次工具调用才得出结论,主智能体只会看到那个结论,而不是那 20 次调用的详细记录。

什么时候应该使用 subagents?以下几种场景特别适合:

保护上下文- 需要多步骤操作的任务(比如代码库探索)会产生大量中间结果,用 subagent 隔离可以保持主智能体的上下文清爽

专业分工- 不同团队可以开发专注于不同垂直领域的 subagent,各自有特定的指令和工具集

多模型协作- subagent 可以使用与主智能体不同的模型,比如用更小的模型来换取更低的延迟

并行执行- 多个 subagent 可以同时运行,各自完成任务后将结果汇报给主智能体,大幅降低整体延迟

在 Deep Agents 中创建 subagent 非常简单,只需要定义一个字典并传给 create_deep_agent() 函数:

research_subagent = { "name": "research-agent", "description": "深度研究问题并综合发现", "system_prompt": "你是一位优秀的研究员...", "tools": [internet_search], "model": "openai:gpt-4o" }

Deep Agents 还内置了一个通用型 subagent,它继承主智能体的所有能力(相同的系统提示、工具和模型),专门用于上下文隔离而不需要特殊行为。

举个例子:主智能体不需要自己做 10 次网页搜索把上下文填满,而是可以把任务委托给通用 subagent,后者在内部完成所有搜索后只返回一个简洁的摘要。

Subagent 的最佳实践

写好描述是关键。主智能体根据 description 来决定调用哪个 subagent,所以描述必须清晰准确。

好的写法:"分析财务数据并生成带有置信度评分的投资洞察"
差的写法:"做金融相关的事情"

系统提示要详细。包含工具使用指南和输出格式要求,比如明确告诉 subagent 应该如何组织研究结果,需要引用来源,输出要控制在多少字以内来保持上下文整洁。

工具集要精简。只给 subagent 分配它真正需要的工具。一个专门发邮件的 agent 只需要 send_email 和 validate_email,给它加上 web_search、database_query、file_upload 就是在增加不必要的复杂性。

Skills:能力的渐进式披露

Skills 提供了另一种模式来解决上下文膨胀问题。

传统做法是在初始化时就把几十个工具全部塞进 Agent 的上下文,这会占用大量的 token 预算。Skills 的思路是"渐进式披露":Agent 启动时只能看到技能的名称和描述,只有当它决定需要某个技能时,才会读取完整的指令。

Skills 使用 agentskills.io 规范,结构非常清晰。你只需要在指定目录下创建 SKILL.md 文件,包含 YAML 格式的元数据和 Markdown 格式的详细指令:

--- name: deploy description: 部署到生产环境 version: 1.0.0 --- # 部署到生产环境

当用户要求部署时,执行以下步骤:
1. 运行测试:`npm test`
2. 构建应用:`npm run build`
3. 部署到生产:`npm run deploy:prod`
4. 验证部署:检查健康检查端点

这种设计的好处是显而易见的:技能描述会预加载到上下文中(占用很少的 token),而技能的完整内容只在 Agent 决定需要时才加载。这让你可以定义大量的能力而不用担心初始上下文爆炸。

如何选择:Subagents 还是 Skills?

这两种模式各有适用场景,而且完全可以组合使用:

委托复杂的多步骤工作→ 用 subagents 做上下文隔离

复用流程或指令→ 用 skills 做渐进式披露

为特定任务提供专业工具→ subagents + 精简的工具集

跨多个 Agent 共享能力→ skills,因为它们本质上就是文件

工具集很大→ 用 skills 避免 token 膨胀

这不是非此即彼的选择。很多系统会同时使用两者:skills 定义流程,subagents 执行复杂的多步骤工作。你的 subagents 甚至可以使用 skills 来有效管理它们自己的上下文窗口。

写在最后

多智能体架构不必很复杂。Deep Agents 的设计哲学是用正确的抽象(中间件处理管道、工具调用处理调用)把这些模式变成可以自由组合的简单构建块。

从 subagents 开始做上下文管理,加入 skills 做渐进式披露,然后在此基础上根据需求扩展。记住核心原则:主智能体的上下文是宝贵资源,要像管理内存一样谨慎管理它。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/4 22:32:51

汽车行业如何突围?天淳AI+GEO精准获客新策略

汽车行业如何突围?天淳AIGEO精准获客新策略 引言 汽车行业正面临前所未有的挑战。新能源与传统燃油车用户需求分化,客群涵盖年轻上班族、家庭用户、高端商务人士等,偏好差异显著,精准触达难度大。线上线索转化为到店试驾率低&am…

作者头像 李华
网站建设 2026/7/1 7:13:30

SGMICRO圣邦微 SGM58031XMS10G/TR MSOP10 模数转换芯片ADC

特性 单电源电压范围:3V至5.5V.PC总线电压范围:3V至5.5V 低静态电流: 连续模式:255pA(典型值) 掉电模式:0.8pA(典型值) 可选数据速率:6.25SPS至960SPS 输入多路复用器 4个单端输入或2个差分输入 内部可编程增益放大器(PGA) 内部电压参考与振荡器 可选数字比较器 2C兼容串行接口…

作者头像 李华
网站建设 2026/7/6 1:55:10

多路温度采集(有完整资料)

资料查找方式: 特纳斯电子(电子校园网):搜索下面编号即可 编号: CP-51-2021-018 设计简介: 本设计是基于单片机的多路温度采集系统,主要实现以下功能: 可通过LCD1602显示温度和状…

作者头像 李华
网站建设 2026/7/1 7:15:29

AI短剧制作小程序源码系统,全智能创作系统源码全览

温馨提示:文末有资源获取方式当AI技术能将短剧制作成本压缩至传统方式的10%以下,当几个人几天内就能无拍摄完成一部剧集,“AI短剧”已从概念走进现实,成为普通人内容创业的黄金赛道。面对广阔前景与激烈竞争,一套功能强…

作者头像 李华
网站建设 2026/7/1 7:13:16

JS防爬虫3板斧

一、核心概念 1.1 JS防爬虫的基本原理 JS防爬虫是指通过JavaScript代码实现的反爬虫措施,其核心思想是: 浏览器执行验证:向客户端返回一段JavaScript代码,只有真实浏览器才能执行动态参数生成:通过JS计算生成动态token…

作者头像 李华