ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

小白程序员必备:深入浅出理解大模型技能机制重构(Deep Agents 技术解析)

小白程序员必备:深入浅出理解大模型技能机制重构(Deep Agents 技术解析)

本文介绍了 Deep Agents 对 LangChain 技能机制的重构,解决企业 Skill 库扩大后工具加载、用户调用和长会话更新等问题。新增工具绑定、固定 Skill 和会话内重载功能,使 Skill 从文件组织方式转变为 Agent 系统运行时核心。文章详细解析了这三项能力的实现方式,帮助开发者更好地利用大模型技能机制。

这次更新加入了工具绑定(tool binding)、固定 Skill(pinned skill)和会话内重载(mid-thread reloading)。它们解决了三个很具体的问题:工具与指令各走各的、显式调用仍要多跑一轮模型、长会话看不到 Skill 的最新变化。Deep Agents 还处理了 prompt 缓存和运行时权限。经过这次重构,Skills 已经从一种文件组织方式,变成了大型 Agent 系统运行时的一部分。

先说结论,这次重构 Skill 可以归纳为三项能力:

  1. 工具可以绑定到 Skill。Skill 读取前,工具模式(tool schema)不会进入上下文。模型如果支持在会话中途添加工具,新增工具也不会破坏前面已经建立的 prompt 缓存。

  2. 应用可以在运行时固定 Skill。工作流已经明确要用哪个 Skill 时,应用可以在第一次模型调用前把完整指令放进上下文,不必再让 Agent 执行一次read_file。

  3. 长会话可以重新加载 Skill 库。线程运行期间即使有 Skill 被新增、修改或删除,应用也能触发重新扫描,用户不用重开会话。

Skill 是一个包含SKILL.md的目录。文件开头用 YAML 前置元数据填写name和description,后面写 Agent 需要遵循的指令。目录里还可以放scripts/、references/和assets/。这种格式遵循 Agent Skills 开放标准,核心文件就是 Markdown,基础 Skill 不一定非要由工程师编写。

Skills 通过渐进式披露控制上下文成本。Agent 启动时只知道有哪些 Skills,遇到具体任务才读取对应指令。LangChain 的市场拓展 Agent(go-to-market agent, GTM Agent)已经积累了 50 多个 Skills,用来处理会议准备、通话记录和竞争情报卡片等重复工作。企业共享的 Skill 注册表继续扩大后,工具怎样加载、用户怎样点名调用、长会话怎样拿到新版本,都成了必须解决的工程问题。

接下来的三项改动正好对应这些问题:工具跟随 Skill 一起加载;应用可以提前指定当前工作流要用的 Skill;线程不用中断,也能重新扫描 Skill 库。

Skills 如何工作

一个 Skill 可以包含指令、脚本、参考资料和其他资源,但不会一次性把它们全部放进上下文。

Skill 目录中的内容按需进入上下文

图中一直留在上下文里的,只有 Skill 的名称和描述。Agent 判断任务相关后才读取完整指令,等到执行确实需要时,再加载脚本、参考资料或其他资源。Skill 目录把材料收在一起,渐进式披露决定它们何时进入上下文。

Deep Agents 把加载过程分成三个层级:

  1. 发现(discovery)。Agent 启动时,在系统 prompt 中看到所有 Skill 的name和description。

  2. 激活(activation)。任务与某个 Skill 匹配后,Agent 使用read_file读取完整的SKILL.md。

  3. 执行(execution)。Agent 按照 Skill 指令工作,只在确有需要时读取脚本或参考文件。

上下文随着任务需要逐层增加

这条时间线从左到右画出了上下文怎样逐渐增长。启动时只有一份简短的 Skills 目录;任务触发某个 Skill 后,它的完整指令才会加入;执行到确实需要资料的位置时,相关参考文件再进入上下文。其余 Skills 和没用到的资源一直留在外面。一个尚未使用的 Skill 通常只占系统 prompt 中的一行,所以大量 Skill 条目不会立刻挤满上下文窗口。

将工具绑定到 Skill

很多 Skill 会同时说明任务怎么做、特定工具怎么调用。有些工具只有在模型读完说明后才能正确使用。过去,Skills 和工具分别披露。工具搜索虽然可以暂时不加载工具模式,但工具和说明它的 Skill 没有直接联系。模型可能先找到工具,过一会儿才读到说明;也可能已经读完 Skill,却还得再搜索一次相关工具。

