Guides

使用 Claude Skills 进行上下文工程:超越提示工程

了解 Claude Skills 如何实现上下文工程原则,在正确的时间为 Claude 提供正确的信息——以及为什么这比提示措辞更重要。

Claude Skills TeamMarch 9, 20269 min read
#context-engineering#prompt-engineering#skills#advanced#architecture#claude-code
使用 Claude Skills 进行上下文工程:超越提示工程

提示工程主导了 AI 工具的第一个时代。写好系统提示,精心制作指令,迭代直到模型表现正确。它有效——但会触及上限。

上下文工程是接下来的。它不是问"我如何写更好的提示?",而是问:在任何给定时刻,Claude 的上下文窗口中应该有什么信息,不应该有什么?

Claude Skills 在其核心是一个上下文工程架构。以这种方式理解它们——不是作为一个"功能"特性,而是作为一种有原则的上下文管理方法——解锁了大多数开发者错过的模式。

为什么巨石式提示在规模上失败

典型的沉重 CLAUDE.md 可能包含项目架构概述(始终相关)、编码风格指南(写代码时相关)、部署程序(部署时相关)、数据库模式(查询数据时相关)等。每个会话都加载所有这些,不管您实际在做什么。

对于典型的 3,000 token 混合内容 CLAUDE.md,大约 70-80% 的 token 与任何给定任务无关。您为 Claude 不需要的信息支付注意力成本。

Skills 作为渐进式披露

Claude Skills 实现了一种称为渐进式披露的模式:以最小成本预先总结一切,仅展开相关的内容。

会话开始
  → Claude 读取所有已安装 skills 的 YAML frontmatter
  → 每个 skill ~20-50 token
  → 40 个 skills ≈ 1,500 token 总开销

用户询问关于部署
  → Claude 识别部署 skill 为相关
  → 加载完整部署 skill:~800 token
  → 其他一切:不在上下文中

用户询问关于测试
  → Claude 加载测试 skill:~600 token
  → 部署 skill:已卸载

如何将巨石式上下文转换为 Skills

从大型 CLAUDE.md 迁移到基于 Skills 的架构对大多数项目来说大约需要一个小时。

之后:层级结构

.claude/
├── CLAUDE.md              # ~150 token:项目名、栈、关键联系人
└── skills/
    ├── coding-conventions/
    │   └── SKILL.md       # 编写/审查代码时加载
    ├── deployment/
    │   └── SKILL.md       # 部署时加载
    ├── database/
    │   └── SKILL.md       # 处理数据时加载
    └── testing/
        └── SKILL.md       # 编写测试时加载

会话开销:150(CLAUDE.md)+ ~35x4(skill frontmatter)= ~290 token。 每任务加载:相关 skill 的 300-800 token。

编写有效的 Skill Frontmatter

frontmatter 描述是 Claude 用来决定是否加载 skill 的依据。精确的描述很重要:

# 模糊——加载太频繁或不够频繁
---
name: database
description: Database information
---

# 更好——具体触发器
---
name: database-schema
description: Use when writing SQL queries, working with migrations, debugging
  data issues, or designing new database tables for MyApp
---

context-engineering Skill

对于认真对待这种方法的开发者,context-engineering skill——拥有 8,285 星,是平台上最受欢迎的之一——将这些模式直接编码到 Claude 的行为中。

安装后,Claude 会自动:

  • 建议何时一条新信息应归入 Skill 还是 CLAUDE.md
  • 用优化相关性匹配的 frontmatter 构建新的 SKILL.md 文件
  • 在长会话开始失去一致性时诊断上下文退化
  • 对检索到的文档和日志应用动态注入模式

高级模式:分层上下文架构

对于更大的代码库,上下文工程扩展为完整的四层系统:

第 1 层:通用(~100-200 token,始终存在)
  ~/.claude/CLAUDE.md
  您是谁。您的一般偏好。没有项目特定的内容。

第 2 层:项目(~100-300 token,按项目加载)
  .claude/CLAUDE.md
  此项目的技术栈、团队、关键文件。不是任务特定的。

第 3 层:领域(300-1000 token,按任务领域加载)
  .claude/skills/testing/
  .claude/skills/deployment/
  .claude/skills/code-review/
  项目内特定领域的深度专业知识。

第 4 层:动态(可变,按需检索)
  来自 MCP 的错误日志
  API 响应
  检索的文档
  数据库查询结果

设计原则:更高层包含更稳定、更不具体的信息。如果您发现自己频繁编辑全局 CLAUDE.md,任务特定的内容已经泄漏到了错误的层。

上下文工程在何时回报最大

会话较长时。 上下文积累。结构良好的 Skills 防止不相关的历史挤掉相关信息。

代码库较大时。 更多代码意味着更多潜在上下文。Skills 让 Claude 只加载与当前模块或任务相关的内容。

涉及团队时。 共享的 Skills 为每个团队成员提供相同的上下文——无需每个人维护匹配的 CLAUDE.md 文件。

项目跨越多个领域时。 当一个代码库涵盖前端、后端、数据库和基础设施时,领域特定的 Skills 防止一个领域的指令污染另一个。

开始使用

最快的第一步是审计。打开您的 CLAUDE.md 并标记每个以"当你需要..."或"如果你正在处理..."开头的部分——每个都是自己的 Skill 的候选者。

然后访问 claudeskills.info 找到可能已经编码了您正在实现的模式的社区 Skills。context-engineering skill 是任何认真采用这种方法的人的自然首选安装——它有效地教 Claude 将上下文工程纪律应用到您一起构建的一切中。

上下文工程不是清晰指令的替代品。它是使这些指令在规模上工作的基础设施——确保它们在需要时存在、不需要时缺席,并且永远不会互相竞争 Claude 的注意力。

Skills in This Post

Related Posts