AGENTS.md、CLAUDE.md 与 rules 目录:AI 项目配置的三个维度
在实践 SDD(语义驱动开发)的过程中,一个常见的困惑是:AGENTS.md、CLAUDE.md 和 rules/ 目录,到底有什么区别? 它们看起来都是给 AI 看的配置文件,但实际上承担着截然不同的职责。本文通过一个实际案例,帮你彻底理清这三者的边界和协作关系。
这三者并非递进的"高低层次",而是三个不同维度的配置:从宏观的多 Agent 协作框架(AGENTS.md),到单个 Agent 的个体行为规范(CLAUDE.md),再到细粒度的场景应对规则(rules/)。理解它们各自解决的问题,是正确使用 SDD 工具链的前提。
一、问题的由来:配置文件的"命名困惑"
最近在使用 OhMyOpenCode(OMO)时,执行 /init 命令后生成了一个 AGENTS.md 文件。这让我产生了一系列疑问:
“这个 AGENTS.md 和 Claude Code 的 CLAUDE.md 有什么区别?”
“项目级的 rules/ 目录又是什么作用?”
“这三者是互斥的还是互补的?”
这些问题的核心在于:AI 编程工具的配置体系缺乏统一的标准,不同工具使用不同的配置文件,容易造成混淆。理解它们的区别,是正确使用 SDD 工具链的前提。
二、核心区别:解决不同层面的问题
用一个类比来理解三者的关系:
| 配置文件 | 核心问题 | 类比 |
|---|---|---|
| AGENTS.md | “谁来做?怎么协作?” | 项目地图 + 协作协议 |
| CLAUDE.md | “我是谁?遵循什么规范?” | 单兵作战手册 |
| rules/ | “遇到 X 情况,执行 Y” | 场景应对卡片 |
1. AGENTS.md:多 Agent 编排的"总指挥"
定位:多 Agent 系统的项目级配置文件(通用规范,最早由 OpenAI Codex CLI 引入,现已被 OhMyOpenCode 等多个工具采用;OMO 的 /init 命令遵循此规范自动生成该文件)
核心职责:定义"谁来做"和"怎么协作"
1 | |
典型内容:
- 项目概述与技术栈
- 目录结构与模块划分
- 常用命令(构建、测试、运行)
- 编码规范与命名约定
- 服务接口清单(Providers & Consumers)
- 中间件配置(缓存、数据库、RPC、MQ)
- 关键依赖版本
- 反模式清单(已知技术债务)
关键特征:
- 支持嵌套(子模块可有独立 AGENTS.md)
- 包含动态元信息(生成时间、Git Commit、分支)
- 强调模块间的协作关系
2. CLAUDE.md:单 Agent 的"行为规范"
定位:Claude Code 的项目级指令文件
核心职责:告诉一个 Claude 实例"在这个项目里你应该怎么表现"
1 | |
典型内容:
- 编码规范(缩进、命名、注释语言)
- 行为准则(如何处理错误、何时询问用户)
- 工具使用规范(构建工具、测试框架)
- 项目特定的最佳实践
关键特征:
- 通常项目级单一文件
- 聚焦单个 Agent 的行为规范
- 与 Claude Code 深度绑定
3. rules/:场景化的"规则片段"
定位:场景化规则存储目录
核心职责:特定场景下的行为指导
1 | |
典型内容:
- 特定任务的行为指导
- 条件触发的规则(“如果…那么…”)
- 细粒度的场景应对策略
关键特征:
三、对比总结:一张表理清边界
| 维度 | AGENTS.md (OMO) | CLAUDE.md (Claude Code) | rules/ 目录 |
|---|---|---|---|
| 核心问题 | “谁来做?怎么协作?” | “我是谁?遵循什么规范?” | “遇到 X,执行 Y” |
| 定位 | 多 Agent 编排配置 | 单 Agent 项目指令 | 场景化规则片段 |
| 内容侧重 | 项目结构、模块划分、服务清单 | 编码规范、行为准则、工具使用 | 特定场景的行为指导 |
| 目标读者 | 多个协作的 Agent | 单个 Claude Code 实例 | 按需加载的规则引擎 |
| 生成方式 | /init 命令自动生成 |
手动创建或初始化生成 | 手动创建或模板生成 |
| 层级关系 | 支持嵌套(子模块独立) | 通常项目级单一文件 | 扁平化或按场景分类 |
| 典型大小 | 较大(200-500 行) | 中等(50-150 行) | 较小(20-50 行/文件) |
四、实际案例:一个 Java 项目的 AGENTS.md
以某隐私号码管理项目为例,其 AGENTS.md 结构如下:
1 | |
Conventions
Naming
| Type | Convention | Example |
|---|---|---|
| Class | PascalCase | SecretNoController |
| Method | camelCase | bindNumber() |
HSF Services
Providers
| Service | Interface | Methods |
|---|---|---|
leadsService |
LeadsService | callRecordQuery, queryLeads… |
Alibaba Middleware
| Service | Purpose | Key Config |
|---|---|---|
| Tair | Cache | CacheHandleService |
| Diamond | Config | service/.../diamond/ |
1 | |
┌─────────────────────────────────────────────────────────┐
│ Claude Code CLI 进程(单一 Agent) │
│ ├── 读取 ~/.claude/CLAUDE.md(全局配置) │
│ ├── 读取
│ └── 读取
└─────────────────────────────────────────────────────────┘
vs
┌─────────────────────────────────────────────────────────┐
│ OhMyOpenCode (OMO) 多 Agent 系统 │
│ ├── AGENTS.md(总指挥配置:谁来做、怎么协作) │
│ ├── Agent A(专门处理 PRD 分析) │
│ ├── Agent B(专门处理技术方案) │
│ └── Agent C(专门处理代码开发) │
└─────────────────────────────────────────────────────────┘
1 | |
项目根目录/
├── CLAUDE.md # 项目级指令
└── .claude/
└── rules/ # 场景化规则
├── review.md
├── test.md
└── doc.md
1 | |
项目根目录/
├── AGENTS.md # 多 Agent 编排配置
├── CLAUDE.md # (可选)补充单 Agent 规范
├── .claude/
│ └── rules/ # 场景化规则
└── .specs/ # SDD 规范目录
├── prd/
├── user-behavior/
└── system-behavior/
1 | |
项目根目录/
├── AGENTS.md # 多 Agent 编排配置(项目结构、模块协作、服务接口)
├── CLAUDE.md # 单 Agent 行为规范(编码规范、行为准则)
├── .claude/
│ └── rules/ # 场景化规则(代码审查、测试生成等精细化规则)
│ ├── review.md
│ ├── test.md
│ └── doc.md
└── .specs/ # SDD 规范目录
├── prd/
├── user-behavior/
└── system-behavior/
1 | |
┌────────────────────────────────────────┐
│ AGENTS.md → “协作层面” │
│ 解决:谁来做?模块间如何协作? │
├────────────────────────────────────────┤
│ CLAUDE.md → “个体层面” │
│ 解决:单个 Agent 应该遵循什么规范? │
├────────────────────────────────────────┤
│ rules/ → “场景层面” │
│ 解决:特定场景下如何行为? │
└────────────────────────────────────────┘
**一句话记忆**:
- **AGENTS.md** = 告诉**多个** Agent "谁写哪部分、怎么对接"
- **CLAUDE.md** = 告诉**一个** Claude "你该怎么写代码"
- **rules/** = 告诉 Agent "遇到这种情况,执行那个规则"
在 SDD 的实践中,这三者不是互斥的,而是互补的。AGENTS.md 提供宏观的协作框架,CLAUDE.md 提供微观的个体规范,rules/ 提供灵活的场景应对。理解它们的边界,才能构建高效的 AI 协作体系。
---
**参考阅读**:
- [SDD 与超级个体:AI 时代的人机协作范式](/2026/03/12/SDD与超级个体-AI时代的人机协作范式/)
- [OhMyOpenCode 官方文档](https://github.com/opensoft/oh-my-opencode)
- [Claude Code 官方文档](https://docs.anthropic.com/en/docs/claude-code)




