技能是可重用的代理能力,提供专门的工作流程和领域知识。 您可以使用 Agent Skills 为您的深度代理提供新的能力和专业知识。有关旨在提高代理在 LangChain 生态系统任务中表现的现成技能,请参阅 LangChain Skills 仓库。 深度代理技能遵循 Agent Skills 规范。文档索引
在以下地址获取完整的文档索引:https://docs.langchain.org.cn/llms.txt
在进一步探索之前,请使用此文件发现所有可用页面。
什么是技能 (Skills)
技能是一个包含文件夹的目录,每个文件夹中包含一个或多个文件,这些文件提供了代理可以使用的上下文- 一个包含技能说明和元数据的
SKILL.md文件 - 额外的脚本(可选)
- 额外的参考信息,例如文档(可选)
- 额外的资产,例如模板和其他资源(可选)
任何额外的资产(脚本、文档、模板或其他资源)必须在
SKILL.md 文件中引用,并附上有关该文件内容及其使用方法的信息,以便代理能够决定何时使用它们。技能如何工作
创建深度代理时,您可以传入包含技能的目录列表。当代理启动时,它会读取每个SKILL.md 文件的 frontmatter(元数据)。 当代理收到提示词时,它会检查在满足该提示词时是否可以使用任何技能。如果找到了匹配的提示词,它会随后查看剩余的技能文件。这种仅在需要时才查看技能信息的模式称为“渐进式披露”。示例
您可能拥有一个包含某种方式使用文档网站的技能的技能文件夹,以及另一个用于搜索 arXiv 预印本研究论文库的技能SKILL.md 文件始终遵循相同的模式:首先是 frontmatter 中的元数据,随后是该技能的指令。 以下示例展示了一个技能,它提供了关于如何在被提示时提供相关 LangGraph 文档的说明:完整示例
以下示例展示了使用所有可用 frontmatter 字段的SKILL.md 文件
用法
创建深度代理时传入技能目录- StateBackend
- StoreBackend
- FilesystemBackend
技能源路径列表。路径必须使用正斜杠指定,并且是相对于后端根目录的相对路径。
- 如果省略,则不会加载任何技能。
- 使用
StateBackend(默认)时,请通过invoke(files={...})提供技能文件。使用deepagents.backends.utils中的create_file_data()来格式化文件内容;不支持原始字符串。 - 对于
FilesystemBackend,技能是相对于后端root_dir从磁盘加载的。
SDK 仅加载您在
skills 中传入的源。它不会自动扫描 CLI 目录(例如 ~/.deepagents/... 或 ~/.agents/...)。有关 CLI 存储约定,请参阅 应用数据。在 SDK 中模拟 CLI 源顺序
在 SDK 中模拟 CLI 源顺序
如果您想在 SDK 代码中使用 CLI 风格的分层,请按优先级从低到高的顺序显式传入所有所需的源然后在创建代理时将该有序列表作为
skills 传入。源优先级
当多个技能源包含同名技能时,在skills 数组中靠后列出的源中的技能将具有优先权(后加载的生效)。这允许您对来自不同来源的技能进行分层。
子代理的技能
当您使用 子代理 时,您可以配置每种类型的子代理可以访问哪些技能- 通用子代理:当您将
skills传递给create_deep_agent时,自动继承主代理的技能。无需额外配置。 - 自定义子代理:不会继承主代理的技能。需要在每个子代理定义中添加一个
skills参数,并附上该子代理的技能源路径。
代理所见
当配置了技能时,系统会向代理的系统提示词中注入一个“技能系统”部分。代理利用此信息遵循三个步骤的过程- 匹配 (Match)—当用户提示到达时,代理检查是否有任何技能的描述与任务匹配。
- 读取 (Read)—如果某个技能适用,代理会使用其技能列表中显示的路径读取完整的
SKILL.md文件。 - 执行 (Execute)—代理遵循技能的指令,并根据需要访问任何支持文件(脚本、模板、参考文档)。
在沙盒中执行技能脚本
技能可以包含与SKILL.md 文件并存的脚本,例如执行搜索或数据转换的 Python 文件。代理可以从任何后端读取这些脚本,但为了执行它们,代理需要访问 shell——只有 沙盒后端 提供此功能。 当您使用 CompositeBackend 将技能路由到 StoreBackend 进行持久化,同时使用沙盒作为默认后端时,技能文件位于存储中而非代码运行的沙盒中。为了使沙盒能够使用这些脚本,您必须使用 自定义中间件,在代理启动前将技能脚本上传到沙盒中:before_agent 钩子会在每次代理调用前运行,从该共享命名空间读取技能文件并将其上传到沙盒文件系统中。一旦同步完成,代理就可以像沙盒中的任何其他文件一样,使用 execute 工具执行脚本。 有关同时进行 记忆 (memories) 双向同步的更完整示例,请参阅 使用自定义中间件同步技能和记忆。技能与记忆 (Memory) 的对比
技能和 记忆 (memory) (AGENTS.md 文件) 具有不同的用途
| 技能 | 内存 | |
|---|---|---|
| 目的 | 通过渐进式披露发现的按需能力 | 始终在启动时加载的持久上下文 |
| 加载方式 | 仅在代理确定相关性时读取 | 始终注入到系统提示词中 |
| 格式 | 命名目录中的 SKILL.md | AGENTS.md 文件 |
| 分层 | 用户 → 项目(后者生效) | 用户 → 项目(组合) |
| 使用场景 | 指令是任务特定的且可能篇幅较大 | 上下文始终相关(项目约定、偏好) |
何时使用技能与工具
以下是关于使用工具和技能的一些通用指南- 当有大量上下文时,请使用技能以减少系统提示词中的 token 数量。
- 使用技能将能力捆绑成更大的操作,并提供超出单一工具描述之外的额外上下文。
- 如果代理无法访问文件系统,请使用工具。
将这些文档连接到 Claude、VSCode 等,以获得实时答案。

