@@ -202,6 +202,21 @@ AI 会:
202202| OpenCode | ` AGENTS.md ` | 项目根目录(或 ` ~/.config/opencode/AGENTS.md ` ) |
203203| Codex CLI | ` AGENTS.md ` | 项目根目录(或 ` ~/.codex/AGENTS.md ` ) |
204204
205+ #### 各 AI 工具加载机制对比
206+
207+ | 特性 | OpenCode | Claude Code | Gemini CLI | Codex CLI |
208+ | ---------------| ------------------------------------------| -----------------------------| ------------------| -------------|
209+ | ** 文件优先级** | ` AGENTS.md ` > ` CLAUDE.md ` > ` CONTEXT.md ` | ` .claude/CLAUDE.md ` | ` AGENTS.md ` | ` AGENTS.md ` |
210+ | ** 全局配置** | ` ~/.config/opencode/ ` + ` ~/.claude/ ` | ` ~/.claude/ ` | ` ~/.gemini/ ` | ` ~/.codex/ ` |
211+ | ** 子目录加载** | ✅ Read 工具自动向上遍历 | ✅ Read 工具触发 | ✅ 启动时级联(需在子目录启动) | ❌ 不支持 |
212+ | ** 去重机制** | ✅ 多层去重(system/already/claimed) | ✅ 去重 | ❌ 简单拼接 | - |
213+ | ** 远程配置** | ✅ 支持 HTTP URL | ❌ 不支持 | ❌ 不支持 | ❌ 不支持 |
214+ | ** 多模型支持** | ✅ 5+ 种模型提示词 | ❌ 固定 Claude | ❌ 固定 Gemini | ❌ 固定 OpenAI |
215+ | ** Agent 提示词** | ✅ 支持自定义 Agent | ✅ 内置 Agent(explore/general) | ❌ 不支持 | ❌ 不支持 |
216+ | ** 触发工具** | Read(其他工具不触发) | Read | cd(目录切换) | - |
217+ | ** 持久化** | 分层:永久(启动时)+ 临时(Read时) | 分层:永久 + 临时 | 永久(启动时级联) | 永久(启动时) |
218+ | ** 配置复杂度** | ⭐⭐⭐⭐⭐(最复杂) | ⭐⭐⭐ | ⭐⭐ | ⭐ |
219+
205220#### Claude Code 加载机制(实验验证)
206221
207222** 测试方法** :在不同位置创建带唯一标识符的 CLAUDE.md 文件(.claude/rules/、子目录、~ /.claude/),观察 Claude 接收到的系统上下文。
@@ -290,7 +305,91 @@ AI 会:
290305
2913064 . ** 使用技巧**
292307 - 需要子目录规则时,必须** 在该目录启动 Codex CLI**
293- - 或在 Prompt 中明确指示:“请读取 ` path/to/AGENTS.md ` 并严格遵守其中规则”
308+ - 或在 Prompt 中明确指示:"请读取 ` path/to/AGENTS.md ` 并严格遵守其中规则"
309+
310+ #### OpenCode 加载机制(基于源码分析)
311+
312+ ** 测试方法** :基于 OpenCode 开源代码(packages/opencode/src/session/)的实现逻辑分析
313+
314+ ** 核心结论** :
315+
316+ OpenCode 的配置注入机制是** 最复杂且最智能** 的,原因:
317+ 1 . ** 支持多模型** (Claude、GPT、Gemini、Qwen 等),每个模型有独立的系统提示词
318+ 2 . ** 分层注入** (7 层提示词架构)
319+ 3 . ** 动态按需加载** (Read 工具自动向上遍历)
320+ 4 . ** 支持远程配置** (HTTP URL + glob 匹配)
321+
322+ ** 1. 启动时加载(永久生效)**
323+
324+ ** 加载优先级** (找到一个就停止):
325+ - 项目级:` AGENTS.md ` > ` CLAUDE.md ` > ` CONTEXT.md `
326+ - 全局级:` ~/.config/opencode/AGENTS.md ` > ` ~/.claude/CLAUDE.md ` > ` $OPENCODE_CONFIG_DIR/AGENTS.md `
327+ - 用户自定义:` opencode.json ` 中的 ` config.instructions ` (支持 glob 和 HTTP URL)
328+
329+ ** 关键特性** :
330+ - ✅ 按优先级去重(项目级和全局级各取一个)
331+ - ✅ 支持远程配置(HTTP URL,5 秒超时)
332+ - ✅ 支持 glob 匹配(如 ` packages/*/AGENTS.md ` )
333+
334+ ** 2. 按需加载(临时生效)**
335+
336+ ** 触发时机** :首次 Read 工具读取某个目录下的文件时
337+
338+ ** 行为** :
339+ - 从当前文件目录向上遍历到项目根目录
340+ - 查找每级目录的 ` AGENTS.md ` /` CLAUDE.md ` /` CONTEXT.md `
341+ - 通过 ` <system-reminder> ` 标签注入到 Read 工具输出中
342+ - 三层去重:不在系统提示词中 + 不在已加载列表 + 不在当前消息已加载
343+
344+ ** 关键特性** :
345+ - ✅ 智能去重(避免重复注入)
346+ - ✅ 向上遍历(自动加载父目录配置)
347+ - ✅ 消息级缓存(同一消息不重复)
348+ - ⚠️ 只有 Read 工具触发(Write/Edit/Bash 不触发)
349+
350+ ** 3. 多模型支持**
351+
352+ ** 模型特定提示词** :
353+ - Claude:` prompt/anthropic.txt `
354+ - GPT/O1/O3:` prompt/beast.txt `
355+ - Gemini:` prompt/gemini.txt `
356+ - Codex(GPT-5):` prompt/codex_header.txt `
357+ - 其他(Qwen 等):` prompt/qwen.txt `
358+
359+ ** 特殊处理** :
360+ - Codex 通过 ` options.instructions ` 发送系统提示词
361+ - 其他模型通过 ` system ` 消息发送
362+ - Agent 自定义提示词优先级高于模型默认提示词
363+
364+ ** 4. 配置层次总结**
365+
366+ | 加载阶段 | 加载位置 | 触发时机 | 持久性 |
367+ | -----------| -------------------------| -------------| ----------|
368+ | 模型提示词 | ` prompt/*.txt ` | 启动时/切换模型时 | 永久 |
369+ | 环境信息 | 动态生成(工作目录、平台、日期) | 每次对话 | 每次对话 |
370+ | 全局配置 | ` ~/.config/opencode/ ` 等 | 启动时 | 永久 |
371+ | 项目配置 | 项目根目录 ` AGENTS.md ` | 启动时 | 永久 |
372+ | 子目录配置 | 子目录 ` AGENTS.md ` | Read 工具首次读取 | 临时 |
373+ | 远程配置 | HTTP URL | 启动时 | 永久 |
374+ | Agent 提示词 | ` agent.prompt ` 字段 | 执行 Agent 时 | 当前 Agent |
375+
376+ ** 5. 文件组织建议**
377+
378+ ```
379+ project/
380+ ├── AGENTS.md # 核心配置(所有模型共享)
381+ ├── .claude/CLAUDE.md # Claude Code 专用(可选)
382+ ├── packages/
383+ │ ├── api/AGENTS.md # API 模块规则(Read 时加载)
384+ │ └── web/AGENTS.md # Web 模块规则(Read 时加载)
385+ └── opencode.json # 可选:远程配置 + glob
386+ ```
387+
388+ ** 6. 使用技巧**
389+
390+ - ** 节省 token** :将通用规则放根目录,模块特定规则放子目录(按需加载)
391+ - ** 远程配置** :适合公司统一规范或开源社区规则,但关键规则建议本地存储
392+ - ** 多模型项目** :利用 OpenCode 的多模型支持,为不同模型配置不同提示词
294393
295394### ClaudeCode 配置
296395
0 commit comments