从Prompt到Agent Skills:Anthropic如何定义大模型应用的终极抽象?
从Prompt到Agent Skills:Anthropic如何定义大模型应用的终极抽象?
2025年10月,Anthropic发布了Agent Skills——一个将AI从通用助手转变为领域专家的新范式。本文深入剖析Agent Skills的设计哲学、技术架构与实践生态,揭示其如何与MCP协同,成为大模型应用的终极抽象。
引言:当“提示词工程”走到尽头
如果你用过Claude、ChatGPT或任何大模型,你一定经历过这样的循环:为了让AI完成一个特定任务,你需要反复调试提示词,把同样的上下文一遍又一遍地塞进对话。每遇到一个新场景,就要重新“培训”一次AI。
Anthropic在2025年10月推出的Agent Skills,试图终结这个循环。Skills将AI从“通用对话者”转变为“领域专家”,通过可复用的知识包,让AI掌握特定的工作流程、企业规范和专业技能。
一、什么是Agent Skills?——一个文件夹就是一个能力
1.1 核心定义
Agent Skills是Anthropic定义的一种模块化能力封装标准。每个Skill是一个包含SKILL.md文件的文件夹,外加可选的脚本、模板和参考资料。
---
name: roll-dice
description: Roll dice using a random number generator. Use when asked to roll a die (d6, d20, etc.), roll dice, or generate a random dice roll.
---
To roll a die, use the following command that generates a random number from 1
to the given number of sides:
```bash
echo $((RANDOM % <sides> + 1))
Replace <sides> with the number of sides on the die (e.g., 6 for a standard
die, 20 for a d20).
这个不到20行的Markdown文件,就是一个完整的Skill——它教会AI如何执行“掷骰子”这个特定任务。
### 1.2 三个层级,渐进式加载
Skills的核心设计哲学是**渐进式披露(Progressive Disclosure)**:信息分阶段加载,而不是一次性塞入上下文窗口。
| 层级 | 内容 | 加载时机 | Token成本 |
|------|------|----------|-----------|
| **第1层:元数据** | YAML frontmatter中的name和description | 启动时始终加载 | 约100 tokens/个 |
| **第2层:指令** | SKILL.md的主体内容 | 任务匹配时加载 | <5k tokens |
| **第3层:资源** | 脚本、模板、参考资料 | 按需加载 | 几乎无限制 |
这种设计意味着你可以安装几十个Skills,而Claude只会在需要时才加载具体指令。未触发的Skill不会消耗任何上下文token。
## 二、Skills vs MCP:一场被误解的“替代战争”
很多人问:Skills会取代MCP吗?答案是否定的。两者解决的是完全不同的问题。
### 2.1 核心区别
| 维度 | Agent Skills | MCP |
|------|-------------|-----|
| **解决什么问题** | “怎么做才对” | “能不能做” |
| **本质** | 声明式配置标准 | 通信协议标准 |
| **内容** | 业务规则、流程、规范 | 工具、数据源、API |
| **运行方式** | Markdown文件,零基础设施 | 需要部署运行的服务器 |
| **维护者** | 业务专家、产品经理 | 工程师、SRE |
| **变更频率** | 高(业务规则常变) | 低(接口相对稳定) |
Anthropic自己的判断标准很清晰:**一个Skill解释如何执行一个流程;MCP是Agent需要访问数据库或文件时调用的工具**。
### 2.2 两者的协同模式
一个经典的协同场景:Skill告诉Agent“部署之前需要检查数据库迁移状态、监控错误率、校验API健康度”,然后Skill通过MCP工具调用`database_mcp.get_migration_status()`等真正执行这些检查。
**Skill提供“知识”(该怎么做),MCP提供“能力”(怎么做到)。**
## 三、如何构建一个Agent Skill?
### 3.1 标准目录结构
pdf-skill/
├── SKILL.md # 核心指令文件(必需)
├── FORMS.md # 表单填写指南
├── REFERENCE.md # 详细API参考
└── scripts/
└── fill_form.py # 可执行脚本
`SKILL.md`包含YAML frontmatter和Markdown指令,是Skill的入口文件。
### 3.2 代码审查Skill实战
```markdown
---
name: code_review_standards
description: 应用团队的代码审查规范。在审查合并请求或分析代码质量时使用。
---
# 代码审查规范
## 审查清单
- **安全性**:检查SQL注入、XSS攻击、权限绕过漏洞
- **性能**:标记N+1查询、缺失索引、内存泄漏问题
- **编码风格**:严格遵循团队规范
## 示例
### 规范写法:参数化查询
```python
cursor.execute("SELECT * FROM users WHERE id = ?", (user_id,))
不规范写法:字符串拼接
cursor.execute(f"SELECT * FROM users WHERE id = {user_id}")
这个Skill让Claude在代码审查时自动加载团队的编码规范,提供一致的审查标准。
### 3.3 在Python中使用Agent Skills
使用`agent-skills`库可以编程化管理Skills:
```python
from agent_skills import SkillDirectory
# 初始化技能目录
skills = SkillDirectory("./workspace/skills")
# 创建技能
skills.create(
name="analyze_csv",
code='''
async def analyze_csv(file_path: str) -> dict:
from generated.servers.filesystem import read_file
content = await read_file({"path": file_path})
lines = content.split("\\n")
headers = lines[0].split(",") if lines else []
return {
"rows": len(lines) - 1,
"columns": len(headers),
"headers": headers,
}
''',
description="Analyze a CSV file and return statistics",
)
# 搜索并执行技能
matches = skills.search("data analysis")
for skill in matches:
print(f"Found: {skill.name}")
四、Skills的技术生态
4.1 主流框架的Skills支持
| 平台/框架 | 支持方式 | 状态 |
|---|---|---|
| Claude API | 通过/v1/skills端点管理,需配合代码执行工具 | 正式发布 |
| Claude Code | 自动发现.claude/skills/目录下的Skills | 正式发布 |
| claude.ai | 通过Settings > Features上传zip包 | Pro/Max/Team/Enterprise可用 |
| OpenAI ChatGPT | 已采用相同格式 | 已支持 |
| OpenAI Codex CLI | 已采用相同格式 | 已支持 |
| LangChain | deepagents-CLI已集成Skills支持 | 已支持 |
| VS Code (Copilot) | 通过.agents/skills/目录自动发现 | 已支持 |
4.2 LangChain + Skills集成
LangChain已经在deepagents-CLI中集成了Skills支持:
# 创建Skills目录并复制示例技能
mkdir -p ~/.deepagents/agent/skills
cp -r examples/skills/web-research ~/.deepagents/agent/skills/
# 列出可用Skills
deepagents skills list
# Agent会自动发现并加载匹配的Skills
4.3 skillkit:轻量级Skills实现
skillkit是一个Python库,将Anthropic的Agent Skills功能带给任何Python Agent:
from skillkit import SkillManager
# 创建管理器,默认扫描./.claude/skills/
manager = SkillManager()
# 发现并列出Skills
manager.discover()
for skill in manager.list_skills():
print(f"{skill.name}: {skill.description}")
# 调用技能
result = manager.invoke_skill("code-reviewer", "Review function calculate_total()")
五、与MCP的协同:完整架构
在实践中,Skills和MCP构成两层互补的架构:
┌─────────────────────────────────────────────────────────────┐
│ Agent Skills层 │
│ 编码领域知识、业务流程、决策逻辑 │
│ - 代码审查规范 │
│ - 部署验证流程 │
│ - 文档处理标准 │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ MCP服务层 │
│ 提供可执行的能力 │
│ - 数据库查询工具 │
│ - GitHub API工具 │
│ - 监控系统工具 │
└─────────────────────────────────────────────────────────────┘
六、总结:从“提示词工程”到“知识工程”
Agent Skills代表了大模型应用开发的一次范式转变:
| 阶段 | 核心活动 | 特点 |
|---|---|---|
| Prompt Engineering | 调整提示词 | 一次性、不可复用、不稳定 |
| Agent Skills | 打包专业知识 | 可复用、标准化、版本可控 |
Skills将AI应用开发从“调试提示词”升级为“构建知识包”——这是一个更接近软件工程本质的抽象层次。当一个Skill可以像代码一样被版本控制、被审查、被复用,AI应用的可维护性和可靠性就进入了新的阶段。
Anthropic将Agent Skills设计为可移植的开放标准。不论你使用的是Claude、ChatGPT还是其他兼容的Agent,一个Skill都应该能正常工作。这种跨平台的互操作性,让Skills有望成为大模型应用领域的“通用知识格式”,从根本上改变我们构建AI应用的方式。
更多推荐

所有评论(0)