# Codex 高阶玩法

> Codex CLI 进阶玩法 — AGENTS.md、配置 Profile、config.toml 进阶、MCP、非交互 exec、审批与沙箱、常见工作流。

URL: https://docs.passion8.cc/docs/codex/tips
Language: zh-CN
Publisher: Passion8

把 Codex 用顺手,关键在配好审批策略、给足项目上下文,再把 Profile、MCP 和非交互模式利用起来。命令速查见 [命令大全](https://docs.passion8.cc/docs/codex/commands)。

## AGENTS.md 项目说明

在项目根放 `AGENTS.md`,Codex 会读取它了解项目约定,类似 Claude Code 的 `CLAUDE.md`。

```markdown title="AGENTS.md"
# 项目约定

技术栈:Python + FastAPI
包管理:uv(不要用 pip)

## 命令
- 启动:uv run uvicorn app:main
- 测试:uv run pytest

## 风格
- 类型注解必须写
- 改完跑 pytest 确认通过
```




`AGENTS.md` 也是分层的:`~/.codex/AGENTS.md` 放个人全局偏好,项目根的随仓库共享,子目录可放更细的约定。会话里用 `/init` 可快速生成初稿。




## config.toml 进阶

几个常用项(完整见 [CLI 配置](https://docs.passion8.cc/docs/codex/config)):

| 配置项 | 作用 |
| --- | --- |
| `model` | 默认模型,以模型广场实际可用为准 |
| `model_reasoning_effort` | 推理强度:`low` / `medium` / `high` |
| `approval_policy` | 审批策略:`on-request` / `never` |
| `sandbox_mode` | 沙箱:`read-only` / `workspace-write` / `danger-full-access` |
| `web_search` | 联网搜索:`live` 开启 |

启动时还能用 `-c key=value` 临时覆盖任意配置,例如 `codex -c model_reasoning_effort=high`,不必改文件。

## 用 Profile 一键切换配置

把不同场景的配置打包成 Profile,用 `--profile` 切换,免去反复改 `config.toml`。

```toml title="~/.codex/fast.config.toml"
# Profile 使用独立文件中的顶层配置键
model = "gpt-6-sol"
model_reasoning_effort = "high"
approval_policy = "on-request"
sandbox_mode = "workspace-write"
```

```bash
codex --profile fast "把这个模块补上测试"
```

## 用 MCP 接入外部工具

通过 MCP(Model Context Protocol),Codex 能调用外部工具与数据源 —— 浏览器、数据库、内部 API 等。在 `config.toml` 里声明服务器即可:

```toml title="~/.codex/config.toml"
[mcp_servers.my-tool]
command = "npx"
args = ["-y", "@scope/my-mcp-server"]
# env = { API_KEY = "..." }
```

接好后会话里用 `/mcp` 查看可用工具与连接状态。




MCP 服务器会获得相应访问能力,只接入可信来源。




## 非交互模式:脚本与 CI

`codex exec` 不进入 TUI,直接跑完退出,适合放进脚本、git hook 或 CI:

```bash
# 一次性任务
codex exec "修复 lint 报错并跑一遍测试"

# 配合管道:把 diff 交给它总结
git diff --staged | codex exec "用一句中文总结这些改动作为 commit message"
```

无人值守时务必配合收紧的审批 / 沙箱(如 `--sandbox read-only` 或限定 `workspace-write`),别直接全放开。

## 审批与沙箱

Codex 的安全模型由 `approval_policy` + `sandbox_mode` 共同决定:



- [保守(推荐起步)](https://docs.passion8.cc/): approval_policy = on-request,每个有风险动作都问你。适合陌生项目。
- [高效(个人项目)](https://docs.passion8.cc/): 放宽审批 + workspace-write,在项目目录内自由读写,出界才问。
- [全自动(谨慎)](https://docs.passion8.cc/): --dangerously-bypass-approvals-and-sandbox 完全放开,仅限可信 + 有 git 兜底的目录。



命令行也能临时指定:`--full-auto` 已弃用,新脚本显式使用 `--sandbox workspace-write --ask-for-approval on-request`;`-a`(`--ask-for-approval`)与 `-s`(`--sandbox`)分别覆盖审批与沙箱级别;`-C <目录>` 指定工作目录。




全自动模式不要在陌生仓库、生产目录或含密钥的目录使用。详见 [安全说明](https://docs.passion8.cc/docs/security)。




## 常见工作流







### 让它先理解

`codex "解释这个项目的结构和入口"`,确认它理解对了再继续。






### 描述目标、要计划

复杂改动先要方案。方案不对在这步纠正,成本最低。必要时用 `/model` 调高推理强度。






### 执行并自检

确认方案后让它动手,改完让它跑测试 / 构建。






### git diff 复查

用 `/diff` 看改动,不满意就回滚重来。始终在版本控制下工作。






## 接着看



- [命令大全](https://docs.passion8.cc/docs/codex/commands): 斜杠命令、会话恢复、审批沙箱开关速查。
- [Claude Code 高阶玩法](https://docs.passion8.cc/docs/claude-code/tips): 换个 CLI?看 Claude Code 的进阶玩法。