工具绑定把这两条加载路径接在了一起。Skill 被读取后,绑定的工具才进入上下文。Agent 如果提前调用,系统会把它当成未知工具。以call-transcripts为例,这个 Skill 说明怎样搜索客户通话、读取转录文本,因此search_calls和get_transcript也会绑定到这个 Skill。

在 Skill 前置元数据中声明绑定工具

配置在metadata.include_tools中直接列出两个工具:

name和description用来发现 Skill,include_tools用来绑定工具。只有读过call-transcripts,这两个工具才会出现在 Agent 可见的工具集合中。

工具需要交给SkillsMiddleware,不再直接传给 Agent:

通过 SkillsMiddleware 注册 Skill 可绑定的工具

sources指定去哪里扫描 Skills,tools列出可能被 Skills 引用的工具。中间件检查include_tools,等相应 Skill 被读取后再开放工具。这样,工具不必从第一轮开始就占用上下文。

读取 Skill 后解锁绑定工具并保留缓存前缀

流程刚开始时,系统 prompt 中只有 Skill 目录,看不到search_calls和get_transcript。模型通过read_file读取call-transcripts,完整指令先以工具结果的形式返回。随后,Deep Agents 用一条新的系统消息加入两个绑定工具。旧消息没有变化,由它们组成的缓存前缀仍然可以复用。

过去在会话中途增加工具,通常要改动下一次请求的工具列表,原有 prompt 缓存也会随之失效。较新的 Anthropic 和 OpenAI 模型允许在对话中途增加工具。Deep Agents 便能在读取 Skill 后直接加入绑定工具,同时保住前面的缓存。其他模型仍按原来的方式,把工具追加到请求中。

多数 Skill 直接列出工具名就够了。工具数量很多,或者权限会随着用户身份变化时,可以在include_tools中填写标签,再由解析函数把标签换成真正的工具。

用标签表示 MCP 工具组和 CRM 工具组

call_tools和crm_tools都是工具组标签,不指向某一个具体工具。一个标签可以代表某个 MCP Server 上的全部工具,也可以交给运行时函数按权限筛选。

在运行时解析工具组并检查用户权限

call_tools会取回callsMCP Server 的全部工具。解析crm_tools时,函数读取运行时中的用户权限:经理可以查询销售管道并更新预测,普通用户只能查询。权限在两处收紧:Skill 先选出任务需要的工具组,解析函数再按运行环境返回当前用户有权使用的工具。

固定 Skills

渐进式披露通常由模型自己判断。不过,有时用户已经明确知道要用哪个 Skill。销售人员输入/meeting-prep for my Acme call tomorrow后,如果还让模型读取描述、判断匹配、调用read_file,就会多出一次模型往返,还可能选错 Skill。

固定 Skill 的做法很直接:应用先从用户消息或界面中识别 Skill 名称,再通过pinned_skills交给中间件。下一次调用模型之前,中间件就把完整指令加入对话。Deep Agents 不解析命令文本,应用可以选择斜杠命令、按钮或其他界面。

用户通过斜杠命令明确指定 meeting-prep Skill

/meeting-prep已经表明用户选了哪个 Skill。应用解析出名称即可,不必再让模型猜。

解析斜杠命令并传入 pinned_skills

正则表达式从消息中提取斜杠命令,得到meeting-prep。应用把这个列表写入调用参数里的pinned_skills字段,中间件会在模型处理消息前加载对应 Skill。这套命令语法只是示例,业务应用可以采用自己的解析规则。

固定 Skill 让模型从第一次调用就获得完整指令

没有固定时,第一次模型调用只能看到 Skill 描述。模型请求读取文件后,要到第二次调用才拿到完整指令。固定后,第一次调用时上下文里就有 Skill 指令,绑定工具也会同时加入。少跑一次模型,执行路径也更稳定。

每个固定 Skill 只会作为带标签的消息加入一次,前面的消息不会被改写,prompt 缓存仍然有效。聊天界面可以只显示 Skill 标签,无需把完整指令暴露给用户。

在线程中重载 Skills

Deep Agents 默认在线程启动时扫描 Skills,并把元数据保存在 Agent 状态中,后面的轮次继续复用这份列表。如果团队成员在会话期间新增competitive-intel-card、修改现有 Skill,或者删除过期 Skill,当前线程不会自动发现这些变化。

调用 Agent 时把skills_metadata设为None,可以让下一次运行重新扫描所有 Skill 来源:

把 skills_metadata 设为 None 触发重新扫描

这里的None用来清除已经缓存的 Skill 元数据,不代表 Skill 列表为空。下一次运行会重新读取来源目录,再把最新结果写回 Agent 状态。

重新扫描后长会话可以发现新增 Skill

