摘要
Anthropic 在《Lessons from building Claude Code: how we use Skills》里分享了一个很重要的实践信号:
Skill 正在成为 Claude Code 最重要的扩展点之一。
它不是一段更长的提示词,也不是一个 Markdown 文件,而是一个 Agent 可以主动发现、读取、执行和组合的能力包。
如果说 Prompt 解决的是“这一次怎么说清楚”,那么 Skill 解决的是:
团队反复遇到的这类任务,以后应该怎样稳定完成。
Skill 的价值不是让上下文更长,而是让团队经验变成可调用、可验证、可迭代的能力。
这篇 Playbook 不是对原文逐字翻译,而是把 Anthropic 的经验转成 ReelOS.ai 更适合使用的中文实操框架。
01. 先重新定义 Skill
很多团队第一次接触 Skill,会把它理解成:
一个专门给 Agent 看的说明文档。
这个理解还不够。
更准确地说,Skill 是一个小型能力目录,里面可以包含:
- 触发说明
SKILL.md- 参考文档
- 示例代码
- 脚本
- 模板
- 配置
- 资产文件
- 历史记录
- Hooks
把 Skill 当成一个文件夹,而不是一段提示词。文件系统本身就是 Context Engineering。
一个好的 Skill,会让 Agent 在遇到某类任务时知道:
- 什么时候应该调用它
- 先读哪些文件
- 用哪些脚本
- 哪些坑不能踩
- 怎么验证结果
- 什么情况需要问人
- 哪些动作必须加保护
所以 Skill 的本质不是“知识总结”,而是:
把团队知道但模型默认不知道的经验,封装成 Agent 可执行的操作接口。
02. 什么时候值得写 Skill?
不要为了写 Skill 而写 Skill。
一个任务值得做成 Skill,通常满足至少一个条件:
- 团队经常重复做
- Agent 经常在这里犯错
- 任务依赖内部库、CLI、API、数据表或监控系统
- 有固定 SOP,但 SOP 没有进入 Agent 上下文
- 输出质量必须验证,不能只靠模型自信
- 操作有风险,需要 Guardrails
- 任务会跨多个工具、文件和系统
- 结果需要长期沉淀,下一次执行要参考历史
高价值 Skill 往往来自团队的真实摩擦,而不是自上而下规划出来的宏大目录。
一句话判断:
如果一个老员工知道怎么做,但 Agent 每次都要重新猜,就值得写成 Skill。
03. Anthropic 总结的 9 类 Skill
Anthropic 把内部大量 Skill 归纳成 9 类。这个分类非常适合团队做 Skill Library 的第一版盘点。
不是所有 Skill 都同等重要。对生产质量影响最大的,通常是 Verification、Runbook、Deployment 和 Code Review。
1. Library / API Reference
用于告诉 Agent 内部库、CLI、SDK、API 应该怎么用。
适合沉淀:
- 内部库的正确调用方式
- 参数和返回值约定
- 常见误用
- 代码片段
- 废弃接口
- 环境和网络限制
如果没有这类 Skill,Agent 很容易凭常识猜内部系统,最后写出“看起来合理、实际上跑不通”的代码。
2. Product Verification
这是最该优先建设的 Skill 类型。
它解决的问题不是“能不能生成代码”,而是:
生成之后怎么证明它真的能工作。
适合沉淀:
- Playwright 验证
- 注册/登录/支付流程测试
- CLI 交互测试
- 状态断言
- 录屏或截图
- Smoke Test
- 失败时的诊断路径
对 AI Coding 来说,Verification Skill 是从 Demo 走向生产的分水岭。
3. Data Fetching / Analysis
用于把数据表、指标口径、Dashboard、日志系统、监控系统交给 Agent。
适合场景:
- 查漏斗
- 看留存
- 分析异常
- 对比 Cohort
- 找 Trace / Request ID
- 读取 Grafana / Datadog / 内部 BI
这类 Skill 会让 Agent 从“回答问题”升级成“调查问题”。
4. Business Process / Team Automation
用于封装团队重复流程。
比如:
- 站会更新
- 周报
- Ticket 创建
- Slack 通知
- 发布总结
- PR 活动汇总
如果这类 Skill 还能保存上一次执行结果,它就不只是自动化工具,而是一个轻量团队记忆。
5. Code Scaffolding / Templates
用于生成符合团队规范的代码骨架。
比如:
- 新建服务
- 新建 Workflow
- 新建 Migration
- 新建内部 App
- 生成带日志、鉴权、部署配置的模板
它适合那些“靠脚手架不够、还需要自然语言判断”的场景。
6. Code Quality / Review
用于把团队代码质量标准交给 Agent。
可以包括:
- Review 清单
- 测试策略
- 风格约束
- 安全检查
- 子 Agent 复审
- 自动修复循环
高质量 Review Skill 不只是“挑问题”,而是让 Agent 知道什么是这个团队里的“好代码”。
7. CI/CD / Deployment
用于帮助 Agent 看 CI、修 CI、部署、回滚和发布。
适合沉淀:
- 失败日志怎么读
- flaky test 怎么处理
- 哪些服务怎么部署
- 灰度发布流程
- 错误率对比
- 自动回滚规则
- 生产发布禁忌
这类 Skill 尤其需要 Guardrails,因为它可能触达生产系统。
8. Runbooks
Runbook Skill 从一个症状出发,带 Agent 走完整调查路径。
比如:
- 某服务延迟升高
- 某条 Slack 报警
- 某个错误码激增
- 某个请求 ID 失败
- 某个用户状态异常
一个好的 Runbook Skill 应该产出结构化报告,而不是只输出一堆日志。
9. Infrastructure Operations
用于处理基础设施维护和高风险操作。
比如:
- 清理孤儿资源
- 成本异常调查
- 依赖升级
- 权限审批
- 存储/网络/集群问题
这类 Skill 的重点是:流程、确认、审计和保护,而不是让 Agent “更大胆”。
04. 写 Skill 的关键不是写更多,而是写更有信号
Anthropic 的一个重要提醒是:不要在 Skill 里写模型本来就知道的东西。
Claude 已经会写代码,也能读代码库。低价值 Skill 通常只是重复常识:
请写清晰代码。
请注意边界情况。
请运行测试。
这类内容会增加上下文负担,但不会增加能力。
高价值 Skill 应该写的是模型默认不知道的东西:
- 内部系统的特殊规则
- 团队真实踩过的坑
- 业务口径
- 环境差异
- 不符合直觉的字段
- 验证结果的真实来源
- 什么时候不要自动行动
Gotchas 是 Skill 里信号密度最高的部分。它应该从真实失败中持续长出来。
最值得专门维护的是 Gotchas。
例如:
- 某张表是 append-only,不能按最新创建时间取
- API Gateway 叫
request_id,Billing 里叫trace_id,但它们其实是同一个值 - Staging 返回 200 不代表 webhook 真处理成功,真实状态要看事件表
- 某个 CLI 默认连生产环境,必须显式指定 staging
- 某个测试必须在带 TTY 的终端里跑
这些才是团队经验。
05. 用渐进式披露管理上下文
Skill 不应该把所有内容塞进 SKILL.md。
更好的方式是:
SKILL.md
说明什么时候用这个 Skill
告诉 Agent 任务流程
指向必要参考文件
references/
API 细节
表结构
口径说明
常见错误
scripts/
可执行脚本
验证工具
查询工具
assets/
模板
示例输出
报告格式
config.json
团队或用户配置
让 Agent 在需要时再读细节,而不是一开始就吞下所有上下文。
SKILL.md 的任务不是承载全部知识,而是做路由:
- 任务是什么
- 什么时候触发
- 先读什么
- 哪些情况读哪个文件
- 用哪个脚本验证
- 输出格式是什么
这样 Skill 才能保持清晰,也不会把每次会话都拖得很重。
06. 把确定性部分交给脚本
Skill 里最有价值的资产之一是脚本。
原因很简单:
模型适合判断、组合和解释;脚本适合执行、查询和验证。
如果每次都让 Agent 重新写数据库查询、重新拼 API 请求、重新搭测试流程,它就会在低价值步骤上消耗上下文,还会增加错误率。
更好的做法是把稳定动作做成脚本:
- 拉取数据
- 跑验证
- 生成报告
- 检查状态
- 格式化输出
- 查询日志
- 对比指标
- 驱动浏览器
代码是给 Agent 最强的工具之一。脚本越稳定,Agent 越能把精力放在决策上。
一个成熟 Skill 的目标不是让 Agent “每次都更聪明”,而是让它少做不稳定的事。
07. 描述字段要写给模型,不是写给人
很多团队会把 Skill 描述写成营销文案:
帮助团队提升工程效率的综合性工具。
这对模型没什么用。
因为 Claude Code 在启动时会扫描可用 Skill 的描述,用它来判断“当前请求是否应该触发这个 Skill”。
所以描述字段应该写成触发条件:
Use when debugging checkout payment failures, Stripe webhook status, invoice mismatch, or payment_events inconsistencies.
也就是说,Skill 描述不是摘要,而是路由规则。
一个好描述应该包含:
- 适用任务
- 触发词
- 输入类型
- 不适用边界
- 关键系统名
08. Skill 要能分发、组合和度量
当 Skill 变多以后,真正的问题会从“怎么写”变成“怎么治理”。
小团队可以把 Skill 直接放在仓库里,例如 .claude/skills。
这样最简单,也最贴近项目上下文。
但随着组织变大,Skill 会遇到三个问题:
- 每个仓库都放 Skill,会增加上下文负担
- 很多 Skill 只对部分团队有用
- 好 Skill 很难被发现和复用
这时就需要内部 Skill Marketplace 或 Plugin 机制。
Anthropic 的经验是,不一定要一开始就建立中央审核团队。更自然的方式是:
- 先让个人或团队在 sandbox 里分享
- 通过 Slack、GitHub、内部论坛获得使用反馈
- 有真实 traction 后再进入正式市场
- 让使用者自行安装需要的 Skill
- 用日志观察哪些 Skill 触发过少或过多
Skill Library 不该一次性设计完,而应该像产品一样被使用、度量和迭代。
组合也很重要。
例如:
- CSV 生成 Skill 可以调用文件上传 Skill
- CI 修复 Skill 可以调用代码审查 Skill
- Runbook Skill 可以调用数据分析 Skill
- 发布 Skill 可以调用 smoke test Skill
即使平台没有完整依赖管理,也可以在 Skill 说明里明确引用其他 Skill,让模型在已安装时自动组合。
09. ReelOS.ai 建议的 Skill 写作模板
可以从这个模板开始:
# Skill Name
## When to use
- 当前请求满足什么条件时使用
- 触发词是什么
- 不适用什么情况
## Goal
- 这个 Skill 要稳定完成什么结果
## Inputs
- 需要用户或环境提供什么信息
## Workflow
1. 先确认上下文
2. 读取必要 references
3. 执行 scripts
4. 生成结果
5. 验证结果
6. 输出报告
## Gotchas
- 常见失败
- 内部系统特殊规则
- 不能靠直觉猜的地方
## Verification
- 怎样证明完成
- 哪些状态必须检查
- 哪些测试必须跑
## Guardrails
- 哪些动作需要确认
- 哪些命令禁止自动执行
- 哪些环境不能触碰
## Output
- 最终交付物格式
这个模板不追求复杂,而是保证一个 Skill 至少回答四个问题:
什么时候用? 怎么做? 怎么避免坑? 怎么证明完成?
10. 最小可行 Skill Library
如果一个团队刚开始建设 Skill Library,不建议一口气做几十个。
更好的第一阶段是 5 个:
- Code Review Skill:把团队代码审查标准沉淀下来
- Product Verification Skill:让 Agent 做完以后必须验证
- Runbook Skill:让 Agent 会调查线上问题
- Internal API Skill:让 Agent 正确使用内部库和 CLI
- Deployment Skill:让 Agent 理解发布、回滚和风险边界
这 5 个 Skill 能覆盖从开发、验证、排障到上线的核心路径。
等这些 Skill 被真实使用、修过几轮 Gotchas,再扩展到数据分析、业务自动化、脚手架和基础设施。
最终判断
Skill 的真正价值,不是让 Agent 读到更多文字,而是让团队经验进入 Agent 的执行回路。
它把分散在老员工脑子里、Slack 里、Wiki 里、脚本里、PR 评论里和事故复盘里的知识,压缩成 Agent 可以主动调用的能力模块。
所以,Agent 时代的团队知识管理会从:
人读文档,再手动执行
变成:
Agent 调用 Skill,按团队方式执行,并持续把失败沉淀回 Skill
一句话:
Skill 不是提示词资产,而是团队经验的运行时接口。
参考来源
本文基于 Anthropic Claude Code 团队文章整理、翻译与再结构化: