5. 上下文工程
AGENTS.md:仓库里的代理 README
AGENTS.md 是 Codex 最重要的长期上下文之一。它适合写团队约定、项目结构、命令、测试方式、Review 标准和禁区。
一个好的 AGENTS.md 不需要长,但要具体:
# AGENTS.md
## 项目结构
- `src/` 是应用代码。
- `docs/` 是正式文档。
- `migrations/` 是数据库迁移,改 schema 必须新增 migration。
## 常用命令
- 安装依赖:`pnpm install`
- 本地开发:`pnpm dev`
- 构建:`pnpm build`
- 测试:`pnpm test`
## 工作约定
- 修改 UI 后必须用浏览器截图检查桌面和移动端。
- 修 bug 前先写清楚复现链路。
- 不要新增依赖,除非现有工具无法完成。
## Review 标准
- 优先找真实 bug、回归风险和缺失测试。
- 不把无关重构混进修复。不要把 AGENTS.md 写成愿望清单。它应该来自真实摩擦:Codex 哪件事做错过两次,就把那条规则沉淀进去。
config.toml:行为默认值
config.toml 适合放个人或项目级默认配置,例如模型、推理强度、sandbox、approval、MCP 服务器和实验功能。个人默认值放 ~/.codex/config.toml,项目可信配置可以放 .codex/config.toml。
常见原则:
- 个人偏好放全局。
- 仓库共识放项目。
- 一次性实验放命令行或当前线程。
- 涉及强权限的配置先小范围试。
不要用配置掩盖任务不清楚。配置解决“怎么工作”,不解决“做什么”。
官方文档与 Context7
技术栈会变,Codex、OpenAI API、Cloudflare Workers、Wrangler 的细节都不能只靠记忆。需要最新技术文档时,优先用官方文档、OpenAI Docs MCP、Cloudflare docs,或者接入 Context7 这类开发文档 MCP。
Context7 的典型配置是:
codex mcp add context7 -- npx -y @upstash/context7-mcp不要先假设 Context7 “没装”或“不可用”。先让 Codex 列出当前线程的工具;如果已经暴露 Context7,就直接用。没有时再检查 MCP 配置、授权和客户端重启状态。团队经常查前端框架、ORM、SDK 或云服务时,再把 Context7 配成 MCP,比每次靠模型记忆稳得多。
上下文不是越多越好
上下文越多,越容易把旧事实、错误假设和无关文件混进去。给 Codex 上下文时要做筛选。
更好的输入:
- “只看这三个文件和这个错误输出。”
- “先不要实现,先比较需求文档和当前代码是否一致。”
- “把生产日志里 500 的 Ray ID 和 Worker 日志对齐。”
- “这张截图是验收标准,改完后重跑截图。”
更差的输入:
- “你看整个项目自己改。”
- “应该就是某个缓存问题。”
- “大概照之前那个项目做。”
- “把所有地方都优化一下。”
记忆与复盘
Codex 可以在对话和本地记忆中保留偏好,但记忆不是当前事实。适合记忆的是用户偏好、项目长期约定、以前踩过的坑;不适合当作当前生产状态、最新价格、最新 API 行为。
每次重大任务结束后,可以让 Codex 做三件事:
- 总结这次任务的根因和解决方案。
- 抽出以后可复用的命令和检查清单。
- 判断是否要更新
AGENTS.md、skill 或项目文档。