找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3408

积分

0

好友

443

主题
发表于 14 小时前 | 查看: 1| 回复: 0

一名男子在分析数据与AI处理的科技场景

本文概要:Anthropic 官方发布了 32 页的 Claude Skills 完整构建指南。大多数人只看到了“技能包是个文件夹”这层表面,但这份文档里藏着很多被忽视的设计哲学、工程取舍和实战信号。本文深度拆解,带你读懂隐藏在规范背后的深层逻辑。

先说一个让我觉得很有意思的细节。

这份白皮书在讲 Skills 的成功标准时,有这样一句话:

“These are aspirational targets - rough benchmarks rather than precise thresholds. Aim for rigor but accept that there will be an element of vibes-based assessment.”

翻译一下:这些指标是参考基准,不是精确阈值。要追求严谨,但也要接受,有些评估本质上是「凭感觉」的。

Anthropic 在官方技术文档里承认 AI 系统的评估目前还没有完全精确的量化方法。这不是在推卸责任,而是在如实描述现状——这种诚实,反而让我觉得这份文档值得认真对待。

带着这个视角,咱们重新读一遍这份指南里被大多数人忽略的内容。

Skills 不是「高级 Prompt」,而是 AI 的「认知分层架构」

很多人第一反应:Skills 不就是把 prompt 存起来吗?

不,差别比你想象的大得多。

官方定义了一个三层渐进式披露系统(Progressive Disclosure),这才是 Skills 最核心的架构设计:

第一层:YAML Frontmatter
────────────────────────────────────────
始终加载到 Claude 的 system prompt
作用:让 Claude「知道这个 Skill 存在」
包含信息:最小必要描述,仅够判断是否相关
Token 成本:极低(只是几行描述)

              ↓ 当 Claude 判断「这个任务相关」时

第二层:SKILL.md Body
────────────────────────────────────────
按需加载完整指令
作用:Claude 在这里读到具体怎么做
包含信息:完整工作流、示例、错误处理
Token 成本:中等,但只在需要时才产生

              ↓ 更深入的任务才会触达

第三层:references/ 目录
────────────────────────────────────────
Claude 主动导航发现的补充文件
作用:API 文档、模板、详细规范
包含信息:超出 SKILL.md 的扩展内容
Token 成本:只在真正需要时消耗

这个设计的本质是 模拟人类的信息检索行为:不是把所有知识全塞进脑子,而是「知道自己知道什么」,在需要时按需调取。

对比一下传统 Prompt Engineering 的做法:

传统方式(把所有指令塞进 system prompt)
┌─────────────────────────────────────────┐
│ 无论什么任务,这些指令都全量加载:        │
│ - 代码规范 1500 字                       │
│ - 设计系统说明 800 字                    │
│ - API 使用规范 1200 字                   │
│ - 错误处理指南 600 字                    │
│ Token 消耗:极高,永远消耗               │
└─────────────────────────────────────────┘

Skills 方式(三层按需加载)
┌─────────────────────────────────────────┐
│ 第一层(始终加载):50 字描述            │
│ 第二层(相关时加载):核心指令 500 字    │
│ 第三层(深入时加载):扩展文档按需读取   │
│ Token 消耗:动态,与任务复杂度匹配       │
└─────────────────────────────────────────┘

这就是为什么官方把 Frontmatter 称为「最重要的部分」——它是整个系统的触发器,决定了后面两层什么时候生效。

Frontmatter 的 description 字段:一个被严重低估的设计挑战

description 字段有 1024 字符限制,要在这个限制内同时表达清楚:这个 Skill 做什么 + 什么时候触发 + 关键能力

听起来简单,但官方给出了一个很实用的调试技巧,大多数人没注意到:

直接问 Claude:“你什么时候会用 [skill name] 这个 Skill?” Claude 会把 description 原文引用出来回答你。 如果它描述的触发时机不符合预期,说明 description 需要修改。

这句话的意思是:description 不是给人看的,是给 Claude 看的。它的好坏不是靠人来判断,而是靠 Claude 的理解行为来验证。

好的 description 结构公式:

[明确功能] + [具体触发短语] + [可选:文件类型/服务名称]

来看几组真实对比:

# ❌ 太模糊——Claude 无法判断何时调用
description: Helps with projects.

# ❌ 有功能但没触发——Claude 不知道在什么语境下激活
description: Creates sophisticated multi-page documentation systems.

