本文通过深入分析 Claude Code 泄漏源码,揭示了 Rules、MCP、Skills 三个概念的底层实现机制,指出其核心区别在于信息在 API 请求中的注入位置不同,并提供了基于源码洞察的实践建议。
📝 详细摘要
文章基于 Claude Code v2.1.88 泄漏源码,从 LLM API 调用层面深度解析了 Rules、MCP、Skills 的实现细节。作者指出,Rules(CLAUDE.md)是项目级行为规范,通过 prependUserContext 被动注入到 messages 中;MCP 是标准化工具协议,其工具定义注册在 tools[] 中,而 Server 级使用说明则注入到 system 的动态区域;Skills 是可复用的提示词,通过 tool_use 触发后将 Markdown 指令文本注入 messages。三者的本质区别在于信息在 API 请求(system、tools、messages)中的位置,而非功能上的根本不同。文章通过源码分析,澄清了网络上的常见误解,并给出了何时使用 Rules、Skills 或 MCP 的落地建议,强调不要迷信 Skills 的自动触发,许多场景下 Bash 工具足以替代 MCP。
💡 主要观点
-
Rules、MCP、Skills 的核心区别在于信息在 API 请求中的位置,而非功能本质。
Rules 作为自然语言指令被注入到 messages 中;MCP 的工具定义在 tools[],Server 说明在 system;Skills 通过 tool_use 触发后将提示词注入 messages。对模型而言,最终处理的都是文本指令,区别在于工程实现层面。
isMeta: true 的用户消息注入对话历史。所谓的‘标准化工作流’完全依赖模型的指令遵循能力,没有硬编码的逻辑控制步骤。
/skill-name 快捷命令或直接 @rules-file.md 引用,比指望模型自动识别更高效可靠。
💬 文章金句
- 它们的区别,本质上就是信息在 API 请求中被塞到了不同的位置。
- MCP 的价值不在于‘能调用外部系统’(Bash 也能),而在于‘以更安全、更可靠的方式调用外部系统’。
- Skills 是‘提示词注入’机制,不是函数调用。tool_use 只是触发器,真正的‘能力’来自被注入的 Markdown 指令文本。
- 如果你每次都是手动触发,那 Skills 的完整调用链路……和你手动用 @commit-rules.md 引用一个同等内容的 Rules 文件,效果是……两者最终模型看到的都是一段自然语言指令,没有本质区别。
- 把核心 Skill 的快捷命令告诉团队成员,让他们手动调用,比指望模型自动识别靠谱得多。MCP 同理——在引入之前先想想,Bash 能不能直接搞定。
📊 文章信息
AI 初评:91
来源:百度Geek说
作者:百度Geek说
分类:人工智能
语言:中文
阅读时间:30 分钟
字数:7251
标签: Claude Code, AI 编程, 源码分析, MCP, Skills