别再把 Claude Code 当一次性聊天框了:CLAUDE.md 与持久上下文工作流


别再把 Claude Code 当一次性聊天框了:CLAUDE.md 与持久上下文工作流

CLAUDE.md 与持久上下文工作流博客封面图

最近刷到一篇关于 Claude Code 里的 CLAUDE.md 的 X 长文,标题很典型:“你一直都在用错 Claude,CLAUDE.md 可以修复一切。”

营销味有点重,但它击中了一个真实问题:很多人不是不会用 AI,而是每次都在从零开始用 AI。

每开一个新会话,就重新解释:

  • 我是谁;
  • 我在做什么项目;
  • 我喜欢什么表达风格;
  • 哪些事情不要擅自改;
  • 哪些操作必须先问我;
  • 上次踩过什么坑;
  • 这套代码、文章、业务有什么固定约束。

这不是 Prompt 不够好,而是上下文没有沉淀。

CLAUDE.md 的意义就在这里:它不是一个“万能咒语”,而是一份可以被 Claude 自动读取的长期工作说明书。它把你反复强调、反复纠正、反复补充的东西,变成项目级的持久上下文。


一、真正的问题:每次对话都从零开始

很多人使用 Claude Code、ChatGPT 或其他 AI 工具时,默认把它当成一个更聪明的聊天框。

这会带来一个很隐蔽的效率损耗:AI 每次都不知道你是谁,也不知道你之前怎么工作。

于是你会不断遇到这些情况:

  • 简单问题,它先来一段“Great question”式废话;
  • 让它改一段文字,它顺手重写了整篇;
  • 让它修一个 bug,它顺手重构了三个无关文件;
  • 让它总结资料,它编了几个看似合理但没来源的事实;
  • 让它写文案,它写得很流畅,但完全不像你;
  • 让它处理项目,它不知道哪些约束是历史原因,哪些可以调整。

这类问题不是模型“笨”。很多时候是因为它缺少稳定上下文。

模型不是你的同事。它不会天然记得你上周说过什么,也不会默认理解你的偏好。没有外部记忆机制,它每次醒来都是一个新实例。

所以我们真正要解决的,不是“这一轮 prompt 怎么写得更长”,而是:

如何把稳定、重复、长期有效的信息,从临时对话里抽出来,变成 AI 每次工作前都能读取的上下文?

这就是 CLAUDE.md 的价值。


二、CLAUDE.md 到底是什么?

简单说,CLAUDE.md 是 Claude Code 在项目目录里会自动读取的 Markdown 文件。

你可以把它理解成项目里的“AI 协作说明书”。它通常放在项目根目录,用来告诉 Claude:

  • 当前项目是什么;
  • 技术栈是什么;
  • 用户偏好是什么;
  • 代码风格是什么;
  • 哪些目录不能碰;
  • 哪些命令可以运行;
  • 哪些操作必须确认;
  • 已知问题和历史决策是什么。

它的价值不在于格式多高级,而在于它把“重复解释”变成“自动加载”。

一次写好,多次复用。

这件事很小,但会明显改变 AI 协作的手感。

flowchart TD
    A[临时 Prompt] --> B[只影响当前会话]
    C[CLAUDE.md] --> D[每次进入项目自动读取]
    D --> E[稳定偏好]
    D --> F[项目约束]
    D --> G[权限边界]
    D --> H[历史经验]
    E --> I[更少重复解释]
    F --> I
    G --> I
    H --> I

当然,CLAUDE.md 最直接服务于 Claude Code,不是 Claude 网页聊天框独有的“魔法”。它背后的思想更通用:AI Agent 需要持久上下文层。

不管这个层叫 CLAUDE.mdAGENTS.mdMEMORY.md、skills,还是某种向量记忆系统,本质上都在做同一件事:让 AI 不再只依赖当前窗口里的几句话。


三、我最认可的几类规则

那篇 X 长文列了 21 条适合放进 CLAUDE.md 的规则,内容不少。真正值得保留的,我认为主要是下面几类。

1. 沟通风格:少废话,结论优先

很多 AI 默认会把“礼貌”理解成一套固定话术:

  • “Great question!”
  • “Of course!”
  • “Certainly!”
  • “I’d be happy to help!”

这些句子本身没有错,但在高频协作里很烦。尤其是你只是想要一个结果,它还要先表演一遍“我很乐意帮助你”。

所以可以写进规则:

少废话,结论优先。不要用“好问题”“当然可以”“我很乐意”等开场白。简单问题直接给答案,复杂任务再展开分析。

这类规则看似小,其实很影响工作流。因为 AI 的语气不是装饰,它会决定你和它协作时的摩擦感。

