智能技能库的诞生
核心比喻:给 AI 助理配个「按需调用的技能库」
图里用了一个非常形象的比喻:
你雇了一个聪明但不熟悉你业务的助理,有两种方式让他上手工作:
- 错误方式:第一天就把公司所有规章制度、流程手册全塞给他 → 信息过载,直接懵掉,效率极低。
- 正确方式:给他一个「智能技能库」,只有当他要处理具体任务(比如 “分析财报”“安排跨国会议”)时,才调出对应的「技能手册」给他看 → 高效、不浪费精力。
这个比喻,就是为了引出后面的核心概念:LangChain 的 Skills(技能)功能。
核心概念:LangChain Skills 是什么?
图里给出了明确的定义:
LangChain 的 Skills(技能)功能,就是为 AI 智能体(Deep Agent)准备的「智能技能库」。
它的核心作用是:
- 让 AI 智能体 按需调用 复杂、专业化的知识和工作流程
- 避免了 “把所有知识一次性喂给 AI” 的低效方式
- 最终实现「既高效、又节省资源」的效果
背后的深层意义:解决了 AI 智能体的关键痛点
这个设计,其实解决了 AI 智能体开发中一个很核心的矛盾:
- 矛盾点:AI 智能体需要处理复杂的专业任务(比如代码开发、财务分析),但大模型的上下文窗口、知识容量都是有限的,一次性加载所有知识不仅成本高,还容易让模型 “信息过载”。
- 解决方案:Skills 就像给 AI 装了一套「插件式工具箱」,平时不用的时候,这些 “技能”(专业知识、流程、工具调用方法)都存在库里;当 AI 判断自己需要处理某个特定任务时,再动态加载对应的技能,调用完成后就释放掉资源。
举个例子:
- 当 AI 智能体要帮你写 Python 代码时,它才会调用「代码开发技能」,里面包含语法规则、调试流程、工具调用方法;
- 当它要帮你写周报时,就切换调用「办公文档技能」,加载周报模板、公司汇报规范等内容。
一句话总结
这张图讲的就是:LangChain 的 Skills 功能,是让 AI 智能体像人类助理一样,按需调用专业技能的机制,既避免了信息过载,又大幅提升了复杂任务的处理效率。
什么是Agent Skills
基本定义
Agent Skills 是一种标准化的格式,用来给 AI Agent 添加新能力。
简单来说,一个技能就是一个文件夹,里面有一个
SKILL.md文件,这个文件会告诉 Agent:
- 这个技能叫什么名字
- 它能做什么事
- 具体要怎么完成某项任务
你可以把它理解成:
- 给 AI 智能体写的「标准化说明书」
- 只要你按这个格式写好一个技能,任何支持这个标准的 Agent 都能直接看懂并使用它
- 核心载体就是
SKILL.md文件,它是 Agent 和技能之间的 “通用语言”
核心价值
| 角色 | 核心价值 | 通俗理解 |
|---|---|---|
| 技能作者 | 写一次技能,就能在很多不同的 Agent 产品里使用 | 就像写了一个通用插件,一次开发,到处复用,不用为每个平台单独适配 |
| Agent 使用者 | 可以轻松给 Agent 添加新功能,开箱即用 | 就像给手机装 APP,想让 Agent 会做什么,直接导入对应的技能包,不用自己从零开发 |
| 团队和企业 | 可以把团队的知识整理成技能包,方便管理和分享 | 把公司的业务流程、专业知识打包成标准化技能,新人 / 新 Agent 直接就能上手,知识不会流失 |
Agent Skills的组成结构
目录结构
1 | my-skill/ |
通俗解读:
SKILL.md(必需):整个技能的 “大脑” 和 “说明书”,是 AI Agent 能看懂这个技能的核心文件,没有它就不是一个合法的技能包。scripts/(可选):放和技能相关的代码脚本,比如实现 PDF 处理的 Python 代码,方便 Agent 直接调用执行。references/(可选):放参考资料,比如 API 文档、业务规则说明,Agent 处理任务时可以查阅这些信息。assets/(可选):放模板文件、资源文件,比如 PDF 表单模板、Excel 表头模板,Agent 可以直接复用。
你可以把它理解成一个标准化的「工具包」:
SKILL.md是工具的使用说明书scripts/是工具的核心零件references/是工具的补充手册assets/是工具的配套耗材 / 模板
SKILL.md文件规范
SKILL.md 的标准格式示例,分为两部分:开头元信息 + 正文使用说明。
1 |
|
name:技能的唯一名称,比如pdf-processing,是 Agent 识别技能的 ID。description:技能的一句话描述,告诉 Agent “这个技能能做什么”,比如提取 PDF 文本、填充表单、合并文档。
这部分是给 Agent 的「快速索引」,Agent 在判断要不要调用这个技能时,会先看这两行信息。
正文需要包含这些关键信息:
- 何时使用:明确说明在什么场景下应该调用这个技能(比如用户说 “帮我提取 PDF 里的文字” 时)。
- 操作步骤:告诉 Agent 具体要怎么一步步完成任务,比如用什么工具、按什么顺序执行。
- 还可以补充:注意事项、参数说明、错误处理方式等。
技术规范
1.必需字段:技能的 “身份证”
这两个字段是每个 SKILL.md 文件必须有的,相当于技能的唯一标识和简介:
| 字段 | 要求 | 通俗解读 |
|---|---|---|
name(技能名称) |
1-64 个字符,只能用小写字母、数字和连字符,不能以连字符开头 / 结尾 | 技能的唯一 ID,比如 pdf-processing,必须干净规范,避免系统识别出错 |
description(技能描述) |
1-1024 个字符,要说明 “技能能做什么、什么时候用” | 给 AI 和用户看的一句话简介,比如 “提取 PDF 文本、填充表单、合并文档”,是 AI 判断要不要调用它的关键 |
2.可选字段:技能的 “补充信息”
这些字段不是必须的,但加上能让技能更完善、兼容性更好:
license:许可证信息(比如 MIT 协议),说明技能的使用权限compatibility:运行环境要求(500 字以内),比如 “需要 Python 3.9 + 和 pdfplumber 库”,避免 Agent 在不兼容的环境里调用失败metadata:其他附加信息,比如作者、版本号、更新时间等allowed-tools:允许使用的工具列表(实验功能),限制技能能调用哪些工具,保证安全性
3.文件引用规范:技能的 “文件管理规则”
这部分是为了让技能包的文件结构清晰、Agent 能顺利找到资源:
- 必须使用相对路径:所有文件引用(比如脚本、模板)都要相对于技能文件夹的路径,比如
./scripts/extract_pdf.py,这样技能包复制到任何地方都能正常工作 - 引用不要嵌套太深:比如不要写成
./a/b/c/d/file.txt,尽量保持扁平结构 - 避免层层引用:不要在文件里引用文件再引用文件,直接让结构一目了然,减少 Agent 读取时的出错概率
Agent Skills的工作原理
1. 按需加载机制:像查字典一样调用技能
技能的加载过程,就像我们查字典一样,分三步完成:
第一步:Agent 启动时,只 “扫一眼目录”
Agent 启动时,会先快速扫描所有技能包,只记住每个技能的名字和用途(比如 “pdf-processing:处理 PDF 文件”),但不会把所有技能的详细内容、代码都加载进内存。
就像你只记住了字典的目录和词条标题,不会把整本字典背下来。
第二步:用户提任务时,再 “翻到对应的词条”
当用户提出具体任务(比如 “帮我提取 PDF 里的文字”),Agent 会根据任务描述,判断需要调用哪个技能,然后才去读取这个技能的
SKILL.md详细说明。就像你要查某个词时,才会翻到字典对应的页码,看完整解释。
第三步:执行任务时,按需 “调用补充材料”
Agent 按照技能说明执行任务,必要时还会加载技能包里的代码、模板、参考资料(比如
scripts/里的 PDF 处理脚本)。就像你查词时,还会顺带看一下词条里的例句、用法说明。
这个机制的核心好处是:平时不占资源,用的时候再加载,既高效又省内存。
2.核心优势:为什么这种设计很优秀?
| 优势 | 通俗解读 |
|---|---|
| 简单易懂 | 技能文件就是普通的文本(Markdown 格式),不用复杂的开发工具,任何人都能看懂、修改 |
| 灵活扩展 | 既能写简单的文字说明,也能扩展成包含代码、模板、参考资料的完整功能包,从小任务到复杂业务都能覆盖 |
| 方便分享 | 技能就是一个文件夹,可以直接复制、用 Git 做版本控制、打包发给别人,分享和复用成本极低 |
集成Agent Skills到Agent中
1.集成方法:两种主流方式
| 类型 | 说明 | 通俗理解 |
|---|---|---|
| 文件系统 Agent | 在电脑上运行,通过命令行来使用技能 | 本地运行的 Agent,直接读取本地技能文件夹,用命令行就能调用技能 |
| 工具型 Agent | 通过工具接口来激活技能和访问资源 | 服务端 / 平台型 Agent,通过标准化的工具接口来加载和使用技能包 |
简单说,就是 “本地直读” 和 “接口调用” 两种模式,覆盖了从个人开发到企业服务的不同场景。
2.集成步骤:Agent 是怎么和技能建立联系的?
这三步对应了前面讲的「按需加载」机制:
发现技能:扫描指定目录,找到所有有效的技能文件夹
就像系统先扫一遍你电脑里的 “技能仓库”,识别出所有合法的技能包。
加载基本信息:启动时只读取每个
SKILL.md文件的开头部分(name 和 description)只把技能的 “目录” 加载到内存,不读完整说明书,保证启动速度。
注入上下文:把技能的基本信息告诉 Agent,让它知道有哪些技能可用
让 AI 智能体知道 “我有这些工具可以用”,为后续按需调用做好准备。
3.DeepAgents 集成示例
- LangChain 的 Deep Agents 框架原生支持 Agent Skills
- 必须确保
DeepAgents及其依赖组件更新到 v0.4 及以上版本,才能正常使用这个功能
这意味着你可以直接用 DeepAgents 框架,按前面的规范写好技能包,就能快速实现一个带技能扩展能力的 AI 智能体了。
1 | from deepagents import create_deep_agent |
代码解读:
导入依赖
1
2
3from deepagents import create_deep_agent
from langgraph.checkpoint.memory import MemorySaver
from deepagents.backends.filesystem import FilesystemBackendcreate_deep_agent:DeepAgents 框架的核心函数,用来创建 AI 智能体MemorySaver:LangGraph 的内存检查点工具,用来保存对话状态(支持多轮对话)FilesystemBackend:文件系统后端,让 Agent 可以从本地文件夹加载技能包
初始化检查点
1
checkpointer = MemorySaver()
开启对话状态保存功能,是人机协作模式的必需配置。
创建 Deep Agent 实例
1
2
3
4
5
6
7
8
9
10agent = create_deep_agent(
backend=FilesystemBackend(root_dir="/Users/user/{project}", virtual_mode=True),
skills=["/Users/user/{project}/skills/"],
interrupt_on={
"write_file": True, # 需要用户确认:批准、编辑或拒绝
"read_file": False, # 不需要中断
"edit_file": True # 需要用户确认:批准、编辑或拒绝
},
checkpointer=checkpointer, # 必须配置!
)backend:配置文件系统后端,指定项目根目录,virtual_mode=True表示启用虚拟文件系统模式skills:指定技能包所在的文件夹路径,Agent 会从这里扫描并按需加载技能interrupt_on:设置需要用户确认的操作,比如写文件、编辑文件时需要人工批准,读文件则不需要checkpointer:绑定前面初始化的检查点工具
调用 Agent 执行任务
1
2
3
4
5
6
7
8
9
10
11result = agent.invoke(
{
"messages": [
{
"role": "user",
"content": "What is langgraph?",
}
]
},
config={"configurable": {"thread_id": "12345"}},
)invoke:调用 Agent 执行任务messages:用户的提问内容config:配置对话线程 ID,用来标识当前会话,支持多轮对话状态的保存
应用场景与价值
1. 核心应用领域
Agent Skills 最典型的 4 种用法:
- 专业知识沉淀:把专家的经验、业务规则整理成技能包,让 AI 也能像资深员工一样处理专业任务(比如财务审核、法律咨询)。
- 能力扩展:给 Agent 增加具体功能,比如制作 PPT、搭建服务器、处理 PDF 等,相当于给 AI 装了 “专属插件”。
- 工作流自动化:把复杂的多步骤任务(比如周报生成、客户跟进流程)变成标准化的技能流程,AI 可以按步骤自动执行。
- 跨平台复用:同一个技能包,在不同的 Agent 产品 / 框架里都能直接使用,不用重复开发。
2.实际价值体现
| 价值点 | 通俗解读 |
|---|---|
| 统一标准 | 把团队的最佳实践固化成技能,所有人 / 所有 Agent 都按同一套标准执行,避免 “各搞一套” |
| 降低成本 | 不用为每个 Agent 单独开发功能,一次开发、多处复用,减少重复投入 |
| 提高质量 | 技能里的流程和规则是固定的,AI 执行时更稳定可靠,减少出错概率 |
| 促进协作 | 技能包可以像文件一样分享、管理,团队知识不再只存在于个人手里,更容易传承和迭代 |
Agent Skills 不仅能让 AI 变得更能干,还能帮团队沉淀知识、统一流程、降低成本,让 AI 能力的扩展和管理变得更高效。
开发与实施指南
写出更易用、更稳定的 Agent Skills 的关键原则:
✅ 保持简洁
- 要求:
SKILL.md文件不要太长,建议控制在 500 行以内 - 目的:让内容清晰易读,AI 和人都能快速理解技能的核心用途和步骤
- 理解:就像给别人写操作说明,重点突出、步骤清晰比长篇大论更有用
📂 分离内容
- 要求:把详细的参考资料放到单独的文件里,不要都塞在
SKILL.md里 - 目的:保持主文件的简洁,避免信息过载
- 理解:可以把复杂的 API 文档、规则说明放到
references/文件夹里,只在SKILL.md里写关键步骤和使用场景
</> 提供示例
- 要求:在技能说明里给出具体的输入输出例子
- 目的:让用户 / AI 一眼就明白 “这个技能怎么用、能得到什么结果”
- 理解:比如 “输入:帮我提取 PDF 里的文字 → 输出:PDF 的文本内容,去除格式和图片”,这样 AI 就知道什么时候该调用这个技能了
🛡️ 考虑边界
- 要求:提前处理常见问题和特殊情况,比如文件不存在、格式错误、权限不足等
- 目的:提高技能的可靠性,避免 AI 调用时出错
- 理解:在说明里加上 “如果文件不存在,需要提示用户上传文件”“如果是加密 PDF,需要用户提供密码” 这类处理逻辑,让技能更健壮
这 4 条实践的核心目标,就是让你的SKILL.md文件简洁、清晰、易用、稳定,既能让 AI 准确理解和调用,也方便其他人维护和复用。