乐于分享
好东西不私藏

AI编程工具里的 Skill、MCP、Workflow、Rules、Memories 到底有什么区别?

AI编程工具里的 Skill、MCP、Workflow、Rules、Memories 到底有什么区别?

今日话题:AI编程工具

用 Cursor / Windsurf / Claude Code 这些工具时,经常看到 MCP、Workflow、Rules、Memories、Skill 这些概念,感觉功能都差不多,但又各有各的叫法。

这些东西到底有什么区别,分别适合在什么场景下用?

@平凡

新知答主

4 月 23 日发布于知乎

很多人装了 Claude Code,两周后说「感觉跟直接用 Claude 没什么区别」。

这句话说明他们没用对。

Claude Code 的核心设计不是聊天框,是一个文件驱动的操作系统。你不配置它,它给你的就是返厂状态。你配好了,它跟一个懂你项目的开发搭档差不多。

配置入口有五个,关系搞清楚了,才可能用得顺。

GPT-image-2 生成的 cheatsheet,太强了不得不说

以下是正文

先说这五个东西各是什么

CLAUDE.md、Skills、MCP、Auto Memory、Hooks。

很多人把这五个混在一起,觉得「配配就好了」,然后乱配一通,发现有的规则失效,有的功能触发不了,就放弃了。

用操作系统类比最清晰:

  • CLAUDE.md = 内核参数,开机就加载,全程在线

  • Skills = 应用程序,/skill触发,按需加载

  • MCP = 硬件驱动,连接外部系统

  • Auto Memory = 系统日志,跨Session持久化

  • Hooks = 事件处理层,工具调用时触发

这五层优先级不同,加载时机不同,解决的问题也不同。混在一起配是会出问题的。

CLAUDE.md:规则层,写对了等于给Claude装了项目记忆

CLAUDE.md是Claude Code开对话就读的文件,不需要每次提醒它,它自己会加载。

放在这里的东西,应该是”每次对话都适用”的规则。比如:

  • 这个项目用什么技术栈

  • 禁止做什么(不要给我加注释,不要自作主张重构)

  • 跨文件的命名约定

  • 特定的术语规范

然后有一个我用了很长时间才踩到的坑。

CLAUDE.md的有效指令数大约在150条以内。

系统提示词有长度上限,Claude Code会把CLAUDE.md 的内容注入进去,但超过一定长度之后,Claude 处理的注意力会分散,部分规则实际上会被随机忽略。

这个限制官方没有明确说明,用户测试摸出来的数字貌似是 160,据说写进去的规则太多的话不见得生效。

所以 CLAUDE.md 不是写得越多越好,而是要写得精,最重要的约束放前面,其他的移到Skills里按需加载。

写 CLAUDE.md 的结构建议:

  • 项目说明(3-5行)

  •  核心技术栈(只写非默认项)

  •  禁止操作(5条以内,真正重要的)

  •  术语规范(如果有行业黑话)

不建议:把整个开发规范手册搬进去,全放进去等于什么都没放。

Skills:应用层,复杂流程封装成可复用指令

Skills 跟 CLAUDE.md 的核心区别是加载时机。

CLAUDE.md 全程在线,但 Skills 只有在你用 /skill-name 触发时才会被完整读取。这意味着Skills 不占用日常对话的上下文预算,触发时完整内容才注入进来。

说白了就是这样:Skills的元数据(名称、用途描述)会常驻,大约 100 token 左右,让 Claude 知道”有这个工具可以用”。完整内容只有在命中匹配时才加载。

这解释了一件事:为什么你可以在 Claude Code 里放几十个 Skills,而它并不会因此变慢。

它在用渐进加载的策略管理上下文。

Skills 适合放什么:

  • 复杂的多步骤流程(比如”code review按这套步骤来”)

  • 专业领域的写作规范(比如”技术文档按这个格式”)

  • 项目特定的工作方式(比如”这个项目的PR流程是这样的”)

