外观
在技能架构中,专门能力被封装为可调用的"技能",用于增强 智能体 的行为。技能主要是由提示词驱动的专门化,智能体可以按需调用。 如需内置的技能支持,请参阅 Deep Agents。
TIP
该模式在概念上与 Agent Skills 和 llms.txt(由 Jeremy Howard 提出)相同,后者使用工具调用对文档进行渐进式披露。技能模式将渐进式披露应用于专门的提示词和领域知识,而不仅仅是文档页面。
如需能提升你的智能体在 LangChain 生态任务上表现的即用型技能,请参阅 LangChain Skills 仓库。
关键特征
- 提示词驱动的专门化:技能主要由专门提示词定义
- 渐进式披露:技能根据上下文或用户需求变得可用
- 团队分工:不同团队可以独立开发和维护技能
- 轻量级组合:技能比完整的子智能体更简单
- 引用感知:技能可以引用脚本、模板和其他资源
何时使用
当你希望单个 智能体 拥有许多可能的专门化、不需要在技能之间强制施加特定约束,或者需要不同团队独立开发能力时,请使用技能模式。常见示例包括编码助手(针对不同语言或任务的技能)、知识库(针对不同领域的技能)和创意助手(针对不同格式的技能)。
基本实现
python
from langchain.tools import tool
from langchain.agents import create_agent
@tool
def load_skill(skill_name: str) -> str:
"""Load a specialized skill prompt.
Available skills:
- write_sql: SQL query writing expert
- review_legal_doc: Legal document reviewer
Returns the skill's prompt and context.
"""
# 从文件/数据库加载技能内容
...
agent = create_agent(
model="gpt-5.5",
tools=[load_skill],
system_prompt=(
"You are a helpful assistant. "
"You have access to two skills: "
"write_sql and review_legal_doc. "
"Use load_skill to access them."
),
)typescript
import { tool, createAgent } from "langchain";
import * as z from "zod";
const loadSkill = tool(
async ({ skillName }) => {
// 从文件/数据库加载技能内容
return "";
},
{
name: "load_skill",
description: `Load a specialized skill.
Available skills:
- write_sql: SQL query writing expert
- review_legal_doc: Legal document reviewer
Returns the skill's prompt and context.`,
schema: z.object({
skillName: z
.string()
.describe("Name of skill to load")
})
}
);
const agent = createAgent({
model: "gpt-5.5",
tools: [loadSkill],
systemPrompt: (
"You are a helpful assistant. " +
"You have access to two skills: " +
"write_sql and review_legal_doc. " +
"Use load_skill to access them."
),
});完整的实现请参见下面的教程。
- 教程:构建带按需技能的 SQL 助手 — 了解如何使用渐进式披露实现技能,即智能体按需加载专门提示词和模式,而不是预先加载。
扩展该模式
编写自定义实现时,你可以通过多种方式扩展基本的技能模式:
动态工具注册:将渐进式披露与状态管理相结合,在技能加载时注册新的 工具。例如,加载"database_admin"技能既可以添加专门上下文,也可以注册数据库专用工具(备份、恢复、迁移)。这使用了与多智能体模式相同的工具与状态机制——工具更新状态以动态改变智能体能力。
分层技能:技能可以在树状结构中定义其他技能,创建嵌套的专门化。例如,加载"data_science"技能可能会使"pandas_expert"、"visualization"和"statistical_analysis"等子技能变得可用。每个子技能都可以按需独立加载,从而对领域知识进行细粒度的渐进式披露。这种分层方法通过将能力组织成可发现并按需加载的逻辑分组,帮助管理大型知识库。
引用感知:虽然每个技能只有一个提示词,但这个提示词可以引用其他资源的存储位置,并提供何时应使用这些资源的信息。 当这些资源变得相关时,智能体将知道这些文件存在,并在需要时按需将其读入记忆以完成任务。 这也遵循了渐进式披露模式,并限制了上下文窗口中的信息量。