最佳实践
官方总结的 Codex 最佳实践
- 工程师工作的重点转向了系统、架构和杠杆作用:将更大的目标拆解为更小的构建模块(设计、代码、评审、测试等),提示 Agent 去构建这些模块,并逐步解锁更复杂的任务
- 提高应用程序的可读性,避免人类的时间和注意力成为限制因素;通过令应用程序的 UI、日志和应用指标等内容对 Agent 直接可读,从而为 Agent 增加更多功能
- 将 AGENTS.md 视为内容目录,提供项目的地图/导览而不是说明书;实现渐进式披露:Agent 从一个小而稳定的切入点开始,并被指导下一步该去哪里查看,而不是一开始就被淹没
- Agent 在上下文中访问不到的东西,对它来说就不存在;组织和展示正确的信息,好令 Agent 能够基于这些信息进行推理
- 在中央层面强制执行边界,在本地层面允许自主权;Agent 在具有严格边界和可预测结构的环境中最为高效;Agent 生产的代码不需要符合人类的风格偏好,只需要确保正确/可维护就是合格的
- 在一个 Agent 吞吐量远超人类注意力的系统中,纠错成本低,而等待成本高;因此需要压缩 Pull Request 的生命周期,避免阻碍整体进展
- 建立了一个循环清理流程,保持代码库的可读性和一致性;技术债务就像一笔高息贷款:不断地以小额贷款的方式偿还债务,总比让债务不断累积,再痛苦地一次解决要好得多
常用配置
approval_policy:never;命令审批策略,never= 不弹确认,on-request= 按上下文请求,untrusted= 更保守。sandbox_mode:workspace-write;沙箱级别,read-only= 只读,workspace-write= 可写工作区,danger-full-access= 几乎不设限。tool_output_token_limit:12000;单次工具输出写入上下文的 token 预算,过小会截断,过大浪费上下文。model_auto_compact_token_limit:350000;自动触发历史压缩的 token 阈值,过低会过早压缩,过高会顶满上下文。model_context_window:1000000;当前模型可用上下文窗口大小,用于压缩与预算估算。allow_login_shell:true;是否允许 shell 工具使用 login shell 语义,打开后会读取更多用户环境。[shell_environment_policy].inherit:all;子进程继承环境变量的基线,all最方便,none最干净。[shell_environment_policy].set.LANG:en_US.UTF-8;无条件注入到子进程的环境变量,常用于统一编码与行为。[features].enable_request_compression:true;启用请求压缩,减少传输体积与上下文带宽占用。[features].shell_snapshot:true;缓存 shell 环境快照,加速重复命令。[features].powershell_utf8:true;强制 PowerShell 走 UTF-8,Windows 下非常建议开。[agents].max_threads:32;最多同时存在多少个 agent 线程
AGENTS.MD
在项目根目录,对 Agent 进行全局性说明和约束
示例模版:
# AGENTS.md
## How to run
- Install: (fill me)
- Test: (fill me)
## Rules
- Make the smallest change that fixes the issue.
- Always show a plan before editing.
- Before finishing: run tests (or explain why you cannot).
- Never commit secrets (.env, keys) or credentials.
节约 token
(1)设置 Process_narration=false,屏蔽中间的规划步骤输出