「Anthropic 内部数百个 Skills 的经验:九大类型和写好 Skill 的秘诀」封面图
· 6 分钟阅读

Anthropic 内部数百个 Skills 的经验:九大类型和写好 Skill 的秘诀

AIAgentSkillClaude Code

Anthropic 内部有数百个 Skills 在活跃使用。最近,他们的工程师 Thariq 分享了团队在实际使用中学到的经验。

一个常见误解是 Skills “只是 Markdown 文件”。实际上,最有趣的 Skills 是文件夹——包含脚本、资产、数据,Agent 可以发现、探索和操作它们。

九大 Skill 类型

在梳理了所有 Skills 后,Anthropic 发现它们聚集成几个反复出现的类别。最好的 Skill 干净地落入其中一个类别,最让人困惑的则横跨多个。

1. Library/SDK — 库和 SDK 使用指南

解释如何正确使用某个库、CLI 或 SDK。包含参考代码片段和 Claude 常犯错误的 gotchas 列表。比如你的内部计费库有哪些边界情况和陷阱,你的内部 CLI 每个子命令什么时候用。

2. Verification — 验证技能

描述如何测试或验证代码是否正常工作,通常配合 Playwright、tmux 等外部工具。

Anthropic 认为验证 Skills 极其有用,值得让工程师花一整周专门打磨。技巧包括让 Claude 录制输出视频以便回看测试过程,以及在每一步做程序化断言。

3. Data & Monitoring — 数据与监控

连接数据和监控系统,包含凭证、Dashboard ID、常见查询工作流。比如”哪些事件需要 join 才能看到注册→激活→付费的漏斗”。

4. Workflow — 工作流自动化

将重复性工作流自动化为一条命令。一个关键技巧:保存历史结果到日志文件,帮助模型在多次执行间保持一致。

5. Scaffolding — 脚手架

为代码库中特定功能生成框架样板。特别适合有自然语言需求但纯代码模板无法覆盖的场景。

6. Code Quality — 代码质量

强制执行代码质量标准。可以包含确定性脚本,也可以作为 hooks 或 GitHub Action 自动运行。最有意思的例子是 adversarial-review:生成一个全新视角的子 Agent 来批评代码,实施修复,迭代直到发现降级为吹毛求疵。

7. CI/CD — 持续集成与部署

帮助获取、推送和部署代码。比如 babysit-pr:监控 PR → 重试不稳定的 CI → 解决合并冲突 → 启用自动合并。

8. Debugging — 调试

从症状出发(Slack 线程、告警、错误签名),通过多工具调查,产出结构化报告。

9. Maintenance — 维护

执行常规维护和运维操作,包含破坏性操作的护栏。比如发现孤立资源 → 发到 Slack → 等待确认期 → 用户确认 → 级联清理。

写好 Skill 的九个秘诀

聚焦 Claude 不知道的信息

Claude 已经懂很多编码知识,有很多默认偏好。如果你的 Skill 主要是知识类的,重点写能把 Claude 推出常规思维的信息。

Anthropic 内部的 frontend-design Skill 就是一个好例子——专门避免 Inter 字体和紫色渐变等 Claude 的默认审美偏好。

Gotchas 是最高信号内容

Skill 中信号最强的部分是 Gotchas 章节。从 Claude 使用 Skill 时的常见失败点积累,随时间持续更新。

利用文件夹做渐进式披露

把详细 API 签名放到 references/api.md,把模板放到 assets/。告诉 Claude 有哪些文件,它会在合适的时机自己去读。整个文件系统就是一种上下文工程和渐进式披露。

给灵活性,不要过度具体

Skill 是可复用的,过于具体的指令会限制适用性。给 Claude 需要的信息,但让它有空间适应具体情况。这和之前分析的 YC CEO 的 plan-ceo-review Skill 的理念一致——定义姿态而非内容。

用 config.json 存储用户配置

如果 Skill 需要用户上下文(比如 Slack 频道),存到 config.json。配置不存在时让 Agent 询问用户。

Description 是触发条件,不是摘要

Claude 启动时扫描所有 Skill 的 description 来决定是否触发。所以 description 应该写清楚”什么时候应该触发这个 Skill”,而不是”这个 Skill 是什么”。

给 Skill 加记忆

在 Skill 目录中存储数据——日志、JSON、甚至 SQLite。比如 standup-post Skill 保存每次发布的历史,下次运行时 Claude 能看到什么变了。

给 Claude 代码而非指令

脚本和库让 Claude 专注于组合和决策,而非重建样板代码。

用 Hooks 做安全护栏

比如 /careful 阻止 rm -rf、DROP TABLE、force-push;/freeze 只允许编辑特定目录。按需启用,不要全局开启。

分发:从仓库到市场

小团队可以把 Skills 提交到仓库的 .claude/skills/ 目录。但随着规模扩大,每个 Skill 都会增加模型上下文,这时需要内部插件市场。

Anthropic 的做法是有机发现:先在 sandbox 文件夹试用,有了 traction 后再正式上架。没有中央团队决定哪些 Skill 上架,但需要策展机制——因为很容易创建低质量或重复的 Skill。

他们还用 PreToolUse hook 追踪 Skill 使用情况,发现热门 Skill 和触发不足的 Skill。

和之前几篇文章的关联

这篇文章和我们之前发的几篇形成了一个完整的 Agent Skills 知识体系:

  • Google 的五大设计模式定义了 Skill 的架构范式
  • YC CEO 的 plan-ceo-review 展示了顶级 Skill 的实战效果
  • Anthropic 的这篇则给出了从分类到写作到分发的完整方法论

三篇合在一起,基本覆盖了”什么是好的 Skill、怎么写、怎么用”的全部问题。

参考

  • 原文推文
  • 作者:Thariq (@trq212),Anthropic 工程师

相关文章

评论