# ❌ 太技术化,用户不会这样说话
description: Implements the Project entity model with hierarchical relationships.

# ✅ 功能清晰 + 触发词精准 + 涵盖用户的自然表达
description: Manages Linear project workflows including sprint planning,
task creation, and status tracking. Use when user mentions "sprint",
"Linear tasks", "project planning", or asks to "create tickets".

# ✅ 带文件类型触发,匹配附件上传场景
description: Analyzes Figma design files and generates developer handoff
documentation. Use when user uploads .fig files, asks for "design specs",
"component documentation", or "design-to-code handoff".

一个隐藏规则: description 里的触发词,应该是「用户真实会说的话」,而不是技术术语。你要站在用户的视角问自己:当他们想做这件事的时候,会用什么词来描述?

「问题驱动」vs「工具驱动」:一个被低估的设计决策

白皮书用了一个 Home Depot 的类比来区分两种 Skill 设计思路,这个细节很值得展开。

你去 Home Depot 可能是两种状态: 一种是「我有个厨柜坏了,怎么修?」——员工帮你找对工具 另一种是「我买了把新钻头,能做什么?」——员工教你怎么用

问题驱动(Problem-first)
────────────────────────────────────────
用户描述:「我需要建一个项目工作区」
Skill 做什么:自动编排正确的 MCP 调用序列
特点:用户描述结果,Skill 处理工具

工具驱动(Tool-first)
────────────────────────────────────────
用户描述:「我连接了 Notion MCP」
Skill 做什么:教会 Claude 最优工作流和最佳实践
特点:用户有了工具访问权,Skill 提供专业经验

这个区分在实际开发中影响很大。

问题驱动的 Skill,重点是「把步骤按对的顺序编排好」,核心是流程。 工具驱动的 Skill,重点是「把领域知识嵌入进去」,核心是专业度。

如果你在为自己的 MCP 设计配套 Skill,很可能两种都需要——一部分 Skill 处理「新用户不知道怎么开始」的问题,另一部分 Skill 处理「熟练用户想要高效完成专业任务」的需求。

五种设计模式的深层逻辑

官方总结了 5 种从真实案例中提炼的模式,但每种模式背后的「适用信号」值得深入理解。

Pattern 1:顺序工作流编排

核心要求:步骤之间有强依赖关系,顺序不能错

客户入职流程(典型顺序工作流):

create_customer (Step 1)
    │
    │ customer_id ←── 这个 ID 是后续步骤的前提
    ▼
setup_payment_method (Step 2)
    │
    │ 等待支付验证 ←── 异步等待点,需要明确处理
    ▼
create_subscription (Step 3)  ←── 使用 Step1 的 customer_id
    │
    ▼
send_email (Step 4)

关键技术点: 每个步骤要明确定义「成功条件」,并提供失败时的回滚指令。不然 Step 2 失败了,Step 1 创建的 customer 就成了孤儿数据。

Pattern 2:多 MCP 协同

适用信号: 一个完整工作流需要跨越多个独立服务时。

设计到开发的交付流程是最典型的例子:

Figma MCP → 导出设计稿和规范
    ↓ asset manifest(资产清单)作为数据传递

Drive MCP → 创建文件夹,上传资产
    ↓ shareable links(共享链接)作为数据传递

Linear MCP → 创建开发任务,关联资产链接
    ↓ task references(任务引用)作为数据传递

Slack MCP → 发布交付通知,包含所有引用

关键技术点: 各 MCP 之间的数据传递。上一个 Phase 产出的数据,要明确告诉 Claude 如何传给下一个 Phase。这部分如果写模糊了,Claude 会不知道该用哪个变量。

Pattern 3:迭代精炼

这个模式有一个最容易被忽略的核心问题:什么时候停止迭代?

官方明确写了“Know when to stop iterating”,但没给出标准。实践中可以这样设计:

质量检查脚本(scripts/check_report.py)
    ↓
识别问题列表
    ├── 缺少章节(严重)→ 必须修复
    ├── 格式不一致(中等)→ 修复后继续
    └── 细节润色(轻微)→ 可以接受,停止迭代

退出条件:
- 所有「严重」问题已修复 AND
- 「中等」问题不超过 N 个

为什么要用脚本而不是语言指令? 白皮书里有一句很重要的话:

“Code is deterministic; language interpretation isn't.” 代码是确定性的,语言理解不是。