2. 事实边界:不确定就明说

AI 最大的问题之一不是不知道,而是“很会装作知道”。

尤其是日期、数据、论文引用、版本号、API 行为、历史事件这类信息,一旦它凭印象补全,用户很容易被带偏。

所以这条规则应该长期存在:

如果不确定某个事实、数字、日期、引用或 API 行为,必须明确说明不确定。不要用听起来合理的内容填补空白。能查证就先查证。

这条比“回答要专业”重要得多。

专业不是语气自信,而是知道边界在哪里。

3. 修改边界:只改被要求改的东西

对于写作和代码来说,这是非常关键的一条。

你让 AI 改一个段落,它可能顺手重排全文;你让它修一个函数,它可能顺手重构整个模块;你让它优化一句标题,它可能把原本的表达风格全改掉。

这种“热心”在真实工作里很危险。

更好的规则是:

只修改用户明确要求修改的范围。不要擅自重写、重构、改名、移动文件或优化无关内容。如果发现其他值得改进的问题,单独列出建议,不要直接动手。

这条规则背后的原则是:AI 应该是精密工具,不是自动接管一切的实习生。

4. 权限边界:外部副作用必须确认

当 AI 只是聊天时,错误最多是文字不准。

但当 AI 接入工具之后,它可以:

  • 发邮件;
  • 发微博 / X;
  • 发小红书;
  • 删除文件;
  • 覆盖代码;
  • 部署服务;
  • 调用外部 API;
  • 操作数据库。

这时“别乱动”就不是偏好,而是安全边界。

适合写成硬规则:

发送、发布、部署、删除、覆盖、数据库迁移、生产环境操作、不可逆外部 API 调用,必须在当前会话获得明确确认后才能执行。历史上下文或推测意图不算确认。

这条规则应该放在所有 Agent 系统的最前面。

因为真正危险的不是 AI 不够聪明,而是它“聪明地误解了你”。


四、CLAUDE.md 不只是开发者工具

很多人一听 CLAUDE.md,会以为它只是 Claude Code 的开发者配置,或者只适合程序员。

这其实把它看窄了。

它更像一种“上下文工程”方法,可以迁移到很多场景。

写作者

写作者最需要沉淀的是声音和边界:

  • 我的文章语气是什么;
  • 句子长短偏好;
  • 哪些词不要用;
  • 标题风格;
  • 是否允许鸡汤;
  • 是否要保留个人表达痕迹;
  • 哪些观点是长期立场。

没有这些,AI 写出来的东西往往是“正确但不像我”。

研究者

研究者需要沉淀的是信息结构:

  • 文献总结格式;
  • 引用要求;
  • 不确定性标注;
  • 对比维度;
  • 公式和术语解释深度;
  • 哪些领域知识不必过度解释。

这样 AI 才不会每次都把摘要写成泛泛而谈的科普文。

产品和运营

产品、运营、市场类任务需要沉淀的是受众和业务约束:

  • 用户是谁;
  • 产品定位是什么;
  • 竞品有哪些;
  • 不能承诺什么;
  • 品牌语气是什么;
  • 哪些表述有合规风险。

如果没有这些,AI 很容易写出“看起来很像营销文,但完全不贴业务”的内容。

开发者

开发者当然是 CLAUDE.md 最典型的受益者。

它可以记录:

  • 技术栈;
  • 包管理器;
  • 测试命令;
  • 目录结构;
  • 代码风格;
  • 禁止改动的区域;
  • 部署和迁移权限;
  • 常见错误及修复方式。

这会让 Claude Code 从“每次刚入职的新同事”,变成“至少看过项目 README 和踩坑记录的协作者”。


五、不要照抄 21 条规则,要按自己的工作流裁剪

那篇推文最大的问题,是有些规则听起来都对,但放在一起会互相打架。

比如它建议:

任何重要任务开始前,都先给 2-3 个方案并等待用户选择。

这在高风险任务里是对的,比如重构架构、迁移数据库、发布文章、改生产配置。

但如果用户只是说“帮我读一下这篇文章总结”,还非要先列 3 种总结方式让用户选,那就很烦。

所以规则不能机械照抄。更合理的做法是分层:

flowchart TD
    A[用户请求] --> B{是否有外部副作用或不可逆风险?}
    B -->|是| C[先说明影响范围并等待确认]
    B -->|否| D{是否存在明显默认做法?}
    D -->|是| E[直接执行]
    D -->|否| F[给 2-3 个方案让用户选择]

换句话说:

  • 低风险、高确定性的任务:直接做;
  • 中风险、多路径的任务:先给方案;
  • 高风险、有外部副作用的任务:必须确认;
  • 不确定事实:先查证或标注不确定。

