Appearance
记忆文件说明
Claude Code 和 Codex 都支持通过特定的"记忆文件"来告诉 AI 你的项目背景、工作习惯、代码规范等。写好记忆文件,AI 每次打开都能直接进入状态,不用每次重复交代。
Claude Code 的记忆文件:CLAUDE.md
Claude Code 使用 CLAUDE.md 作为记忆文件,支持多层级,按范围从大到小加载。
加载层级
txt
~/.claude/CLAUDE.md ← 全局(所有项目都生效)
<项目根目录>/CLAUDE.md ← 项目级(只在这个项目生效)
<项目子目录>/CLAUDE.md ← 子目录级(只在这个目录下生效)加载规则:
- 三个层级的内容会同时生效,不是覆盖而是叠加
- 越具体的层级优先级越高(子目录 > 项目 > 全局)
- Claude Code 每次启动时自动读取所有适用层级
文件位置
全局记忆文件(对所有项目生效):
- Windows:
C:\Users\你的用户名\.claude\CLAUDE.md - Mac:
~/.claude/CLAUDE.md
项目记忆文件(只对当前项目生效):
在你项目的根目录下创建 CLAUDE.md 即可,例如:
txt
F:\我的项目\
├── CLAUDE.md ← 在这里
├── src\
├── package.json
└── ...子目录记忆文件(只对某个模块生效):
txt
F:\我的项目\
├── CLAUDE.md
└── src\
├── CLAUDE.md ← 只在处理 src 目录下的文件时生效
└── ...写什么?
全局 CLAUDE.md 适合写通用偏好,项目 CLAUDE.md 适合写项目专属背景。
全局 CLAUDE.md 示例:
markdown
# 全局规则
- 全程用中文回答
- 先说结论,再补充理由
- 修改代码前必须先读取原文件
- 禁止创建不必要的新文件项目 CLAUDE.md 示例:
markdown
# 项目背景
这是一个 React + TypeScript 的电商前端项目。
## 技术栈
- 框架:React 18
- 样式:Tailwind CSS
- 状态管理:Zustand
## 注意事项
- 组件文件统一放在 src/components 目录
- 接口请求统一走 src/api 目录下的封装方法,不要直接用 fetch
- 提交信息用中文Codex 的记忆文件:AGENTS.md
Codex 使用 AGENTS.md 作为记忆文件,层级结构与 Claude Code 完全一致。
加载层级
txt
~/.codex/AGENTS.md ← 全局(所有项目都生效)
<项目根目录>/AGENTS.md ← 项目级(只在这个项目生效)
<项目子目录>/AGENTS.md ← 子目录级(只在这个目录下生效)文件位置
全局记忆文件:
- Windows:
C:\Users\你的用户名\.codex\AGENTS.md - Mac:
~/.codex/AGENTS.md
项目记忆文件: 在项目根目录创建 AGENTS.md,同 CLAUDE.md 用法。
写什么?
内容格式和写法与 CLAUDE.md 完全相同,参考上方示例即可。
Codex 的权限规则文件:rules/
Codex 还有一个特殊的规则目录,用于记录"允许自动执行哪些命令":
txt
~/.codex/rules/default.rules这个文件由 Codex 自动维护,每次你在 Codex 里选择"始终允许"某个命令时,规则会自动写入这里。一般不需要手动编辑。
两个工具记忆文件对比
| 对比项 | Claude Code | Codex |
|---|---|---|
| 文件名 | CLAUDE.md | AGENTS.md |
| 全局位置 | ~/.claude/CLAUDE.md | ~/.codex/AGENTS.md |
| 项目级 | 项目根目录 CLAUDE.md | 项目根目录 AGENTS.md |
| 子目录级 | 支持 | 支持 |
| 加载方式 | 多层叠加 | 多层叠加 |
实用建议
Q:压缩之后 AI 还能记住 CLAUDE.md / AGENTS.md 里的内容吗?
A:可以。记忆文件是每次启动都重新读取的,不受上下文压缩影响。这就是为什么建议把重要的项目背景、规范写进记忆文件而不是靠对话来传递——即使上下文被压缩,记忆文件的内容始终在。
Q:两个工具同时用,要维护两份记忆文件吗?
A:全局规则部分(语言偏好、通用习惯)需要分别写在各自的全局文件里。项目级的 CLAUDE.md 和 AGENTS.md 内容可以相同,放在同一个项目根目录下,两个工具各自读取对应的文件。
Q:记忆文件会占用上下文吗?
A:会,记忆文件的内容每次都会被加入上下文。所以不要把记忆文件写得过于冗长,保持精简、只写有用的内容,避免白白消耗 token。