对于关键的质量验证,用可执行脚本代替自然语言描述,能保证每次的检查标准一致。这是整份指南里技术含量最高的建议之一。

Pattern 4:上下文感知工具选择

这个模式的精髓是透明度——不只是智能选择工具,还要告诉用户「为什么选这个」:

文件存储决策树:

检查文件类型和大小
    ├── 大文件 (>10MB) → 云存储 MCP
    │                    告知用户:「文件较大,已存储到云端」
    ├── 协作文档       → Notion MCP
    │                    告知用户:「文档类文件,已同步到 Notion」
    ├── 代码文件       → GitHub MCP
    │                    告知用户:「代码已提交到 GitHub」
    └── 临时文件       → 本地存储
                         告知用户:「临时文件,存储在本地」

很多人容易忽略最后一步——向用户说明选择原因。这看起来是小细节,但直接影响用户对 Skill 的信任度。

Pattern 5:领域专业知识嵌入

这个模式的价值在于:把你团队积累的业务规则,变成 Claude 的「内置常识」

金融合规支付是最典型的例子,但本质可以推广到任何有业务规则的场景:

医疗预约 Skill:
处理前检查 → 医生排班是否可用 → 患者保险是否覆盖 → 时间段是否冲突
处理中记录 → 预约确认 → 提醒设置
处理后归档 → 电子病历关联 → 账单生成

法律文件审查 Skill:
处理前检查 → 管辖权核验 → 利益冲突筛查 → 合规性预评估
...

关键洞察: 这类 Skill 的核心价值不是「自动化」,而是「标准化」——确保每次都按照正确的业务规则执行,不会因为 Claude 理解偏差而跳过重要步骤。

测试框架:被低估的 90% 触发率目标

很多人跳过了测试章节,但这里有几个值得细抠的细节。

官方建议的测试分层:

手动测试(Claude.ai)
────────────────────────────────────────
适用:开发早期,快速迭代
方法:直接跑查询,观察行为
优点:零配置,即时反馈
缺点:无法重复验证,覆盖面有限

脚本测试(Claude Code)
────────────────────────────────────────
适用:有一定稳定性后,需要回归测试
方法:自动化测试用例,跨改动重复验证
优点:可重复,覆盖面广

程序化测试(Skills API)
────────────────────────────────────────
适用:生产环境,大规模部署前
方法:构建评估套件,系统性运行
优点:最严格,支持统计分析

选择哪个层级,取决于 Skill 的「影响范围」——内部小团队用,手动测试够了;部署给数千企业用户,必须做程序化测试。

90% 触发率的测量方法:

准备 10-20 个「应该触发」的测试查询,包含:
  - 直接描述(“help me plan this sprint”)
  - 换一种说法(“I need to organize our Q4 tasks”)
  - 隐式触发(“we have 30 things to do before launch”)

统计自动加载 vs 需要用户手动启用的比例
目标:≥ 90% 自动触发

一个反常识的建议: 官方明确说,最有效的方法是「先把一个最难的任务调通,再扩展测试覆盖面」。不是一开始就覆盖所有 edge case,而是先找到核心路径的解法,再用这个解法反推出通用规则。

「模型懒惰」问题:一个被遮掩的实际挑战

白皮书有一个小节叫「Model Laziness(模型懒惰)」,讲的是 Claude 有时会跳过 Skill 里定义的步骤,特别是验证步骤。

官方给的解决方案是加「明确的鼓励性语言」:

## Performance Notes
- Take your time to do this thoroughly
- Quality is more important than speed
- Do not skip validation steps

但有一个很重要的补充说明,很多人没注意到:

Note: Adding this to user prompts is more effective than in SKILL.md

意思是,这种「鼓励语言」放在用户的实时 prompt 里比放在 Skill 指令里效果更好。

这实际上揭示了一个深层问题:Skill 里的指令对 Claude 的约束力,在某些情况下不如对话上下文里的实时引导。这是现阶段 AI 系统的固有特性,不是 Skill 的缺陷,但设计时需要考虑进去。

大上下文问题:20-50 个 Skill 是个隐藏限制

白皮书里有一个经常被忽略的警告:

如果你同时启用了超过 20-50 个 Skill,可能会导致响应变慢或质量下降。

解决方案是「Skill Packs(技能包)」——把功能相关的 Skill 打包在一起,按需启用,而不是所有 Skill 常驻。

