Anthropic 官方 14 种 Skill 设计模式¶
Ch01.283 Anthropic 官方 14 种 Skill 设计模式¶
📊 Level ⭐⭐ | 13.0KB |
entities/skill-design-patterns-anthropic.md
Anthropic 官方 14 种设计模式(5 大类)¶
来源: Anthropic 官方技能编写最佳实践,原文存档 与上面 5+1 种社区模式(提炼自顶级 Skill 仓库)互补,这 14 种模式来自 Anthropic 官方的最佳实践文档,按 技能生命周期组织:从触发到执行到校准。
第一类:发现与选择(Discovery & Selection)¶
决定技能「怎么被用到」。 模式 1:激活元数据(Activation Metadata)
description不是摘要,是 Claude 做选择时最关键的信号- 好 description = 做什么(功能)+ 什么时候用(触发场景)+ 哪些词要触发(关键词)
- Anthropic 建议写得「更主动」:Claude 有「触发不够」的倾向
-
上限:开放规范 1024 字符,Claude Code 中 description + when_to_use 共 1536 字符 模式 2:排除条款(Exclusion Clause)
-
不说「什么时候用」还要说「什么时候不用」
- Ruben Hassid:排除条款是 description 里最关键的一行
- 排除内容:不适用场景、应交给其他技能的场景、直接用 Claude 就够的场景
- 维护成本:技能一多,排除条款也要跟着调整
第二类:上下文经济(Context Economy)¶
控制技能对上下文窗口的占用。 模式 3:上下文预算(Context Budget)
- 默认前提:Claude 是聪明的(不需要从头解释常识)
- 每一段话都要配得上它占用的 token
-
术语统一、避免时间敏感表达 模式 4:渐进式披露(Progressive Disclosure)
-
SKILL.md 是目录不是仓库,主文件控制在 500 行以内
- 细节拆到不同文件,只在需要时加载
- scripts/ 不占上下文
- 触发点:SKILL.md 超过 ~300 行就该考虑拆分
第三类:指令校准(Instruction Calibration)¶
在「写太死」和「写太松」之间找平衡。 模式 5:控制调优(Control Tuning)
- 按任务脆弱程度决定指令严格度
- 三档自由度:高(文本指令「用你的判断」)→ 中(伪代码、参数化步骤)→ 低(精确脚本、强约束)
- 语气本身是调节手段(如「你是一个更关注正确性而不是风格的资深审查员」)
-
常见误区:写死更安全 → 实际只是把失败方式从「做错」变成「做不了」 模式 6:解释原因(Explain-the-Why)
-
先说规则,再说明原因:让 Claude 理解逻辑而非机械执行
- Anthropic 把 ALL CAPS 指令视为重构信号
- 「使用构造器注入。字段注入会破坏可测试性,因为需要依赖 Spring 上下文来模拟字段。」优于「必须使用构造器注入,绝不使用字段注入。」
-
适用:需要 Claude 自己做判断的地方;不适用于「不能出错」的低自由度步骤 模式 7:模板脚手架(Template Scaffold)
-
给带占位符的模板,让 Claude 按结构填空
- 严格模板(数据契约/机器解析)vs 灵活模板(文档类输出)
-
模板定结构,示例定风格 模式 8:技能内示例(In-Skill Examples)
-
放 2-3 个输入/输出示例让 Claude 对齐风格
- 和 few-shot 类似,示例比文字说明更管用
-
注意:Claude 容易「学例子」,示例要覆盖不同情况 模式 9:已知陷阱(Known Gotchas)
-
在 SKILL.md 单独加一节列出常见失败情况
- 往往是技能最有价值的内容(来自真实踩坑)
- 陷阱会变化:库升级、API 改动后需更新
第四类:工作流控制(Workflow Control)¶
多步骤流程的控制方式。 模式 10:执行清单(Execution Checklist)
- 把流程变成可勾选的清单,未完成项始终「可见」
- 解决的核心问题:不是做错,而是没做完
-
每轮出现在对话中,让用户也能看到进度 模式 11:自纠正循环(Self-Correcting Loop)
-
生成 → 验证 → 失败则修复 → 再验证
- 验证可以是脚本或规则检查
-
需要设重试上限,避免不收敛 模式 12:计划-验证-执行(Plan-Validate-Execute)
-
在理解任务和执行操作之间加一层可验证的中间产物(如 JSON 计划)
- 所有验证发生在副作用之前(与自纠正循环的核心区别)
- 适合批量操作、不可逆、代价高的任务
第五类:可执行代码(Executable Code)¶
把确定性工作交给脚本。 模式 13:实用工具包(Utility Bundle)
- 把反复「重新写」的辅助逻辑提前做成脚本,放到 scripts/
- 脚本要求:自处理错误、合理默认或快速失败、常量有用途说明
-
判断标准:翻翻日志——哪些辅助逻辑反复被「重新写」 模式 14:自主校准(Autonomy Calibration)
-
在 YAML 里用 allowed-tools 明确技能仅需的能力
- 注意:allowed-tools 是「预批准」不是「硬限制」,真正约束要靠权限策略
- 容易被误用:写太宽 = 放大权限
与社区模式的关系¶
| 维度 | 社区模式(5+1 种) | Anthropic 官方模式(14 种) |
|---|---|---|
| 来源 | 7 个顶级 Skill 仓库 | Anthropic 官方最佳实践文档 |
| 组织方式 | 按流程结构(线性/决策树/循环等) | 按生命周期阶段(触发→上下文→指令→流程→代码) |
| 覆盖 | 宏观流程决策 | 微观编写决策 + 宏观流程 |
| 互补 | 偏「选哪种」 | 偏「怎么写好」 |
| 重叠 | 循环迭代 ↔ 自纠正循环(类似) | 渐进式披露两者都有 |
| 最佳实践:用社区模式的决策树选型,用 Anthropic 模式的编写原则指导具体实现。 | ||
| → 返回总览 |
深度分析¶
系统性视角:5 类模式的内在逻辑¶
Anthropic 的 14 种模式并非孤立的技巧,而是一条从「触发」到「执行」再到「校准」的完整链路。
- 发现与选择(模式 1-2):解决技能「何时被调用」的问题。description 和排除条款是最早影响 Claude 决策的两个信号,写好它们等于给技能装了正确的「入口过滤器」。
- 上下文经济(模式 3-4):解决技能「占用多少上下文」的问题。Claude 的上下文窗口是共享资源,预算思维和渐进式披露能防止技能在大型对话中成为负担。
- 指令校准(模式 5-9):解决「指令怎么写才有效」的问题。这是 Anthropic 模式中最密集的一类,涵盖自由度控制、原因解释、模板、示例和已知陷阱——本质上是把人类的隐性知识转化为显性的工程约束。
- 工作流控制(模式 10-12):解决多步骤任务的「过程可信度」问题。执行清单让进度透明,自纠正循环处理反馈驱动的不稳定过程,计划-验证-执行则预防不可逆错误的代价在事后才显现。
- 可执行代码(模式 13-14):解决「确定性工作谁来干」的问题。工具包把反复「重新写」的辅助逻辑提前固化,权限校准则在 YAML 层控制技能的能力边界。
核心张力:自由度 vs 确定性¶
Anthropic 模式在「写太死」和「写太松」之间的张力贯穿始终,这体现在: 控制调优(模式 5)本身是矛盾的:它要求按任务脆弱程度决定指令严格度,但紧接着解释原因(模式 6)又说「先说规则再说原因」。两者并不冲突——模式 6 是「如何写规则」的方法论,模式 5 是「写多严」的裁量权。真正的张力在于:当一个规则无法用原因说服 Claude 时,强制执行(低自由度)可能是唯一选择,但此时恰恰违背了「先说 Why」的原则。实践中,这个张力在「低风险高判断」场景(如文本编辑风格)最容易被化解:规则写宽松,理由写清晰。 ALL CAPS 作为重构信号:Anthropic 把大写指令视为重构信号,这个洞察很实用——大写往往说明作者在传递规则而非解释原因。当规则能够被理解时,强制执行就不必要了。
渐进式披露 vs 上下文预算:一个优化两个方向¶
渐进式披露(模式 4)和上下文预算(模式 3)看似都在「省上下文」,实则针对不同问题:
- 渐进式披露解决的是初始加载成本:SKILL.md 太大导致首次激活慢
- 上下文预算解决的是持续消耗成本:每一段话占用 token 影响对话质量 两者的边界都在于:拆得太碎破坏上下文连贯性,卡得太紧损失必要的背景知识。Anthropic 给的锚点是:SKILL.md 超过 ~300 行考虑拆分,主文件控制在 500 行以内。
Anthropic 模式 vs 社区模式:互补而非竞争¶
| 维度 | 社区模式(5+1 种) | Anthropic 官方模式(14 种) |
|---|---|---|
| 组织方式 | 按流程结构(线性/决策树/循环等) | 按生命周期阶段(触发→上下文→指令→流程→代码) |
| 抽象层次 | 具体可复用的模板 | 设计原则和权衡框架 |
| 优势 | 决策有路径、可直接套用 | 系统性覆盖、有量化指标 |
| 劣势 | 依赖案例积累、难以上升到方法论 | 缺少决策树、缺乏踩坑案例 |
| 两种模式的最佳结合方式:用社区模式的决策树选型(选哪种流程结构),用 Anthropic 模式的编写原则指导具体实现(怎么写好每一步)。 |
实践启示¶
1. 按问题域对号入座¶
写技能之前先问:我的技能最可能失败在哪个环节?
- 失败在「选错了」→ 先优化 description(模式 1)和排除条款(模式 2)
- 失败在「上下文爆了」→ 先检查是否违反预算原则(模式 3)和是否需要拆分(模式 4)
- 失败在「不听指令」→ 检查自由度选择(模式 5)和是否该用原因解释替代强制(模式 6)
- 失败在「做了一半」→ 清单模式(模式 10)可能最有效
- 失败在「不可逆错误」→ 计划-验证-执行(模式 12)而非自纠正循环
2. description 的三层结构¶
Anthropic 强调 description 是「最关键的信号」,实践中最有效的三层结构: 1. 做什么:一句话功能描述(10-15 词) 2. 什么时候用:触发场景描述(20-30 词) 3. 什么词触发:关键词/排除词 好 description 的反面不是「没有 description」,而是「把 description 写成说明书」——把功能拆解写成操作手册是 SKILL.md 的任务,不是 description 的任务。
3. ALL CAPS 检查表¶
每次写完 SKILL.md,都做一次 ALL CAPS 扫描:对每个大写指令问——
- 这个规则能「先说 Why」吗?
- 如果说了 Why,Claude 还能做对吗?
- 如果能,这个大写指令就是重构候选 把「必须」「禁止」「只能」翻译成原因说明,往往会发现规则本身可以更优雅。
4. 渐进式披露的执行信号¶
什么时候该拆文件?Anthropic 给了两个锚点:
- SKILL.md 超过 ~300 行:考虑拆分
- SKILL.md 接近 500 行:必须拆分 拆分的单位不是「任意分段」,而是「相对独立的子主题」。每次拆分后检查:新文件是否能在不读其他文件的情况下理解大意?如果不能,拆分粒度可能太细了。
5. 工具包反推法¶
「实用工具包(模式 13)」的判断标准是「哪些辅助逻辑反复被重新写」。实操方式:翻技能的使用日志,找那些「每次都要查一下上次怎么写的」的模式——那些就是工具化的候选。 好工具的标准:自处理错误、合理默认或快速失败、常量有用途说明。
6. 权限校准的最小化原则¶
「自主校准(模式 14)」容易被误用:allowed-tools 写得比实际需要的宽,等于给技能开了多余的权限门。原则:只写实际需要的最小权限集,定期审计「上次用是什么时候」。
7. 模式组合清单¶
以下是典型场景的模式组合推荐: | 场景 | 推荐模式组合 | |------|-------------| | 新技能启动 | 模式 1、2、3、7、8 | | 多步骤复杂任务 | 模式 10、11 或 12 | | 高风险不可逆操作 | 模式 12(Plan-Validate-Execute) | | 高频使用的技能 | 模式 13(工具包)+ 模式 9(已知陷阱) | | 调试/修复已有技能 | 模式 6(解释 Why)+ ALL CAPS 扫描 |
相关实体¶
- Anthropic 14 个 Agent Skills 设计模式
- Claude Design 系统提示词 → web-design-engineer Skill
- anthropic 招人底牌:1680 份员工履历揭示「基础设施老兵」吃香