一、Skill 的本质定义
Skill(技能) 是 AI Agent 系统中的最小可执行能力单元。它是将特定功能——如"搜索互联网""读取文件""发送邮件""执行 SQL"——封装为标准化接口的能力模块,供 Agent 按需调用。Skill 不是一段普通的代码函数,而是一个具备结构化描述、明确输入输出、安全边界和可发现性的完整能力包。
如果把 Agent 比作一个"数字员工",那么 Skill 就是这名员工身上的具体技能:会写代码、会查资料、会做表格。Agent 的核心价值不在于"知道自己该做什么",而在于知道什么时候该用什么技能、怎么组合这些技能来达成目标。
Skill = 功能实现 + 结构化描述 + 标准化接口 + 安全边界
一个完整的 Skill 由这四大要素共同构成,缺一则不完整
二、Skill 的六大核心特征
可插拔
Skill 可随时安装、卸载、启用、禁用,不影响 Agent 主体的运行,实现真正的"热插拔"能力扩展。
标准化接口
每个 Skill 都遵循统一规范:名称、描述、参数 Schema、返回值格式,Agent 无需了解实现细节即可发现与调用。
安全隔离
Skill 在受限环境中执行,具有明确的权限边界,不能越权访问 Agent 的其他能力或用户敏感数据。
可组合
多个 Skill 可以被 Agent 编排组合,形成复杂的工作流,一个 Skill 的输出可以作为另一个 Skill 的输入。
可发现
Agent 通过 Skill 的自描述元数据,自动判断哪个 Skill 适合当前子任务,无需人工硬编码选择逻辑。
可测试
每个 Skill 具有明确的输入输出契约,可以独立进行单元测试和效果评估,便于持续优化。
三、Skill vs 传统概念:根本差异
很多人容易把 Skill 与传统编程中的"函数""插件""API"混为一谈,本质上是截然不同的抽象层次:
传统函数 / 插件
- 程序员硬编码调用逻辑
- 需要精确知道函数签名
- 无自描述能力
- 输入错误直接报错崩溃
- 不关心调用上下文
- 无法被"推理匹配"
AI Skill
- Agent 自主推理并选择调用
- 通过语义描述匹配能力
- 自带元数据和能力声明
- 参数不完整可自行推断
- 受 Agent 上下文约束
- 支持 LLM 理解与自动匹配
| 维度 | 传统函数/API | Skill |
| 调用方式 | 程序员显式调用 | Agent 自主推理调用 |
| 发现机制 | API 文档/代码提示 | 语义匹配 + 元数据注册 |
| 参数处理 | 严格类型匹配 | LLM 智能填充与推断 |
| 错误处理 | 异常抛出 | 结构化错误 + 重试/修正 |
| 组合方式 | 手动编排 | Agent 动态编排链式组合 |
| 生命周期 | 编译时绑定 | 运行时动态加载/卸载 |
| 安全模型 | 代码级权限 | 声明式权限 + 沙箱隔离 |
一句话总结:Skill 是为 LLM/Agent 设计的原生能力接口,而非为人类程序员设计的 API。
四、Skill 的内部解剖
一个标准的 Skill 由声明层、执行层、安全层三层构成。每一层承担不同的职责:
声明层:Skill 的"名片"
声明层是 Skill 最关键的部分——它让 Agent 在不阅读源代码的情况下理解 Skill 的用途。这层包含:
// Skill 声明层 —— 标准化元数据
{
"name": "web_search",
"version": "1.2.0",
"description": "在互联网上搜索指定关键词,返回相关网页摘要列表",
"input_schema": {
"query": { "type": "string", "description": "搜索关键词" },
"max_results": { "type": "integer", "default": 5, "description": "最大返回条数" }
},
"permissions": ["network:outbound"],
"tags": ["search", "web", "information"],
"trigger_keywords": ["搜索", "查找", "找一下"]
}
执行层:Skill 的"身体"
执行层是 Skill 真正干活的地方。它接受声明层定义的参数,执行实际逻辑,返回结构化结果。
// Skill 执行层 —— 核心逻辑实现
class WebSearchSkill implements Skill {
async execute(input: SearchInput): SkillResult {
// 1. 参数校验
this.validate(input);
// 2. 权限检查
await this.checkPermission('network:outbound');
// 3. 执行搜索
const results = await this.searchAPI.query(input.query, input.max_results);
// 4. 返回结构化结果
return { status: 'success', data: results, metadata: {total: results.length} };
}
}
五、Skill 的完整生命周期
一个 Skill 从诞生到被 Agent 使用,经历以下完整生命周期:
注册 Register
Skill 向 Agent 系统注册,提交声明层元数据,包括名称、描述、参数 Schema、权限声明等。Agent 系统将其纳入可发现的能力列表。
发现 Discover
Agent 根据当前任务需求,通过语义匹配从注册表中找到最合适的 Skill。这一步是自动的,无需人工指定。
匹配 Match
Agent 验证 Skill 的能力签名是否符合当前子任务的参数要求,确认 Skill 能接受所需的输入类型。
调用 Invoke
Agent 根据 Skill 的输入 Schema 填充参数,调用 Skill 并等待执行结果。调用在安全沙箱中进行。
反馈 Feedback
Skill 返回结构化结果(成功/失败 + 数据 + 元信息),Agent 评估产出并决定下一步行动。
卸载 Unload
任务完成后 Skill 可被卸载释放资源,或保留待下次使用。支持热插拔的 Skill 系统可随时增减能力。
六、Skill 的五大分类
按照功能和用途,Skill 可以划分为以下五大类:
信息获取类
搜索、爬取、读取文档、查询数据库、调用 API 获取数据
内容生成类
写代码、写文档、翻译、摘要、生成图片、图表渲染
操作执行类
执行命令、发送邮件、操作文件系统、管理进程、部署服务
决策分析类
数据分析、风险评估、代码审查、合规检查、策略推荐
交互协作类
任务委托给子 Agent、人机协同确认、跨系统消息通信
七、Skill 与 Agent 如何协作工作
这是理解 Skill 价值最关键的部分。Skill 与 Agent 的协作不是简单的"调用-返回",而是一个上下闭环的智能协作过程。
这个协作过程可以浓缩为经典的ReAct 循环增强版:
// Agent 与 Skill 协作的核心循环
async function agentLoop(goal:
string, skills:
Skill[]) {
let memory = [];
while (!
isComplete(goal, memory)) {
// Step 1: Think —— Agent 推理下一步
const thought =
await llm.
reason(goal, memory);
// Step 2: Match —— 语义匹配最佳 Skill
const bestSkill =
await skillRegistry.
match(thought.intent, skills);
// Step 3: Act —— 调用 Skill 执行
const result =
await bestSkill.
execute(thought.params);
// Step 4: Observe —— 观察结果并写入记忆
memory.
push({ thought, skill:
bestSkill.name, result });
// Step 5: Reflect —— 反思结果决定下一步
if (result.status ===
'error') {
await handleError(result);
// 可能换一个 Skill 重试
}
}
return memory;
}
核心机制:Agent 决定"做什么" → 规划器决定"怎么做" → Skill 负责"具体做" → 反馈回 Agent 形成闭环
实际 Skill 案例示意
🌐 搜索 Skill(WebSearchSkill)
// 声明层:告诉 Agent 这个 Skill 的能力
{
"name": "web_search",
"description": "在互联网上搜索最新信息。当需要查找新闻、技术文档、实时数据时使用。",
"input_schema": {
"query": { "type": "string", "description": "搜索关键词或问题" },
"max_results": { "type": "integer", "default": 5 }
},
"output_schema": { "type": "array", "items": { "title": "string", "url": "string", "summary": "string" } }
}
// 执行层:实际搜索逻辑
async execute({ query, max_results }) {
const results = await searchEngine.search(query, { count: max_results });
return {
"status": "success",
"data": results.map(r => ({ "title": r.title, "url": r.url, "summary": r.snippet }))
};
}
// Agent 调用示例:用户问"2026年AI趋势"
// Agent → "我需要搜索最新的AI趋势信息"
// 匹配 → web_search Skill
// 执行 → web_search.execute({ query: "2026年AI趋势", max_results: 5 })
// 返回 → [{ title: "...", url: "...", summary: "..." }, ...]
📝 写代码 Skill(CodeWriterSkill)
// 声明层
{
"name":
"write_code",
"description":
"创建或修改代码文件。支持多种编程语言,自动处理语法高亮和格式化。",
"input_schema": {
"file_path": {
"type":
"string",
"description":
"目标文件路径" },
"content": {
"type":
"string",
"description":
"代码内容" },
"append": {
"type":
"boolean",
"default":
false,
"description":
"是否追加内容" }
},
"permissions": [
"file:write"]
}
// 执行层
async execute({ file_path, content, append }) {
if (append) {
await fs.
appendFile(file_path, content);
}
else {
await fs.
writeFile(file_path, content);
}
return {
"status":
"success",
"data": {
"file_path": file_path } };
}
// Agent 调用示例:用户要求"写一个Python爬虫"
// Agent → "我需要创建一个Python爬虫文件"
// 匹配 → write_code Skill
// 执行 → write_code.execute({
// file_path: "./spider.py",
// content: "import requests\nfrom bs4 import BeautifulSoup\n..."
// })
🔧 Shell Skill(ShellExecutorSkill)
// 声明层
{
"name":
"execute_shell",
"description":
"在系统上执行shell命令。支持Linux/macOS命令行操作,包括文件操作、进程管理等。",
"input_schema": {
"command": {
"type":
"string",
"description":
"要执行的shell命令" },
"cwd": {
"type":
"string",
"description":
"工作目录" }
},
"permissions": [
"system:execute"],
"timeout":
30
}
// 执行层
async execute({ command, cwd }) {
const { stdout, stderr, exitCode } =
await exec(command, { cwd, timeout:
30000 });
if (exitCode !==
0) {
return {
"status":
"error",
"error": stderr };
}
return {
"status":
"success",
"data": stdout };
}
// Agent 调用示例:用户要求"检查当前目录文件"
// Agent → "我需要查看当前目录结构"
// 匹配 → execute_shell Skill
// 执行 → execute_shell.execute({ command: "ls -la", cwd: "./" })
// 返回 → { status: "success", data: "total 48\n-rw-r--r-- 1 user staff 1024 May 31 10:00 README.md\n..." }
实践要点:
这三个 Skill 是最基础也是最常用的组合。搜索 Skill 获取信息,写代码 Skill 创建文件,Shell Skill 执行操作。
Agent 可以将它们组合完成复杂任务,例如:"搜索 Python 爬虫最佳实践 → 写一个爬虫脚本 → 运行测试"。
八、Skill 的生态与协议
随着 AI Agent 的快速发展,Skill 的定义、发现和调用正在被标准化:
MCP 协议
Model Context Protocol,Anthropic 推出的开放标准。定义了 Skill/工具的统一注册、发现和调用接口,类似于 AI 的"USB-C 接口"。
Plugin 市场
类似 ChatGPT Plugins 的 Skill 商店。开发者发布 Skill,用户/Agent 一键安装,形成繁荣的能力生态。
Function Calling
LLM 原生的工具调用能力。模型直接输出结构化 JSON 来指定调用哪个 Skill,是最底层、最通用的 Skill 调用方式。
A2A 协议
Agent-to-Agent Protocol。Google 推出的 Agent 间通信标准,一个 Agent 可以将另一个 Agent 的 Skill 作为自己的能力。
九、设计一个优秀 Skill 的实践指南
一个好的 Skill 不只是"能跑",更需要让 Agent 容易理解、安全使用、高效调用:
描述要面向 LLM
写描述时想象"一个 AI 能理解这个 Skill 做什么吗",而非"程序员能看懂 API 文档吗"。使用自然语言,明确场景和限制。
单一职责原则
一个 Skill 只做一件事,且把它做好。搜索 Skill 不顺便发邮件,代码执行 Skill 不修改配置。粒度越细,组合越灵活。
安全第一
永远假设输入不可信。做参数消毒、权限校验、超时限制、速率控制。Skill 的执行权限应该是最小必要权限。
结构化输出
返回结果必须有统一格式。成功/失败有明确的 status 字段,错误信息要包含可操作的提示,让 Agent 知道如何修正。
反例 vs 正例
// 差的设计:函数签名式描述,LLM 难以理解
{
"name": "f1",
"desc": "Search the web with query params",
"input": { "q": "string", "n": "num" }
}
// 好的设计:面向 LLM 的自然语言描述 + 清晰 Schema
{
"name": "web_search",
"description": "在互联网上搜索信息。当你需要查找最新资料、核实事实、获取实时数据时使用。不适合搜索本地文件。",
"input_schema": {
"query": { "type": "string", "description": "希望搜索的关键词或问题,例如:'2026年AI趋势'" },
"max_results": { "type": "integer", "description": "返回结果数量,范围1-20,默认5。数量越多耗时越长" }
}
}
十、典型应用场景
AI 编程助手
Skill 集合包括:代码搜索、文件读写、命令执行、测试运行、Git 操作。Agent 根据任务上下文自动编排这些 Skill 完成编程任务。
数据分析 Agent
SQL 查询 Skill + 图表生成 Skill + 报告撰写 Skill。用户说"分析本月销售趋势",Agent 自动串联这三个 Skill。
智能办公助手
邮件 Skill + 日历 Skill + 文档 Skill + 审批 Skill。Agent 帮用户自动处理日常办公任务流,如"帮我约明天下午的会议"。
安全运维 Agent
日志分析 Skill + 威胁检测 Skill + 告警 Skill。24小时不间断监控,发现异常自动响应并生成处置报告。
十一、关键要点回顾
本质定义
AI Agent 系统中的最小可执行能力单元,可插拔、标准化的功能模块
三层架构
声明层(描述)+ 执行层(逻辑)+ 安全层(防护)
与 Agent 关系
Agent 是"大脑"决策层,Skill 是"手脚"执行层,通过注册发现机制协作
核心价值
将 Agent 的能力体系模块化、标准化,实现真正的可扩展智能系统
执行范式
Think → Match → Act via Skill → Observe → Reflect → 循环
生态协议
MCP / Function Calling / Plugin Market / A2A 等多协议共同驱动标准化
如果没有 Skill,Agent 只是一个"会思考的嘴炮";
有了 Skill,Agent 才成为"能办事的数字员工"。
Skill 是 Agent 从"认知智能"走向"行动智能"的桥梁。