❌ 错误做法:
同时启用 60+ 个 Skill
→ 所有 Skill 的 Frontmatter 都加载进 system prompt
→ 上下文过长,性能下降

✅ 正确做法:
Design Pack(设计工作时启用):figma-analyzer, design-handoff, asset-manager
Dev Pack(开发工作时启用):code-reviewer, test-generator, api-documenter
Content Pack(内容创作时启用):wechat-writer, xiaohongshu-adapter, seo-optimizer

按工作场景切换技能包,保持活跃 Skill 在合理范围内

这对于重度用户来说是个需要主动管理的问题,白皮书在这里是在说「Skills 生态的可扩展性依赖于良好的分组管理」。

开放标准:Skills 的战略野心

这是整份白皮书里最容易被低估的一段:

“We‘ve published Agent Skills as an open standard. Like MCP, we believe skills should be portable across tools and platforms.”

Skills 被定义为开放标准。

这和 MCP 的战略是一致的——Anthropic 不只是在做 Claude 的功能,而是在试图定义 AI Agent 生态的基础设施标准。

MCP:定义 AI Agent 如何连接外部工具(连接层标准)
Skills:定义 AI Agent 如何执行工作流(知识层标准)

两者都是开放标准
→ 理论上可以被其他 AI 平台采用
→ 生态越大,单个 Skill 的价值越高

对开发者来说,这意味着:你现在为 Claude 构建的 Skill,未来可能在整个 AI Agent 生态里通用。 早期参与标准建设,比之后跟随要有意义得多。

API 使用:一个正在开放的新能力

白皮书里专门有一节讲 Skills API,这部分对开发者很关键但介绍不多:

Claude.ai / Claude Code 适合:
- 最终用户直接使用 Skills
- 开发阶段的手动测试
- 个人的临时工作流

API 适合:
- 以编程方式使用 Skills 的应用
- 生产环境的大规模部署
- 自动化流水线和 Agent 系统

关键 API 能力:

  • /v1/skills 端点:列出和管理 Skills
  • container.skills 参数:在 Messages API 请求里指定使用哪个 Skill
  • 与 Claude Agent SDK 集成:构建自定义 Agent

一个重要限制:Skills API 目前需要 Code Execution Tool beta 权限,因为 Skills 的运行需要安全沙箱环境。

给 MCP 开发者的核心建议

白皮书里有一个判断很值得记住:

“Skills make your MCP integration more complete. As users compare connectors, those with skills offer a faster path to value, giving you an edge over MCP-only alternatives.”

翻译一下:没有配套 Skill 的 MCP 是半成品

用户连接你的 MCP 之后,如果还需要自己摸索工作流,他们会:

  • 提交「怎么用 X 功能?」的支持工单
  • 在每次对话里重新解释自己的需求
  • 把 Claude 调用失败怪罪到你的 MCP 上(即使问题是缺少工作流指导)

而有了配套 Skill 之后:

  • 工作流自动激活,用户零学习成本
  • 最佳实践内嵌,每次输出质量稳定
  • 降低 MCP 的使用门槛,留存率提升

这对正在开发 MCP 的团队来说是个很明确的产品策略信号:Skill 不是锦上添花,而是让 MCP 真正可用的必要条件。

总结:这份指南在说什么更深层的事情

读完这份白皮书,我觉得它在传递一个更大的信号:

Anthropic 正在把「如何让 AI 高效工作」这个问题,从个人经验转化为可编码、可复用、可分享的工程实践。

过去一年,大家都在探索怎么写 Prompt。但 Prompt 是私有的、不可共享的、每次对话都要重来的。Skills 把这套经验变成了「可安装的模块」——你可以把团队积累的最佳实践打包分发,别人可以站在你的肩膀上直接用。

就像 npm 包对前端生态做的事情一样,Skills 正在尝试对 AI 工作流生态做同样的事:让知识可复用,让最佳实践可传播,让专业经验可安装

这个方向,值得每个认真使用 Claude 的开发者早一点参与进来。如果你想了解更多类似的开源实践和项目洞察,欢迎在云栈社区进行交流和探讨。

📚 参考资料





上一篇:零成本快速搭建:在Vercel上免费部署Waline评论系统完整指南
下一篇:ESP32-S3-BOX-3开发实战:打造免干扰的桌面专注力设备
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-26 18:27 , Processed in 0.496904 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表