
Claude Code、OpenAI Codex、Google Gemini CLI、Cursor 都提供「跨会话的指令/上下文」和「规则」类配置，但命名与层级各不相同。本文从三类配置入手做对比：instruction 文件（CLAUDE.md / AGENTS.md / GEMINI.md）、skills、以及「特殊 rules」（行为/权限类规则）。

说明：本文基于各工具官方文档在 2026-02-11 可访问版本整理。

术语说明：

- `cwd` 指 Current Working Directory（当前工作目录，即你运行命令时所在的目录）；
- `repo root` 指仓库根目录（通常是 Git 根目录）。

---

## 一、Instruction 类文件（给模型的说明与偏好）

四款工具都支持「在会话开始时加载的 Markdown 说明」，用于项目约定、个人偏好、架构说明等。差异主要在文件名、层级和加载顺序。

先看速览：

| 工具        | 主文件              | 全局位置                               | 项目位置                                                                               | 本地私有层          |
| ----------- | ------------------- | -------------------------------------- | -------------------------------------------------------------------------------------- | ------------------- |
| Claude Code | `CLAUDE.md`         | `~/.claude/CLAUDE.md` + managed policy | `./CLAUDE.md`、`./.claude/CLAUDE.md`、子目录 `CLAUDE.md`（按需加载）、`.claude/rules/` | `./CLAUDE.local.md` |
| Cursor      | `AGENTS.md` + Rules | User Rules（设置内）                   | `.cursor/rules/` + `AGENTS.md`                                                         | 无独立本地层        |
| Gemini CLI  | `GEMINI.md`         | `~/.gemini/GEMINI.md`                  | 从项目根到 cwd 每层 `GEMINI.md`                                                        | 无独立本地层        |
| Codex       | `AGENTS.md`         | `~/.codex/AGENTS.md`                   | 从项目根到 cwd 每层 `AGENTS.md/AGENTS.override.md`                                     | 无独立本地层        |

### Claude Code：CLAUDE.md + 规则目录

- 存放位置：
  - Managed policy：Linux `/etc/claude-code/CLAUDE.md`、macOS `/Library/Application Support/ClaudeCode/CLAUDE.md`、Windows `C:\Program Files\ClaudeCode\CLAUDE.md`
  - 项目：`./CLAUDE.md` 或 `./.claude/CLAUDE.md`，项目规则 `./.claude/rules/*.md`
  - 用户：`~/.claude/CLAUDE.md`，以及 `~/.claude/rules/*.md`
  - 项目本地：`./CLAUDE.local.md`（通常不入库）
  - Auto memory：`~/.claude/projects/<project>/memory/MEMORY.md`
- 层级（由广到窄）：Managed policy → 项目 CLAUDE.md / .claude/rules → 用户 `~/.claude/CLAUDE.md` / `~/.claude/rules` → 项目本地 CLAUDE.local.md。
- 优先级与上面的展示顺序相反：越具体越优先（通常是 `CLAUDE.local.md` 最高、Managed policy 最低）。
- 子目录下的 CLAUDE.md 在进入该目录时按需加载；上层目录的 CLAUDE.md 在启动时从 cwd 递归向上加载。
- 支持在 CLAUDE.md 里用 `@path/to/file` 引用其他文件；`CLAUDE.local.md` 一般会加入 .gitignore。
- Auto memory 由 Claude 自动写入，会话启动时只加载 MEMORY.md 前 200 行。[^claude-memory]

### Cursor: Rules + AGENTS.md

- 存放位置：项目级规则在 `.cursor/rules/`（.mdc）；User Rules 在 Cursor 设置内配置，无独立磁盘路径。`AGENTS.md` 为项目说明入口，具体目录层级行为以当前版本文档/发布说明为准。
- 项目级：`.cursor/rules` 下的 .mdc（可带 frontmatter：`description`、`globs`、`alwaysApply`），以及 `AGENTS.md`。
- 全局：User Rules（设置里配置，对所有项目生效）。另外有 Memories（Beta）用于跨会话持久化偏好。
- 规则类型：支持「Always Apply / Apply Intelligently / Apply to Specific Files / Apply Manually」四类（部分版本 UI 仍可见旧名 `Always / Auto Attached / Agent Requested / Manual`）。`AGENTS.md` 是纯 Markdown，不带 rules frontmatter。[^cursor-rules]
- 旧版 `.cursorrules` 仍支持但已不推荐。

