最近在折腾 LLM CLI(Codex / Claude Code / Gemini CLI 这类)时,发现“自动执行”并不该只有两档:要么每步都问,要么直接放飞。以 Codex 为例,它把自动化拆成了两种更实用的模式:
1)受控自动化:--full-auto(自动但有边界)
核心是“项目内放开,越界刹车”:
- 工作区内可自动改文件、跑命令,减少频繁确认
- 涉及工作区外文件(如
~/.zshrc、/etc/hosts)或网络访问时,会停下来让你确认
适合日常主力开发机:效率高,同时关键风险点可控。
2)极限自动化:--dangerously-bypass-approvals-and-sandbox(--yolo)
核心是“跳过审批 + 关闭沙箱”:
- 不问、不拦、几乎全放开
- 风险不只在代码改坏(这个可回滚),更在系统配置、安装软件、联网拉依赖等 Git 管不到的动作
只建议在 Docker/虚拟机/一次性环境短时使用,用完即销毁;不要在主力机和生产环境开启。
补充:想少弹窗,不等于要关沙箱
如果你只是嫌确认太频繁,可以保留 workspace 沙箱,只调整审批策略(例如项目内少问,越界仍拦)。
一句话结论
日常用“受控自动化”,实验才用“YOLO”;能开沙箱就别关,能保审批就别关。