这比“所有事情都先问”更适合真实协作。

AI 协作最舒服的状态不是它永远谨慎,也不是它永远主动,而是它知道什么时候该大胆,什么时候该停手。


六、一个更实用的 CLAUDE.md 模板

如果你不想写很长,可以从下面这个精简版开始。

# CLAUDE.md

## 沟通风格

- 少废话,结论优先。
- 不要用“Great question”“Of course”“当然可以”等开场白。
- 简单问题短答,复杂任务再展开。
- 不确定的事实必须标注,不要编。

## 工作原则

- 优先执行,不要把简单任务变成反复确认。
- 如果存在明显默认做法,直接采用默认做法。
- 如果任务有多种路线且结果差异明显,先给 2-3 个方案让我选。
- 如果需要外部发送、发布、部署、删除、覆盖、数据库迁移或不可逆操作,必须先获得当前会话明确确认。

## 修改边界

- 只修改我明确要求修改的范围。
- 不要擅自重构、改名、移动文件或优化无关内容。
- 如果发现其他问题,列为建议,不要直接动手。
- 完成后简要说明改了什么、验证了什么、还有什么风险。

## 项目上下文

- 项目名称:TODO
- 项目目标:TODO
- 技术栈:TODO
- 包管理器:TODO
- 测试命令:TODO
- 禁止改动区域:TODO
- 常见坑:TODO

## 写作风格

- 语气:TODO
- 受众:TODO
- 常用表达:TODO
- 避免表达:TODO
- 标题风格:TODO

这个版本不追求全,而是先覆盖最容易反复纠错的部分。

真正好的 CLAUDE.md 不是一次写完的,而是在使用过程中慢慢长出来的。

每当你发现自己又对 AI 说了一遍“以后不要这样”,那句话就应该被沉淀进去。


七、从 CLAUDE.md 到更大的记忆系统

CLAUDE.md 解决的是项目级上下文,但它不是终点。

更成熟的 AI 工作流,往往会把上下文分成几层:

  • 身份层:我是谁,我的长期偏好是什么;
  • 项目层:这个项目的目标、结构、技术栈、约束;
  • 任务层:当前这次要完成什么,验收标准是什么;
  • 经验层:过去踩过什么坑,哪些方法有效,哪些方法失败;
  • 权限层:哪些动作可以直接做,哪些必须确认。

这些层不一定都写在一个文件里。

有的适合放 CLAUDE.md,有的适合放 MEMORY.md,有的适合写成项目 README,有的适合沉淀成 skills,有的适合由 Agent 系统自动管理。

关键不是文件名,而是这套原则:

高频重复的信息,不应该永远留在临时对话里。
它应该进入一个可维护、可复用、可更新的上下文系统。

这也是为什么我觉得 CLAUDE.md 的意义被低估了。

它不是 prompt 工程的小技巧,而是 Agent 工程的一块基础设施。


八、它不能“修复一切”,但能修复大量重复摩擦

回到那篇推文的标题:“CLAUDE.md fixes everything。”

这句话显然夸张。

CLAUDE.md 不能让模型凭空变聪明,不能保证工具不报错,不能替代测试,也不能让 AI 永远理解你的真实意图。

但它确实能修复很多高频摩擦:

  • 少解释一遍背景;
  • 少纠正一次语气;
  • 少发生一次擅自改动;
  • 少踩一次历史坑;
  • 少让 AI 编一次不确定事实;
  • 少在危险操作上赌一次“它应该懂”。

这些单次看起来都很小,但叠加起来就是工作流质量的差距。

真正的 AI 协作,不是每次都写一个更长、更复杂的 Prompt。

而是把那些稳定有效的经验,一点点沉淀成系统。

CLAUDE.md 只是这个系统最朴素、最容易开始的一种形式。


结语:把 AI 从“会话”升级成“工作系统”

这篇推文真正值得带走的,不是那 21 条规则本身,而是背后的思路:

不要把 Claude Code 当成一次性聊天框,要把它接入你的工作系统。

聊天框只记得这一轮你说了什么。

工作系统会记得:

  • 你是谁;
  • 你怎么写作;
  • 你怎么写代码;
  • 你不喜欢什么;
  • 你过去怎么决策;
  • 你踩过哪些坑;
  • 哪些事情必须停下来问你。

当这些东西被稳定沉淀下来,AI 才会从“聪明但陌生的工具”,慢慢变成“熟悉你工作方式的协作者”。

这才是 CLAUDE.md 真正有价值的地方。


文章作者: Onefly
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Onefly !
评论
  目录