### Gemini CLI: GEMINI.md

- 存放位置：全局仅一个文件 `~/.gemini/GEMINI.md`；项目内在从 cwd 到 Git 根的每一层目录可放 GEMINI.md；子目录也可放，按需加载。可通过设置 `context.fileName` 指定备选文件名。
- 层级：全局 → 从 cwd 到项目根路径上的 GEMINI.md → 子目录中的 GEMINI.md（按需）。所有找到的文件内容会拼接后一起送给模型。
- 可用 `@file.md` 在 GEMINI.md 里做模块化引用；可通过设置里的 `context.fileName` 增加备选名（如 `["AGENTS.md", "CONTEXT.md", "GEMINI.md"]`）。
- `/memory show` 查看当前拼接后的内容，`/memory refresh` 重新扫描，`/memory add <text>` 往全局 `~/.gemini/GEMINI.md` 追加（会进入「Gemini Added Memories」一类区块）。[^gemini-memory-workflow]

### Codex: AGENTS.md

- 存放位置：
  - 全局：`~/.codex/AGENTS.md` 或 `~/.codex/AGENTS.override.md`（仅取其一非空）
  - 项目：从 Git 根到 cwd 的每一层目录，文件名可为 `AGENTS.override.md`、`AGENTS.md` 或 `project_doc_fallback_filenames` 中的名称
  - 可通过 `CODEX_HOME` 切换全局目录
- 全局：`~/.codex/AGENTS.md`（或 `AGENTS.override.md` 覆盖）；仅取其中一个非空文件。[^codex-agents]
- 项目：从项目根（通常为 Git 根）向下走到 cwd，每层最多一个文件：优先 `AGENTS.override.md`，否则 `AGENTS.md`，再按配置的 `project_doc_fallback_filenames`（如 TEAM_GUIDE.md）。最终按「根→当前目录」顺序拼接，有总字节上限 `project_doc_max_bytes`（默认 32 KiB）。

---

## 二、Skills（可复用能力包）

先看速览：

| 工具        | 技能形态                                 | 典型路径                                                              |
| ----------- | ---------------------------------------- | --------------------------------------------------------------------- |
| Claude Code | `SKILL.md` + `scripts/references/assets` | 项目 `.claude/skills/`、用户 `~/.claude/skills/`                      |
| Cursor      | Agent Skills（`SKILL.md`）               | 常见为项目 `.cursor/.claude/.codex` 下 `skills/`，用户目录同理        |
| Gemini CLI  | Skills（`SKILL.md`）+ extensions/MCP     | 用户 `~/.gemini/skills/`、项目 `.gemini/skills/`                      |
| Codex       | Skills（独立于 `AGENTS.md`）             | 项目 `.agents/skills/`、用户 `~/.agents/skills/`、`/etc/codex/skills` |

- Claude Code：路径为项目级 `./.claude/skills/<name>/SKILL.md`（及同目录 scripts、references、assets）、用户级 `~/.claude/skills/<name>/SKILL.md`、企业级由 managed settings 配置（无默认磁盘路径）、插件内为插件的 `skills/<name>/SKILL.md`。支持 frontmatter、斜线命令 `/name`、以及「按描述自动选用」。与自定义 slash commands 统一成一套机制，skills 优先。
- Cursor：官方 changelog 已公布 Agent Skills（可被 Agent 自动调用，也支持斜线命令触发）；规则体系与 skills 分开。Skills 目录扫描与跨工具兼容（如 `.cursor/.claude/.codex`）在不同版本文档表述有差异，建议以当前版本 docs 为准。[^cursor-skills]
- Gemini CLI：官方文档已有 Skills（`SKILL.md` + 可选 `scripts/`、`references/`、`assets/`），同时也支持 extensions 与 MCP；三者是不同机制。[^gemini-skills]
- Codex：Skills 为独立机制。项目侧从 `cwd` 开始向上到 repo root，逐层查找 `.agents/skills`；用户级 `~/.agents/skills`，系统级 `/etc/codex/skills`；此外还有内置 `system` skills。可用 `~/.codex/config.toml` 的 `[[skills.config]]` 配置启停。与 AGENTS.md 分开：AGENTS.md 管「说明与约定」，Skills 管「可调用能力包」。[^codex-skills]

