
你可能听过很多关于Agent Skill的概念。
有人说它是"AI工具的插件系统"。 有人说它是"跨平台的技能库"。 有人说它是"Markdown写的指令文件"。
这些都对,但都不完整。
如果我要用一句话定义Agent Skill,我会说:
Agent Skill是一种将人类知识编码成AI可执行指令的系统。
但这句话太抽象了。今天,我想从最基础的层面,拆开Agent Skill的每一个部分,让你真正理解它在做什么。
想象你有一个助手(Claude)。
你每次都要告诉它同样的事情:
"我的项目用PostgreSQL,不要建议MongoDB" "我们所有图表都用D3.js,不要用Chart.js" "部署前一定要运行pulumi refresh"
重复,重复,重复。
现在,Agent Skill说:
我把这些知识写在一个文件里,Claude会自动遵守。
这就是Agent Skill的核心价值。
如果你打开你的电脑,Agent Skill就是这样的结构:
~/.claude/skills/ # 全局Skill目录
├── my-skill-1/
│ ├── SKILL.md # ← 核心文件
│ ├── references/
│ │ └── template.md
│ └── README.md
├── my-skill-2/
└── my-skill-3/
.claude/skills/ # 项目级Skill目录
└── project-specific-skill/
└── SKILL.md
就这么简单。
没有数据库。没有后端服务。没有编译过程。
一个文件夹,里面放着Markdown文件。
这是Agent Skill在物理层面的样子。
现在打开其中一个SKILL.md文件,你会看到两部分内容:
---
name:project-memory
description:Setupandmaintainastructuredprojectmemorysystem
indocs/project_notes/thattracksbugswithsolutions,
architecturaldecisions,keyprojectfacts,andwork
history.Usethisskillwhenaskedto"set up project memory",
"track our decisions","log a bug fix","update project memory",
or"initialize memory system".
---
这部分很关键。它回答了两个问题:
这个description字段,是整个Skill的生命线。
## When to Use This Skill
Invoke this skill when:
- Starting a new project that will accumulate knowledge
- The project already has recurring bugs
- The user asks to "set up project memory"
- Encountering a problem that feels familiar
## Core Capabilities
1. Create memory infrastructure in docs/project_notes/
2. Configure CLAUDE.md with memory-aware protocols
3. Search and update memory files
4. Maintain project documentation
## How Claude Should Use This Skill
When invoked:
1. Create folder structure
2. Add protocols to CLAUDE.md
3. Set up templates for users
[更多指令...]
这部分用自然语言告诉Claude:
"我能做什么"(Core Capabilities) "我应该怎么做"(How to Use) "什么时候最有用"(When to Use)
现在到了最重要的部分:Agent Skill的真正目的是什么?
让我用一个类比:
传统方式:
你告诉Claude:
"我们用D3.js"
Claude记住吗?
不,每次新conversation都忘了
→ 你需要反复说同一句话
Agent Skill方式:
你创建一个Skill:
"我们所有项目都用D3.js,不用其他"
Skill被写入文件:
docs/project_notes/decisions.md
Claude在CLAUDE.md中看到协议:
"Before suggesting chart libraries, check decisions.md"
→ Claude自动检查,不需要反复说
区别在哪里?
从"每次重复输入相同信息"变成了"一次配置,永久生效"。
另一个关键理解:
Agent Skill不是临时的指令。
它是永久的知识记录。
比如bugs.md中的条目:
### 2024-10-20 - Pulumi State Drift
**Issue**: Deploy failed with "update failed"
**Root Cause**: State file out of sync
**Solution**: Run `pulumi refresh --yes`
**Prevention**: Add to CI/CD pipeline
这个条目,六个月后仍然有效。
一年后仍然有效。
五年后仍然有效。
它是项目的记忆,而不是临时的便签。
这是最深的层面,很多人都忽视了。
当Claude遇到Agent Skill时,发生了什么?
Claude启动
↓
扫描 ~/.claude/skills/ 和 .claude/skills/
↓
找到所有的SKILL.md文件
↓
读取所有文件的frontmatter部分
(name + description,不是完整内容)
↓
建立索引表
"project-memory" → {...}
"code-reviewer" → {...}
"type-generator" → {...}
...
↓
完成(用时<100ms)
关键点:只读frontmatter,不加载完整内容。
为什么?性能。
用户说:"我想记录项目的决策"
↓
Claude分析这句话的语义含义
"决策" ≈ "decisions"
↓
搜索索引表中所有Skill的description
↓
发现:"project-memory"的description包含"decisions"
匹配度:92%(很高!)
↓
找到匹配的Skill
关键点:这是语义匹配,不是关键词匹配。
意思是:
匹配成功!
↓
从磁盘加载完整的SKILL.md
↓
Claude读markdown指令
"When to Use", "Core Capabilities", "How to Use"
↓
Claude理解了整个Skill的逻辑
↓
按照指令执行操作
创建文件夹
配置CLAUDE.md
设置模板
↓
完成并反馈结果
关键点:只有匹配成功,才会加载完整内容。
这叫Progressive Disclosure(渐进式信息披露)。
现在,让我们看Agent Skill对整个生态的影响。
传统AI工具:
每次新conversation
↓
Claude重新开始
↓
没有历史记忆
↓
状态:无状态(stateless)
有Agent Skill的AI工具:
每次新conversation
↓
Claude自动加载Skill
↓
有历史记忆和规则
↓
状态:有状态(stateful)
这是一个根本的转变。
没有Agent Skill:
Claude:"我是一个通用助手,
我对你的项目一无所知"
↓
无论你问什么,Claude都是"盲目的猜测"
有Agent Skill:
Claude:"我知道你的项目:
- 你用D3.js for charts
- 你用PostgreSQL for database
- 这是之前遇到的bug及解决方案"
↓
Claude是"知情的伙伴"
这是一个关键的设计决策。
如果用代码(比如Python):
class ProjectMemorySkill:
def activate(self):
"""激活项目记忆"""
pass
问题:
如果用JSON:
{
"capabilities": [
"create_memory_structure",
"configure_claude_md"
]
}
问题:
如果用Markdown:
## Core Capabilities
1. Create memory infrastructure
2. Configure CLAUDE.md
3. Search and update memory files
## How Claude Should Use This Skill
When invoked:
1. Read the folder structure
2. Create docs/project_notes/
3. Set up templates
优点:
选择Markdown的本质是:为了人机都友好。
Frontmatter用于:
Body用于:
这种分离叫Progressive Disclosure。
好处是:
就像一个图书馆:
经过了这么多层的拆解,我想问你一个根本的问题:
Agent Skill的真正本质是什么?
答案:它是把隐性知识显性化的系统。
隐性知识(存在于人的脑子里):
"老王知道我们为什么用PostgreSQL"
"李四记得上次怎么修这个bug"
"张三知道staging环境的配置"
问题:
- 知识分散
- 新人难以学习
- 依赖某个人
- 某人离职,知识就消失
显性知识(写在文档里):
decisions.md:记录所有架构决策
bugs.md:记录所有bug和解决方案
key_facts.md:记录所有配置
好处:
- 知识集中
- 新人能快速学习
- 不依赖个人
- 知识永久保存
Agent Skill把隐性知识转化成显性知识。
这就是它的本质。
现在让我们往前看。
当更多开发者使用Agent Skill时,会发生什么?
今天:
团队成员各用各的工具(Claude Code / Cursor / Copilot)
↓
不能共享Skill
↓
知识孤岛
明天(Agent Skill Standard普及时):
一个Skill被编写一次
↓
在14+个AI工具上都能用
↓
所有成员共享同样的知识
↓
知识真正流转
现在:
开发者 = 人类代码编写者
AI = 无状态的建议者
↓
需要重复告诉AI "我们的技术栈是什么"
未来:
开发者 = 知识架构师
(定义项目的规则和知识)
AI = 知情的执行者
(理解规则并执行)
↓
开发者一次定义规则,AI永久遵守
现在让我们对比一下,Agent Skill相比其他解决方案的优势。
Prompt工程:
每次conversation重新提供context
问题:
- 💪 用户需要每次都复制粘贴相同信息
- 👥 信息容易过期或不一致
- 🔄 无法跨用户共享
Agent Skill:
写一次,所有conversation永久使用
优势:
- ✅ 一次定义,永久有效
- ✅ 信息集中管理
- ✅ 可跨用户共享
IDE插件:
VSCode插件用JavaScript写
JetBrains插件用Kotlin写
Sublime插件用Python写
问题:
- 维护地狱(同一功能三套代码)
- 用户被工具锁定
- 学习成本高
Agent Skill:
一份SKILL.md,所有工具都能用
优势:
- ✅ 一套代码,通用所有工具
- ✅ 用户自由选择工具
- ✅ 学习成本低(只需Markdown)
配置文件:
{
"rules": [...]
}
问题:
- 机器易读,人类难读
- 无法灵活表达复杂逻辑
- GitHub diff难看
Agent Skill:
## Rules
1. Always check...
2. Never suggest...
3. When you encounter...
优势:
- ✅ 人机都易读
- ✅ 自然语言灵活表达
- ✅ GitHub diff清晰
经过九层的拆解,现在我可以给你一个完整的定义:
Agent Skill是一个结构化的知识编码系统,用Markdown编写,包含元数据和执行指令,使AI工具能够理解并遵循用户定义的规则和知识。
Agent Skill是把人类的隐性知识转化为AI可执行指令的桥梁。
Agent Skill代表了从"无状态AI助手"向"有状态知情伙伴"的进化。
Agent Skill Standard是建立通用、可互操作的AI编码工具生态的基础。
定义1告诉你Agent Skill是什么(技术层)
定义2告诉你Agent Skill为什么重要(价值层)
定义3告诉你Agent Skill如何改变工作方式(应用层)
定义4告诉你Agent Skill对整个行业的意义(生态层)
让我用一个完整的例子,把前面讲的所有层次串在一起。
物理层:
~/.claude/skills/project-memory/SKILL.md
文件层:
name: project-memory
description: Set up project memory...
---
## When to Use
## Core Capabilities
## How Claude Should Use
概念层:
把"项目决策"这个隐性知识
转化为decisions.md这个显性文件
协议层:
Claude扫描frontmatter
匹配用户意图"track decisions"
加载完整body执行指令
系统层:
从无状态变成有状态
Claude现在"记得"项目的决策
设计层:
用Markdown让人机都能理解
用frontmatter优化性能
实质层:
隐性知识:
"我们用D3.js做图表"
(存在王的脑子里)
显性知识:
decisions.md里写着:
ADR-012: Use D3.js for charts
(现在所有人都知道)
未来层:
这个Skill可以:
- 在Claude Code中用
- 在Cursor中用
- 在GitHub Copilot中用
- 在Gemini中用
- ...所有支持Agent Skill Standard的工具
知识真正跨越了工具边界
现在我想告诉你最深的洞察。
为什么Agent Skill会成为标准?
因为它解决了两个根本的问题:
传统方式:
知识 = 被锁定在某个人的脑子里
或者某个工具的生态里
结果:
- 新人难以上手
- 知识容易遗失
- 组织学习能力弱
Agent Skill解决:
知识 = 结构化地记录在通用格式里
可以在任何支持标准的工具中使用
结果:
- 知识快速传递
- 知识永久保存
- 组织学习能力强
传统方式:
用户学会了VSCode
↓
安装了10个插件
↓
被VSCode锁定
↓
即使有更好的工具也迁移困难
Agent Skill解决:
用户的知识资产 = 独立于工具
↓
可以在Claude Code、Cursor、Copilot间自由迁移
↓
工具间可以真正竞争
↓
用户获得真正的自由
这就是为什么Agent Skill会成为标准。
如果我要用最简洁的一句话说:
Agent Skill是知识的通用容器。
它允许你把任何知识、任何规则、任何决策编码一次,然后在任何支持Agent Skill Standard的工具上都能使用。
这很简单。
但同时也很强大。
因为正如你现在理解的,这背后涉及:
所有这些加在一起,就是Agent Skill。
推荐思考题:
既然Agent Skill是"知识的通用容器",你想到了什么可以编码成Skill的知识呢?
如果这篇文章让你对Agent Skill有了深层理解,请:
你有对Agent Skill还想深入探讨的角度吗?留言告诉我!