不适合放 Skills 里的:每次对话都要用的基础规则,那个放 CLAUDE.md。

MCP:驱动层,让Claude能操作外部系统

MCP(Model Context Protocol)是 Anthropic 发布的开放协议,解决的是”Claude怎么跟外部世界交互”的问题。

最常见的用法:连接数据库、调用 GitHub/Jira 等API、操作浏览器、读写超出默认权限的本地文件。

有一个实际成本值得知道:40 个 MCP 工具的schema大约消耗 55,000 token 的上下文空间。这不是用了才算,是定义了就要算。所以不是MCP越多越好,按需开启,不用的关掉。

另外一个现实问题:目前公开 MCP 服务器中,38.7% 没有认证机制。如果你在使用第三方 MCP服务,检查一下它的权限范围,特别是涉及代码仓库或数据库的。

Auto Memory:日志层,让Claude跨对话记住你

这个功能争议最大,因为同类产品的决策相反。

Cursor 在 2025年 删掉了类似的Memory功能,理由是「AI自动记忆不可靠,会累积错误」,他们更相信显式配置。

Claude Code 的 Auto Memory 选择了另一条路:它把学到的用户偏好写成 markdown 文件存在本地,你可以直接查看和编辑。透明度比较高的实现方式。

适合放 Memory 里的:跨项目的个人偏好(偏好2空格缩进、不喜欢详细注释)。

不适合放 Memory 里的:项目特定的规则,那个放CLAUDE.md。定期检查 Memory 文件,清理过时或不准确的条目。

Hooks:事件层,工具调用时的自动化触发

Hooks 是五层里最少被用到,但有时候最有价值的一层。

逻辑是:当 Claude Code 执行特定操作时,自动触发一个shell命令。

比如:

  • 每次Claude写完代码,自动跑lint检查

  • 每次Claude调用某个MCP工具前,先打一条日志

  • Claude读某个文件之后,触发一个通知

Hooks 特别适合团队场景,你可以把质量门禁自动化,Claude Code 无法绕过它们。

所有配置都是文本文件,可以进 git 仓库,可以被团队共享和版本控制。这是图形界面工具做不到的一点。

一个有意思的隐藏命令

/btw:在 Claude 正在执行任务时,如果你有一个不相关的问题想顺便问,可以用 /btw 你的问题,它不会打断当前任务,而是在任务完成后同时回答这个平行问题。

这类细节说明 Claude Code 的设计哲学:terminal-first,文件驱动,每个功能都可以被git追踪、审查、版本控制。

我自己现在的配置方式

CLAUDE.md:80条以内,只写项目核心约束,不写可以推断出来的东西。

Skills:≦10,分别对应我常用的几个复杂流程(superpower和AK的几个)。触发用 /skill 名称,平时不占上下文。

MCP:按项目开启,目前常用 GitHub MCP 和数据库 MCP,还有几个联网搜索的 MCP,不用的时候关掉。

Auto Memory:开着,内存足够大,多了总比少的好。

Hooks:用得不算多,主要是提醒我完成某个任务滴一声。

阅读更多

GPT-Image-2 图片很难一眼看出 AI 味,普通人怎样才能鉴别真假?
DeepSeek V4 预览版本上线并同步开源,哪些亮点值得关注?
并无网传那样去 CUDA 化,DeepSeek V4 堂堂正正

🚀 AI 产品扶持计划:

知乎为 AI 产品提供定制宣发支持,了解/报名请戳:知乎「AI 新品非正式发布现场」扶持计划

🚀 知乎 AI 社群:

如果你是泛 AI 爱好者,对 AI 资讯感兴趣,欢迎扫码加入知乎 AI 社群↓,我们将每周送上 AI 周报,不定时发布 AI 线上线下活动与 AI 产品测试尝鲜。

知乎AI交流群

让一部分开发者先走起来

🚀 知乎科技账号正式登陆 X:

👉 https://x.com/ZhihuFrontier,聚焦「技术 × 观点」的跨语境对话