Codex 经验总结

最佳实践

官方总结的 Codex 最佳实践

  1. 工程师工作的重点转向了系统、架构和杠杆作用:将更大的目标拆解为更小的构建模块(设计、代码、评审、测试等),提示 Agent 去构建这些模块,并逐步解锁更复杂的任务
  2. 提高应用程序的可读性,避免人类的时间和注意力成为限制因素;通过令应用程序的 UI、日志和应用指标等内容对 Agent 直接可读,从而为 Agent 增加更多功能
  3. 将 AGENTS.md 视为内容目录,提供项目的地图/导览而不是说明书;实现渐进式披露:Agent 从一个小而稳定的切入点开始,并被指导下一步该去哪里查看,而不是一开始就被淹没
  4. Agent 在上下文中访问不到的东西,对它来说就不存在;组织和展示正确的信息,好令 Agent 能够基于这些信息进行推理
  5. 在中央层面强制执行边界,在本地层面允许自主权;Agent 在具有严格边界和可预测结构⁠的环境中最为高效;Agent 生产的代码不需要符合人类的风格偏好,只需要确保正确/可维护就是合格的
  6. 在一个 Agent 吞吐量远超人类注意力的系统中,纠错成本低,而等待成本高;因此需要压缩 Pull Request 的生命周期,避免阻碍整体进展
  7. 建立了一个循环清理流程,保持代码库的可读性和一致性;技术债务就像一笔高息贷款:不断地以小额贷款的方式偿还债务,总比让债务不断累积,再痛苦地一次解决要好得多

常用配置

  • 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,屏蔽中间的规划步骤输出

参考: 工程技术:在智能体优先的世界中利用 Codex

往年同期文章