一文讲清 CLAUDE.md、Skills、MCP、Hooks 的实战用法

人工智能2周前更新 geekmao
248 0 0

七、上下文成本管理

你添加的每个功能都会消耗 Claude 的一些上下文。了解这些成本有助于你构建高效的设置。

7.1 各功能的上下文消耗

功能 何时加载 加载内容 上下文成本
CLAUDE.md 会话开始 完整内容 每个请求都占用
Skills 会话开始 + 使用时 启动时加载描述,使用时加载完整内容 低(仅描述占用)*
MCP 会话开始 所有工具定义和架构 每个请求(但有工具搜索优化)
Hooks 触发时 无(外部运行)
 

* 使用 disable-model-invocation: true 的 Skills 在调用前成本为零。

7.2 省 Token 技巧

CLAUDE.md

  • ✅ 控制在 300-500 行以内
  • ✅ 只放全局通用信息
  • ✅ 详细文档放单独文件,CLAUDE.md 只放索引
  • ❌ 不要放工作流(用 Skills)
  • ❌ 不要放 API 文档(用 Skills)

Skills

  • ✅ 参考型 Skills 按需加载
  • ✅ 操作型 Skills 用 disable-model-invocation: true
  • ✅ 详细文档放 references/ 目录
  • ❌ 不要一个 Skill 塞 10 个任务

MCP

  • ✅ 按需接入,不用的断开
  • ✅ 使用 /mcp 查看每个 Server 的 token 成本
  • ❌ 不要一次连 20 个 Server

Hooks

  • ✅ 零上下文成本,大胆使用
  • ✅ 适合固定流程的自动化

7.3 功能加载时机

Markdown
会话开始
  ↓
自动加载:CLAUDE.md(完整内容)
         Skills(仅描述)
         MCP(工具定义)
  ↓
执行任务
  ↓
按需加载:Skills(完整内容)
         Skills references/(具体文档)
  ↓
事件触发
  ↓
自动执行:Hooks(外部运行,零成本)

关键洞察

  • CLAUDE.md 和 MCP 是” 重量级 ” 的( 始终占用上下文 )
  • Skills 是 ” 轻量级 ” 的( 只加载描述,用时才加载内容 )
  • Hooks 是 ” 零成本 ” 的( 完全外部运行 )

八、最佳实践清单

8.1 CLAUDE.md 最佳实践

✅ 推荐做法

  • 控制在 300-500 行以内,越短越好
  • 遵循 WHY / WHAT / HOW 框架
  • 只放全局通用的信息
  • 善用层级机制:通用偏好放全局,项目规则放项目级
  • 用单独文档做渐进式信息披露,CLAUDE.md 只放索引
  • 手写,不要用 /init 自动生成

❌ 常见错误

  • 把工作流程写进去( 应该用 Skills )
  • 把 API 文档全粘进来( 应该放单独文档 )
  • 把代码风格规则写进去( 交给 ESLint / Prettier )
  • 写了 1000 行( 太多了 )
  • 从不更新( 过时的信息比没有信息更糟 )

8.2 Skills 最佳实践

✅ 推荐做法

  • 单一职责,一个 Skill 只做一件事
  • description 必须包含触发条件:” Use when user asks to… “
  • 步骤要具体可执行
  • 详细文档放 references/ 目录
  • 考虑异常路径和错误处理
  • 用 kebab-case 命名
  • 操作型 Skills 使用 disable-model-invocation: true

❌ 常见错误

  • 一个 Skill 塞 10 个任务
  • description 写得太模糊:” Helps with projects “
  • 步骤写得太抽象:” 确保代码质量 “
  • Skill 文件夹里放 README.md( 应该放 SKILL.md )

8.3 MCP 最佳实践

✅ 推荐做法

  • 按需接入,不用的断开
  • 权限最小化
  • 优先使用官方或社区维护的 Server
  • 定期检查连接状态( /mcp
  • 查看每个 Server 的 token 成本

❌ 常见错误

  • 一次连 20 个 Server
  • 不用 MCP,直接让 Agent 跑 shell 命令
  • 给了过多权限

8.4 Hooks 最佳实践

✅ 推荐做法

  • 用于固定流程的自动化
  • 格式化、测试、通知等确定性任务
  • 零上下文成本,大胆使用

❌ 常见错误

  • 用 Hook 做需要判断的任务( 应该让 Agent 做 )
  • 用 Hook 修复代码问题( 需要理解代码 )

8.5 常见误区对照表

误区 正确做法
把工作流写在 CLAUDE.md 用 Skills
一个 Skill 塞 10 个任务 拆分成多个 Skill
不用 MCP,直接跑 shell 用 MCP 获得结构化接口
CLAUDE.md 写了 1000 行 精简到 500 行以内
把代码风格写进 CLAUDE.md 交给 ESLint / Prettier / Biome
用 Agent 做代码格式化 用 Hook + ESLint
Skills description 太模糊 包含具体触发词
从不更新 CLAUDE.md 项目演进时同步更新
 

九、总结

用四句话记住这套体系:

  1. CLAUDE.md — 告诉 Agent ” 这是什么项目 “( 上下文 )
  2. Skills — 告诉 Agent ” 遇到 X 怎么做 “( 流程 )
  3. MCP — 让 Agent ” 能操作外部工具 “( 能力 )
  4. Hooks — 让固定流程 ” 自动执行 “( 自动化 )

它们不是互相替代的关系,而是协作关系

  • CLAUDE.md + Skills = 知识层( 告诉 Agent 怎么思考 )
  • MCP + Hooks = 能力层( 让 Agent 能动手 )

与其每次对话都重复解释项目背景、手动指导操作步骤,不如花 30 分钟把这四样配好。

教会 Agent 一次,受益每一次。

参考资料

© 版权声明

相关文章

暂无评论

暂无评论...