重载前,系统 prompt 中仍然是线程启动时发现的 Skills。应用清除skills_metadata后,下一次运行会重新扫描目录,新加入的 Skill 随即进入系统 prompt。用户可以留在当前线程中继续工作,不用重新开始会话。

Skill 列表变化后,系统 prompt 也会改变,原来的 prompt 缓存因此失效。对于已经闲置一段时间的线程,这项成本通常不高。模型提供商的缓存往往会在停止使用后的几分钟到一小时内过期,等用户回来时,旧缓存很可能本来就不能用了。

重载只需要在本次调用中传入一个信号。应用也可以把控制权交给用户,例如定义客户端/reload命令:

客户端通过 reload 命令请求刷新 Skill 库

普通消息按原样进入payload。消息以/reload开头时,应用再写入skills_metadata: None,下一次运行便会重新扫描。也可以通过update_state或中间件完成同样的重置。产品可以在 Skill 发布后、线程闲置一段时间后,或者用户主动操作时触发刷新。

开始使用

在 LangChain 的设计里,Skills 用来向 Agent 提供结构化的领域知识。这次更新补齐了规模化使用时需要的运行机制。绑定工具只在 Skill 真正需要时进入上下文;工作流已经明确依赖哪个 Skill 时,可以提前加载;会话持续很久,也能跟上 Skill 库的变化。

这些能力已经进入最新版deepagents。Agent Skills 采用开放标准,同一套 Skill 目录可以跨模型和 Agent 使用。工具绑定、固定加载和重载,则由 Deep Agents 在运行时提供。

大模型的知识又多又杂,到底怎么学?

做这行久了,被问最多的问题就一个:大模型的知识又多又杂,我到底先学啥?翻了一堆资料,看啥都像重点,结果啥都没学进去。今天把我自己一路摸出来的顺序捋一遍,零基础、应届生、转行的都适用。跟着走,至少方向不乱、不瞎忙,学完拿得出手。

第一阶段(10天):初阶应用

这一阶段就一个目标:把大模型真正"玩明白",不是只会聊天那种,而是能调教它、能用代码把大模型和业务接起来。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
  • …
第二阶段(30天):高阶应用

这阶段正式进实战,目标很实在:做出两个能拿出手的东西——一个私有知识库,一个 agent 对话机器人。

  • 为什么要做 RAG

  • 搭建一个简单的 ChatPDF

  • 检索的基础概念

  • 什么是向量表示(Embeddings)

  • 向量数据库与向量检索

  • 基于向量检索的 RAG

  • 搭建 RAG 系统的扩展知识

  • 混合检索与 RAG-Fusion 简介

  • 向量模型本地部署

  • …

走完这 30 天,Python 或 JavaScript 背景的基本能独立做一套 RAG 应用,简历上也敢写"大模型应用开发"了。

第三阶段(约20天):动手微调

学到这,你已经开始 “造” 模型了 —— 通过微调,搞出垂直领域的专用小模型。

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
  • …

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你从 “只会用” 变成 “能造” 的 AI 小子。那么你还想往下探索吗?

想要入局AI大模型赛道、抢占行业红利的朋友,微信扫描下方CSDN官方认证二维码,即可100%免费领取全套学习资料!

第四阶段(20天):商业闭环,部署落地

技术学完,落地才算数。这阶段带你搞明白大模型怎么真正跑起来、用起来。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案
  • …

想要入坑大模型的朋友,给大家准备了一份2026 年最新 AI 大模型全套学习资料:

1、大模型系统化学习路线

2、大模型学习视频教程

3、大模型学习书籍&电子文档

4、AI大模型最新行业报告

5、大模型项目实战&配套源码

6、2026大模型大厂面试真题

7、为什么要学习大模型?

我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年,人才缺口已超百万,凸显培养不足。随着AI技术飞速发展,预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。

8、适合谁学?
  • 传统后端 / Java / 前端开发,想转型 AI 应用
  • 大学生、应届生,想拿更好的 offer
  • 产品经理、运营,想武装职业竞争力
  • 技术负责人,想给团队落地提效

学习是反人性的,但回报是真金白银。技术会更新,赛道会切换,但只要你先动手,机会就永远站在你这边。

9、这些资料真的有用吗?

这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。

想要入局AI大模型赛道、抢占行业红利的朋友,微信扫描下方CSDN官方认证二维码,即可100%免费领取全套学习资料!

好了,就写到这。路线是死的,人是活的,卡住了随时来问我。觉得有用就点个收藏,别让它进收藏夹吃灰——动起来比啥都强。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进