四家都支持“可复用能力包”思路，但命名与实现不同：Claude/Cursor/Gemini/Codex 都已支持 `SKILL.md` 形态（Cursor 为较新能力），Gemini 另有扩展与 MCP 机制。

---

## 三、特殊 Rules（行为/权限类规则）

这里指「约束模型能执行哪些操作」的规则，而不是「写什么风格的说明」。

先看速览：

| 工具        | 是否有独立命令级策略层                | 配置形态                    |
| ----------- | ------------------------------------- | --------------------------- |
| Claude Code | 部分（在 settings/managed policy 里） | permissions、sandbox 等配置 |
| Cursor      | 无明确独立策略引擎                    | 主要靠 Rules 文案与产品设置 |
| Gemini CLI  | 有                                    | `~/.gemini/policies/*.toml` |
| Codex       | 有                                    | `.rules`（Starlark）        |

### Claude Code

- 存放位置：记忆与指令在 CLAUDE.md 和 `.claude/rules/*.md`（见第一节）；权限/沙箱的配置在 settings 或 managed policy 中，与「记忆」文档分开，无单独的「命令级 rules 文件」路径。
- 记忆与指令侧：用 CLAUDE.md 和 `.claude/rules/*.md` 表达「做什么、怎么写」；path 限定用 frontmatter 的 `paths`。
- 权限/沙箱：另有 permissions、sandbox 等配置，与「记忆」文档分开管理。

### Cursor

- 存放位置：Project Rules 在 `.cursor/rules/`；User Rules 在应用设置内，无磁盘路径。
- Project/User Rules 主要是「给模型的说明」（风格、流程、禁止事项等），属于 prompt 层面的规则。
- 没有在文档中强调「命令级 allow/deny」的规则引擎，行为控制主要靠规则文案和产品设置。

### Gemini CLI: Policy engine

- 存放位置：用户层 `~/.gemini/policies/*.toml`；Admin 层为系统目录，如 Linux `/etc/gemini-cli/policies`、macOS `/Library/Application Support/GeminiCli/policies`、Windows `C:\ProgramData\gemini-cli\policies`。
- 专门有一层 Policy：在上述路径的 .toml 里配置规则，针对「工具调用」做 allow / deny / ask_user。
- 规则按 `toolName`、`mcpName`、`argsPattern`、`commandPrefix`、`commandRegex`、`modes` 等匹配，带优先级；Admin 层可覆盖 User/Default。[^gemini-policy]
- 与 GEMINI.md 分离：GEMINI.md 管「说什么、怎么做」的上下文，policy 管「是否允许执行某工具/命令」。

### Codex：.rules（Starlark）

- 存放位置：用户层 `~/.codex/rules/*.rules`（如 `default.rules`）；项目/团队层为 team config locations 下的 `rules/*.rules`（`./codex/rules` 是常见布局之一）。Codex 会扫描各 Team Config 下的 `rules/` 目录。
- 在以上路径放 `.rules` 文件，用 Starlark 写 `prefix_rule(pattern=..., decision=allow|prompt|forbidden)`，控制「哪些命令可以在沙箱外执行、是否要二次确认」。[^codex-rules]
- 与 AGENTS.md 完全分离：AGENTS.md 管说明与约定，.rules 管命令级安全与审批。

---

## 四、对照小结

