Agent / 工程
工具绑定、技能固定与动态重载
LangChain 于 2026 年 10 月发布 Deep Agents 技能系统重大更新,针对企业级大规模技能库的实际需求推出三项核心能力。其一,工具绑定:开发者可将特定工具与技能绑定,工具的 schema 仅在智能体读取对应技能后才进入上下文,避免无关工具占用宝贵的提示空间,同时兼容 Anthropic 和 OpenAI 最新模型的对话中途添加工具特性,确保提示缓存不被破坏。其二,技能固定:应用层可在运行时将用户明确请求的技能预加载到上下文,省去智能体额外读取文件的往返开销,降低延迟并提升行为可预测性。其三,技能动态重载:长期运行的对话线程无需重启即可感知新增、修改或删除的技能。这三项改进共同服务于一个核心目标——在技能库规模持续扩大的情况下,维持上下文工程的高效性。
技能(Skill)是 Deep Agents 向智能体注入领域知识的核心机制。每个技能本质上是一个包含 SKILL.md 文件的目录,文件头部以 YAML 格式声明技能的名称与描述,正文则是智能体执行任务时遵循的具体指令。技能目录还可附带脚本、参考文件和资产子目录。智能体在启动时仅获取所有技能的名称与描述,只有当某项任务确实需要某个技能时,才会完整读取其指令内容,这种渐进式披露机制使上下文始终保持精简。
此次更新最受关注的特性是工具与技能的绑定机制。过去,工具和技能是独立披露的,智能体可能在未读取相关技能的情况下直接调用工具,导致行为不可控。现在,开发者只需在技能的 frontmatter 中通过 metadata.include_tools 字段列出关联工具,并将这些工具传递给 SkillsMiddleware 而非直接传给智能体。绑定后,工具的 schema 在技能被读取之前不会出现在上下文中,智能体在调用工具前必然已经阅读了使用说明,从根本上保证了调用的合理性。
对于支持对话中途添加工具的 Anthropic 和 OpenAI 新模型,Deep Agents 会在技能被读取后立即以新系统消息的形式注入绑定工具,缓存前缀保持不变,不会触发提示缓存失效。对于其他模型,工具则以传统方式追加到请求中。此外,工具绑定还支持更灵活的标签机制:技能可以声明一个标签而非具体工具名称,开发者通过传入 SkillsMiddleware 的函数将标签动态解析为工具列表,从而实现按运行时权限控制工具访问,例如仅允许管理员角色获取 CRM 的预测更新工具。
技能固定功能解决了用户明确指定技能时的效率问题。以 GTM 智能体为例,销售代表输入 /meeting-prep 时,若没有固定机制,模型需要先读取技能描述再决定是否加载完整指令,额外增加一次模型调用的延迟。启用固定后,应用层解析消息中的技能名称并通过 pinned_skills 参数传入,中间件在下一次模型调用前将技能指令预置到对话中。固定技能以带标签的独立消息形式插入,不影响历史消息,提示缓存依然有效,聊天界面也可将其渲染为简洁的标签而非完整文本。
技能动态重载则面向长期运行的智能体线程。默认情况下,技能列表在线程启动时加载并存入智能体状态,后续轮次复用同一份列表。新版本允许开发者在调用时将 skills_metadata 设置为 None 来使缓存失效,智能体在下一轮将重新加载技能库,从而感知到新增、修改或删除的技能,无需中断当前对话线程。这对于企业内部技能库频繁迭代的场景尤为重要,团队可以持续优化技能内容而不影响正在进行的智能体会话。
从更宏观的视角来看,这三项改进共同指向同一个工程命题:随着企业技能库规模从数十个扩展到数千个,如何在不牺牲上下文效率的前提下保持智能体的有效性。技能系统作为开放标准,兼容任意模型且被数十个智能体产品支持,其核心价值在于让非技术人员也能通过编写 Markdown 文件为智能体注入专业知识。此次升级进一步强化了这一机制在生产环境中的可靠性与可扩展性,为构建企业级智能体提供了更坚实的工程基础。
要点
- 工具绑定技能后,工具 schema 仅在智能体读取对应技能时才进入上下文,既保持提示精简,又确保智能体在调用工具前已掌握使用方法。
- 技能固定功能允许应用层在运行时预加载用户指定的技能,减少一次模型调用的延迟,并保证相关工具随技能一并就位。
- 长期运行的对话线程现在可以通过将 skills_metadata 置为 None 触发技能重载,无需重启线程即可感知技能库的最新变更。
- 工具标签机制支持按运行时权限动态解析工具列表,可实现基于用户角色的细粒度工具访问控制。
- 三项改进均以不破坏提示缓存为设计原则,在功能扩展的同时兼顾推理成本控制。