# Codex CLI(OpenAI)配置与上下文
本页聚焦 Codex CLI 的**配置入口**、`AGENTS.md`/project-doc/skills 的**加载与优先级**、以及 MCP/权限(sandbox + approvals)机制,并对接本仓库结构。
证据:`docs/agent-tools-contexts/_raw/codex/`
## 1) 配置文件位置与覆盖顺序
官方说明的配置文件:
- 用户配置:`~/.codex/config.toml`
- 项目配置:`codex.toml`
覆盖优先级:CLI 参数 → 项目 `codex.toml` → 用户 `~/.codex/config.toml`,并可用 `--config` 指定自定义配置路径。参见 `docs/agent-tools-contexts/_raw/codex/developers.openai.com__codex__config__basics__2026-02-05.md`。
## 2) 项目文档(project doc)与 AGENTS.md
Codex 会寻找“项目文档”用于上下文注入;默认回退文件名列表包含 `AGENTS.md` 与 `CLAUDE.md` 等。参见 `docs/agent-tools-contexts/_raw/codex/developers.openai.com__codex__config__agents-md__2026-02-05.md`。
可显式指定项目文档:
- `--project-doc path/to/file.md`
- `CODEX_PROJECT_DOC=path/to/file.md`
建议:
- 复用同一份项目指令文件:优先维护 `AGENTS.md`(Codex/Cursor)并提供 `CLAUDE.md`(Claude Code)做兼容入口。
- 把“高变更、只对本机有效”的内容放到本机配置(避免污染团队共享指令)。
补充(来自当前运行时的 `AGENTS.md` 规范,非官网网页摘录):
- `AGENTS.md` 对其所在目录树生效;更深层目录的 `AGENTS.md` 优先级更高。
- 当你修改某文件时,需要遵守该文件路径所在 scope 的 `AGENTS.md` 指令。
## 3) approvals / sandbox(命令执行权限)
Codex 提供 `approval_policy`(是否需要用户批准):
- `untrusted`:每条命令都询问
- `on-request`:仅在你明确要求时询问
- `on-failure`:仅当命令失败时询问
- `never`:从不询问
参见 `docs/agent-tools-contexts/_raw/codex/developers.openai.com__codex__config__rules__2026-02-05.md`。
命令规则匹配要点:
- 命令会按 `|`、`&&`、`||`、`;`、`(...)`、`$(...)` 等控制操作符拆成多个 segment;每个 segment 独立评估。
- “prefix rule” 只匹配某个 segment 的起始前缀。
这点对编写“自动批准某类命令”的规则很关键(避免误把 `git pull | tee ...` 当成一条)。
## 4) MCP(外部工具)
Codex 的 MCP servers 在配置里声明(示例节选):
```toml
[mcp_servers.server-name]
command = "uvx"
args = ["mcp-server-git"]
env = { "GIT_SIGNING_KEY" = "${GIT_SIGNING_KEY}" }
```
参见 `docs/agent-tools-contexts/_raw/codex/developers.openai.com__codex__config__mcp__2026-02-05.md`。
## 5) Skills(技能库)
官方给出的 skills 搜索路径:
- 项目:`.codex/skills/`
- 用户:`~/.codex/skills/`
- 管理员:`/etc/codex/skills/`
参见 `docs/agent-tools-contexts/_raw/codex/developers.openai.com__codex__skills__2026-02-05.md`。
与本仓库对接建议:
- 本仓库把 skills 统一收敛在 `skills/`,投放目标由 `config.toml` target 与目标目录实时链接状态共同决定(不再依赖 `skills/registry.json`)。
- 由 llman(或你的同步脚本)把需要投放给 Codex 的技能同步到 `~/.codex/skills/`(用户级)或业务仓库的 `.codex/skills/`(项目级)。
## 6) 与本仓库现状对应
- `prompt/codex/`:已提供 Codex CLI 的输出风格提示(中/英);可作为 project doc 的候选内容(通过 `--project-doc` 或 `CODEX_PROJECT_DOC` 注入)。
- `config.yaml`:`skills.dir: $LLMAN_CONFIG_DIR/skills`(llman 侧的 skills 目录约定)。
## 7) 用 llman 注入(prompts / AGENTS)
llman 的 `llman x codex prompts gen` 支持把同一份模板注入到 Codex 的不同入口(scope 和 target 可组合):
- custom prompts(按模板名写入):`$CODEX_HOME/prompts/<name>.md` 或 `<repo_root>/.codex/prompts/<name>.md`
- project doc(聚合写入,固定文件名):`$CODEX_HOME/AGENTS.md` / `<repo_root>/AGENTS.md`
- 临时覆盖可用 `AGENTS.override.md`(llman 通过 `--override` 写入)
示例:
```bash
# 默认:项目 scope + prompts target(写入 <repo_root>/.codex/prompts/draftpr.md)
llman x codex prompts gen --template draftpr
# 写入全局 custom prompt(写入 $CODEX_HOME/prompts/draftpr.md)
llman x codex prompts gen --target prompts --scope global --template draftpr
# 写入项目 AGENTS.md(写入 <repo_root>/AGENTS.md)
llman x codex prompts gen --target project-doc --scope project --template common.en
# 写入全局 AGENTS.override.md(写入 $CODEX_HOME/AGENTS.override.md)
llman x codex prompts gen --target project-doc --scope global --override --template common.en
```