<!-- markdownlint-disable MD060 -->
| 维度                 | Claude Code                                                              | Cursor                                                                                                                | Gemini CLI                                                  | Codex                                                                                   |
| -------------------- | ------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| 主 instruction 文件  | CLAUDE.md（+ .claude/rules/*.md）                                        | Rules + AGENTS.md                                                                                                     | GEMINI.md                                                   | AGENTS.md                                                                               |
| instruction 存放位置 | /etc/claude-code/、./、~/.claude/、~/.claude/rules/、./.claude/rules/    | .cursor/rules/、AGENTS.md；User Rules 在设置内                                                                        | ~/.gemini/、项目根到 cwd、子目录                            | ~/.codex/、项目根到 cwd 每层                                                            |
| 全局 instruction     | ~/.claude/CLAUDE.md、Managed                                             | User Rules                                                                                                            | ~/.gemini/GEMINI.md                                         | ~/.codex/AGENTS.md                                                                      |
| 项目本地/私有        | CLAUDE.local.md（.gitignore）                                            | —                                                                                                                     | 无单独「本地」层                                            | —                                                                                       |
| 自动记忆             | ~/.claude/projects/&lt;project&gt;/memory/MEMORY.md                      | Memories (Beta)                                                                                                       | `/memory add`（工具名 `save_memory`）→ 全局 GEMINI.md       | —                                                                                       |
| 指令内引用           | @path 在 CLAUDE.md                                                       | @file 在 rules                                                                                                        | @file.md 在 GEMINI.md                                       | 无同一机制                                                                              |
| Skills               | .claude/skills/，斜线+自动选用                                           | Agent Skills（SKILL.md，支持自动调用与 slash）                                                                        | Agent Skills + Extensions/MCP                               | Skills 独立于 AGENTS.md                                                                 |
| Skills 存放位置      | 项目 .claude/skills/、用户 ~/.claude/skills/、企业 managed、插件 skills/ | 常见为项目 `.cursor/.claude/.codex` 的 `skills/` 与用户 `~/.cursor/~/.claude/~/.codex` 的 `skills/`（以版本文档为准） | 用户 ~/.gemini/skills/、项目根到 cwd 每层 .gemini/skills    | 从 cwd 到 repo root 扫描 .agents/skills、用户 ~/.agents/skills、Admin /etc/codex/skills |
| 行为/权限规则        | permissions 等单独配置                                                   | 无独立策略引擎                                                                                                        | Policy engine (TOML)                                        | .rules (Starlark)                                                                       |
| 行为规则存放位置     | settings / managed policy                                                | —                                                                                                                     | 用户 ~/.gemini/policies/、Admin /etc/gemini-cli/policies 等 | 用户 ~/.codex/rules/、team config locations 下 rules/                                   |
<!-- markdownlint-enable MD060 -->

配置时可按需求选：要「和仓库一起版本化的项目约定」用各家的项目级 instruction 文件；要「仅本机或本项目的私有偏好」用 Claude 的 CLAUDE.local.md 或 Cursor 用户规则；要「严格限制可执行命令」用 Gemini 的 policy 或 Codex 的 .rules。

补一个选型视角：如果你最重视“可编程的命令审批规则”，Gemini（TOML policy）和 Codex（Starlark `.rules`）更强；如果你最重视“项目说明 + 代码助手使用门槛”，Claude/Cursor 的 instruction + rules 组合更直接。

## 参考

[^claude-memory]: [Manage Claude's memory (Claude Code)](https://code.claude.com/docs/en/memory)
[^cursor-rules]: [Rules (Cursor)](https://cursor.com/docs/context/rules)
[^cursor-skills]: [Agent Skills in Cursor 2.4 (Cursor Changelog)](https://cursor.com/changelog/2-4)
[^gemini-memory-workflow]: [Project context GEMINI.md (Gemini CLI)](https://geminicli.com/docs/cli/gemini-md/)；[Memory tool save_memory (Gemini CLI)](https://geminicli.com/docs/tools/memory/)
[^gemini-skills]: [Skills (Gemini CLI)](https://geminicli.com/docs/cli/skills/)
[^gemini-policy]: [Policy engine rule matching (Gemini CLI)](https://geminicli.com/docs/core/policy-engine/#rule-matching)
[^codex-rules]: [Rules (Codex)](https://developers.openai.com/codex/rules)
[^codex-agents]: [AGENTS.md (Codex)](https://developers.openai.com/codex/guides/agents-md)
[^codex-skills]: [Skills (Codex)](https://developers.openai.com/codex/skills)

