拿到 Codex 之后大部分人第一件事是装 CLI、配模型然后丢一句 prompt 让它自己干活。但真正跑到生产项目上你会发现决定体验的不是模型智商而是三件小事审批怎么设、沙箱开多严、AGENTS.md 写没写。审批、沙箱、AGENTS.md 这三个变量各有两三个档位排列组合下来正好 12 种选错组合的直接后果就是两边挨骂——沙箱太松AI 把系统文件改了审批太严每步都要点确认你等于付着 API 费用当打字员。这篇文章我把自己在 Codex Harness社区常见版本DeepSeek Harness / DSH 这类工作流插件也算在内上实际跑过的组合矩阵整理出来按“审批模式 × 沙箱等级 × AGENTS.md 策略”拆成 12 种配置。每种配置都会给到适用场景、风险等级和参考配置片段你可以直接对着抄作业。1. 先把三个变量拆明白1.1 审批AI 的每一个动作谁来签字审批解决的是“AI 想做事但能不能直接做”的问题。Codex CLI 以及套了 Harness 的工作流里审批通常分三档全手动审批AI 每次调用工具比如改文件、跑命令、调接口都要等你输入 y/n。安全性最高但人肉成本也最高适合第一次接触某个仓库、或者操作包含不可逆步骤的场景。建议模式AI 先把动作列出来你确认后它再批量执行。中等信任度日常开发用得最多。改哪些文件、跑什么命令都在执行前过目一遍。全自动审批AI 拿到任务后直接执行不弹任何确认框。没有人工干预跑得最快但只适合低风险任务、CI 流水线或者一次性可丢弃环境。我见过不少人在第一个项目就开全自动结果 AI 顺着测试失败的建议把 package.json 里几个依赖版本顺手改了把整个项目搞崩。审批本质上是一种“操作审计”不只是拦住风险也是给后续排查留证据。Harness 的实现里审批日志往往和对话记录一起落盘这点在多人协作时非常有用。1.2 沙箱AI 的权限边界沙箱解决的是“AI 能碰到什么资源”的问题。和审批的“先问再做”不同沙箱是硬边界越界动作直接失败。常用两档只读沙箱工作区内所有文件只允许读取写操作一律拒绝。适合让 AI 做代码 review、架构分析、补丁预览这类不影响原文件的活儿。工作区可写沙箱允许 AI 在项目目录内增删改文件但项目目录之外的系统路径、环境变量、全局命令仍然受控。日常编码、跑测试、批量重构都靠这一档。Codex 里其实还有更高的权限档位等价于“无沙箱”或者“全访问”我强烈建议不要在工作机常开。真要全权限也应该把代码放进一次性容器里跑让容器本身成为沙箱边界。另外社区讨论“沙箱”时经常类比支付沙箱、业务审批流里的沙箱环境核心思想是一致的隔离不确定的操作防止“测试时没问题、上线就出事”这种连锁反应。1.3 AGENTS.md给 AI 的上岗说明书AGENTS.md 是放在项目根目录也可以放子目录的指令文件相当于把平时口头交代给 AI 的上下文沉淀成项目资产。它不是 README 的替代品而是专门写给 AI 代理看的操作手册。一份好用的 AGENTS.md 应该包含五类内容项目一句话简介和架构拓扑构建、测试、代码生成的准确命令代码风格、目录约定、命名规则明确禁止做的事比如“不要动 migrations 目录”“不要自动升级依赖”AI 完成任务后的自检清单比如“改完必须跑哪些测试”为什么非要单独搞一个 AGENTS.md 而不在 prompt 里写因为 prompt 每次对话都要带长度有限还容易忘AGENTS.md 放在仓库里AI 进项目就能读到团队每个人共享同一份规范代码评审时也有据可查。Harness 这类控制层通常会额外做一层“全局 AGENTS.md 项目 AGENTS.md”的合并加载全局放通用行为准则项目放领域规则覆盖顺序越靠后优先级越高。2. 12 种组合怎么快速选2.1 组合矩阵速查表我把审批分为 A1 全手动、A2 建议模式、A3 全自动三档沙箱分为 S1 只读、S2 工作区可写两档AGENTS.md 分为 G1 不启用、G2 启用且完整编写两档一共 12 种组合。选型时最推荐关注“场景”和“风险”两列组合审批沙箱AGENTS.md典型场景风险评级推荐度C01 A1/S1/G1全手动只读不用快速浏览陌生项目、纯阅读极低3/5C02 A1/S1/G2全手动只读完整外部代码安全审计、教学演示极低4/5C03 A1/S2/G1全手动工作区写不用新仓库第一次试跑 AI 工具低3/5C04 A1/S2/G2全手动工作区写完整核心生产库、多人协作中5/5C05 A2/S1/G1建议只读不用技术选型对比、思路探索极低4/5C06 A2/S1/G2建议只读完整代码评审辅助、安全扫描低4/5C07 A2/S2/G1建议工作区写不用个人小项目、一次性脚本中3/5C08 A2/S2/G2建议工作区写完整日常迭代、中型项目开发中5/5C09 A3/S2/G1全自动工作区写不用内部工具批处理、临时任务中高2/5C10 A3/S2/G2全自动工作区写完整CI/CD 自动修复、定时生成中高4/5C11 A1/S2/G1人工兜底全手动工作区写不用大型重构但缺文档的旧仓库中高3/5C12 A3/S1/G2全自动只读完整定时巡检、生成报告、同步文档低4/5注意C11 我特意点名了“老仓库没有 AGENTS.md”的场景。真正的生产项目我会先花二十分钟写一份最基础的 AGENTS.md把目录结构和禁止操作写进去这比审批档位更重要。2.2 高频场景的选型逻辑拿到一个项目做配置时我基本按三个问题过滤你信任这个代码仓库吗信任度低沙箱就开只读S1让 AI 先出方案再说。信任度中高才开工作区写S2。这个需求可逆吗不可逆的操作比如改数据库、发通知、删文件审批必须全手动A1。纯生成新文件、补文档可以放宽到 A2 甚至 A3。你在现场盯还是丢后台跑人在现场用 A2 最舒服既有把控感又不会太累。人不在现场只能接受 A3但 AGENTS.md 必须足够严格把各种边界条条写清楚。如果非要给一个通用的“无脑起点”个人项目选 C07A2/S2/G1即可团队项目选 C08A2/S2/G2CI 选 C10A3/S2/G2。这个顺序也是我自己的演进路径最开始用 C01 读别人的仓库后来写自己的仓库用 C07接团队项目后一直稳定在 C08需要自动化时才切 C10。2.3 为什么不是“越安全越好”你可能觉得 C01 最安全那就一直用 C01 好了。实际上长期用 C01 会让你忽略一个问题审批疲劳。当一个仓库里 AI 每次要问你六七个确认你迟早会机械地一路 y这时候审批等于虚设反而比直接开 A3 更危险因为你还以为自己有防护。所以我做配置时有个原则宁可开只读沙箱也不要只依赖高频审批。读操作搞不坏东西写操作让 AI 随便试才有风险。低信任场景哪怕审批用 A1沙箱也一定先落在 S1。高信任场景AY省 2 或 A3 反而让人保持警觉因为你知道接下来没有确认框兜底会更认真地看 diff。3. 落地配置实战3.1 Codex 与 Harness 的环境准备先说明一点我用的是 Codex CLI 外加社区常见的 Harness 工作流插件做控制层在 DeepSeek Harness 这类方案里通常还包含了模型 endpoint 和工具调用格式的适配。安装部分不展开废话步骤基本是# 安装 Codex CLI以常见 npm 方式为例 npm install -g openai/codex # 确认版本 codex --version # 初始化 Harness 工作目录 harness init初始化完成后Harness 会生成一个配置文件目录常见的路径包括~/.codex/config.toml和 Harness 自己的harness.yaml或dhs.yaml。我习惯把审批、沙箱、AGENTS.md 的加载规则都集中放在这个配置文件里而不是靠命令行参数临时传入。如果你用的是 DeepSeek Harness 这类插件还需要在配置里声明模型提供方比如把 provider 指到 DeepSeek 的 API 兼容地址并设置对应的模型名称与上下文长度。审批和沙箱是 Codex/Harness 层面的能力接什么模型不影响这两项配置但模型本身的工具调用规范会影响“建议模式”里动作列表的生成质量。3.2 三个变量的配置方法逐项演示下面用一个简化后的config.yaml示例说明字段含义具体字段名以你所用 Harness 版本的模板为准# 审批 approval: mode: suggest # manual / suggest / auto # 沙箱 sandbox: mode: workspace-write # read-only / workspace-write / danger-full-access # AGENTS.md agents: enabled: true search_paths: - AGENTS.md - docs/AGENTS.md merge_global_first: true # 先加载全局规则再加载项目规则逐项解释审批 mode 设为 manual等价于每个动作都要确认设为 suggestAI 每次先汇总动作再执行设为 auto完全无人值守。Harness 里可能还有“dangerous commands”细分列表比如允许普通命令自动跑但rm -rf这类必须手动确认。沙箱 mode 为 read-only 时AI 一旦尝试写文件会直接收到错误workspace-write 时AI 的工作目录默认绑定当前项目写到外部路径同样失败。agents 这段控制的是加载哪些 AGENTS.md 文件以及合并顺序。merge_global_first 开启后全局 AGENTS.md 里写的“禁止删除未跟踪文件”会被项目级规则继续加强而不是被项目级覆盖。代码块里的配置并不是“英文多就一定好”关键是字段能真正被 Harness 解析。建议改完配置后跑一下harness doctor之类的诊断命令确认所有插件条目正常激活避免出现“改了配置但没生效”的空转。3.3 三套可以直接抄作业的完整配置第一套只读分析环境对应 C02A1/S1/G2。approval: mode: manual sandbox: mode: read-only agents: enabled: true search_paths: [AGENTS.md]这套适合被拉去 review 别人的代码仓、给不熟悉的模块做架构梳理。因为只读AI 改不了任何文件审批又全部手动安全性拉满。缺点也很明显AI 发现 bug 后只能把修复方案打在回复里你得自己动手。第二套日常开发环境对应 C08A2/S2/G2。approval: mode: suggest require_confirmation: - rm:* - git:*reset* sandbox: mode: workspace-write agents: enabled: true search_paths: [AGENTS.md, docs/AGENTS.md]这是我用得最多的一套。AI 能改项目内文件、能跑测试但删除文件和 git 硬回退类操作仍要确认。实际体感是普通重构几乎不被打断碰到高危命令时我会停下看一眼。第三套CI 自动执行环境对应 C10A3/S2/G2。approval: mode: auto sandbox: mode: workspace-write agents: enabled: true search_paths: [AGENTS.md] max_attempts: 8C10 必须在 AGENTS.md 非常完善的前提下使用。我在 CI 里用 C10 的典型任务是扫描未通过 lint 的文件并自动修复、生成版本更新的 changelog。因为每次跑完代码会被 git diff 检查即使 AI 出错也能在合并到主干前拦住风险可控。3.4 一张图看透组合迁移路径很多人问我推荐路径这里用文字版路线说明只读分析C01/C02→ 个人项目建议模式C05/C07→ 团队项目建议模式加完整 AGENTS.mdC08→ CI 自动化C10/C12。每一步的等级提升都需要一个前置条件前一步的失败率足够低你才敢放开下一级权限。4. 常见问题与避坑实录4.1 AGENTS.md 没被加载最常见的坑是文件命名大小写或者路径不对。Codex 及多数 Harness 默认只认根目录下的AGENTS.md大小写敏感放在docs/AGENTS.md需要在搜索路径里显式声明。还有一种情况是子目录里也有 AGENTS.md但合并顺序反了导致子目录规则覆盖了根目录的禁止项。我吃过亏项目根目录写了“禁止删除 migrations”结果子目录 AGENTS.md 没写这条AI 在子目录里自动跑清理脚本时差点把旧迁移文件删了。解决办法是在根目录 AGENTS.md 里写明“任何子目录规则不得覆盖本文件的禁止项”并把 merge 顺序固定为根目录优先。4.2 审批与沙箱的冲突只读沙箱 让 AI 修 bug 是经典矛盾。AI 读完全部代码信心满满说要改三处结果写操作全被沙箱拦截最后只输出了一段伪代码。这不是 AI 蠢是配置本身拒绝了任务。如果你真的要 AI 产出可提交的修复至少用工作区可写沙箱如果坚持只读那就把任务目标限定成“只给出修改建议”别让 AI 尝试写文件。4.3 Harness 插件加载异常热词里经常提到类似harness failed to load plugins、entries did not activate的启动报错。我的排查顺序是先看插件目录是否存在且路径正确再确认插件和 Harness 主版本是否兼容DeepSeek Harness 的小版本迭代较快跨版本升主版本容易出现插件不激活最后清掉缓存重启一次Java 系的 Harness 插件偶尔有首次加载不完整的问题重启能解决大多数“玄学”。如果还是不行把日志里的 plugin ID 和版本号贴到社区提问比贴整段堆栈有效得多。4.4 后端模型切换对审批、沙箱行为的影响把 Codex 接入 DeepSeek 这类模型后审批和沙箱的硬边界没变但“建议模式”的体验会变。原因在于建议模式依赖模型生成完整的动作列表如果模型工具调用格式不规范可能出现列表和实际操作不一致看起来 AI 在一个建议单里列了 3 个动作执行时却跑出 5 个。我处理的办法是把配置里的 require_confirmation 范围加大尤其是涉及sed、python -m这种参数高度自由的命令。另外长上下文模型容易忽略较早的 AGENTS.md 规则我会在 AGENTS.md 的禁止项部分重复最关键的两三条而不是只写一遍。4.5 问题速查表症状可能原因解决思路AI 改不了任何文件沙箱是只读切 workspace-write或调整任务为目标输出AI 执行动作和列出的不一致模型工具调用格式不稳定改全手动审批或扩大高危命令确认名单AGENTS.md 规则被忽略根目录被子目录覆盖固定合并顺序禁止子目录覆盖核心禁止项全自动审批下改坏代码AGENTS.md 缺少自检清单补齐测试命令和“完成后必须跑”的校验项Harness 启动报插件数 0插件路径/版本不匹配检查插件目录、版本兼容性清理缓存重启5. 我的配置习惯与一个建议我最早也是“全手动 无沙箱 不写 AGENTS.md”的配置跑了一个多月后来被 AI 在只读任务里反复挑毛病逼着切到了工作区可写再后来因为 CI 自动化需求补齐了 AGENTS.md。现在回头看配置升级的本质是信任积累。你每放一档权限都应该对应着一份更完整的 AGENTS.md 和更多的测试兜底。如果在用 Codex Harness我建议你先按 C02 读三天代码再切到 C08 写三天代码感受一下“建议模式”和“全手动”在实际任务中的效率差然后再决定要不要上 C10。审批和沙箱是保险AGENTS.md 才是让 AI 少犯错的根。把项目规则写清楚比把所有权限都关紧更实用。