<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>OpenAI on Kalend's Blog</title><link>https://blog.kalend.top/tags/openai/</link><description>Recent content in OpenAI on Kalend's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Sun, 12 Jul 2026 08:30:00 +0800</lastBuildDate><atom:link href="https://blog.kalend.top/tags/openai/index.xml" rel="self" type="application/rss+xml"/><item><title>Codex CLI 上手：OpenAI 的沙箱安全编程方案</title><link>https://blog.kalend.top/2026/07/12/2026-07-12-codex-cli-sandbox.html/</link><pubDate>Sun, 12 Jul 2026 08:30:00 +0800</pubDate><guid>https://blog.kalend.top/2026/07/12/2026-07-12-codex-cli-sandbox.html/</guid><description>&lt;p&gt;AI 编程 Agent 能执行任意命令，这意味着它也能删库、泄露密钥、安装后门。&lt;strong&gt;信任问题不解决，自主编程就是空谈。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;OpenAI 的 Codex CLI 选择了一条不同的路：不靠&amp;quot;请你信任我&amp;quot;，而是用沙箱把 Agent 关进笼子里。97,000+ Star、Rust 重写、Apache-2.0 开源——这是目前安全设计最完善的终端编程 Agent。&lt;/p&gt;
&lt;h2 id="为什么需要安全编程"&gt;为什么需要&amp;quot;安全编程&amp;quot;
&lt;/h2&gt;&lt;p&gt;AI 编程工具有个天然的取舍：&lt;strong&gt;给的自由越多，风险越大。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Agent 需要执行 shell 命令才能干活——装依赖、跑测试、提交代码。但 shell 命令是无限制的：&lt;code&gt;rm -rf /&lt;/code&gt; 也是合法命令。你给 Agent 一个任务，它可能顺手执行了你没想到的操作。&lt;/p&gt;
&lt;p&gt;已经出过事了。2026 年多个 AI 编程工具被曝出安全问题：沙箱逃逸、权限提升、未授权网络访问。企业用户不敢用，因为一次意外就可能影响生产环境。&lt;/p&gt;
&lt;p&gt;Codex CLI 的答案是：&lt;strong&gt;默认不信任 Agent，用系统级隔离强制约束行为。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="codex-cli-是什么"&gt;Codex CLI 是什么
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;项目&lt;/th&gt;
					&lt;th&gt;值&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;GitHub&lt;/td&gt;
					&lt;td&gt;github.com/openai/codex&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Stars&lt;/td&gt;
					&lt;td&gt;97,204&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;语言&lt;/td&gt;
					&lt;td&gt;Rust（从 TypeScript 重写）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;许可证&lt;/td&gt;
					&lt;td&gt;Apache-2.0&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;开发商&lt;/td&gt;
					&lt;td&gt;OpenAI&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;支持模型&lt;/td&gt;
					&lt;td&gt;GPT-5 系列、codex-1 专用模型&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Codex CLI 是 OpenAI 开源的终端编程智能体。三种形态：CLI 终端、VS Code 插件、Codex Cloud 云端。核心特点是&lt;strong&gt;把安全沙箱做成了系统级能力&lt;/strong&gt;，而不是靠 prompt 约束。&lt;/p&gt;
&lt;p&gt;Rust 重写不只是为了性能。Rust 的内存安全特性让沙箱实现本身更难被绕过——没有 use-after-free、没有 buffer overflow，攻击面从语言层就被收窄了。&lt;/p&gt;
&lt;h2 id="五层安全防线"&gt;五层安全防线
&lt;/h2&gt;&lt;p&gt;这是 Codex CLI 的核心卖点，也是它与其他工具拉开差距的地方。&lt;/p&gt;
&lt;h3 id="第一层三级沙箱模式"&gt;第一层：三级沙箱模式
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;read-only 只读，不能写文件、不能执行命令
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓ 降低约束
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;workspace-write 可写项目目录，可执行本地命令（默认）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓ 降低约束
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;danger-full-access 无限制访问（需要显式声明 danger）
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;默认是 workspace-write&lt;/strong&gt;——Agent 只能修改当前项目目录的文件，不能动系统文件、不能改其他项目。想突破这个边界？必须显式声明 &lt;code&gt;danger-full-access&lt;/code&gt;，名字本身就提醒你这是危险操作。&lt;/p&gt;
&lt;h3 id="第二层审批控制"&gt;第二层：审批控制
&lt;/h3&gt;&lt;p&gt;沙箱管&amp;quot;能做什么&amp;quot;，审批管&amp;quot;什么时候需要问人&amp;quot;：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;策略&lt;/th&gt;
					&lt;th&gt;行为&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;untrusted&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;非信任命令都要问&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;on-request&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;沙箱内自由操作，越界时才问（推荐）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;never&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;完全自动，不问任何人&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;最佳实践：&lt;code&gt;--sandbox workspace-write --ask-for-approval on-request&lt;/code&gt;。Agent 在项目目录里自由干活，一旦要访问目录外的资源、使用网络、执行敏感命令，就停下来等你确认。&lt;/p&gt;
&lt;h3 id="第三层可写目录白名单"&gt;第三层：可写目录白名单
&lt;/h3&gt;&lt;p&gt;如果 Agent 需要写多个目录（比如同时改前端和后端），不用开 full-access，用 &lt;code&gt;writable_roots&lt;/code&gt; 白名单：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# config.toml&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;sandbox_workspace_write&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;writable_roots&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;/home/user/frontend&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;/home/user/backend&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;精确控制哪些目录可写，其余一律只读。&lt;strong&gt;最小权限原则的工程实现。&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="第四层平台原生隔离"&gt;第四层：平台原生隔离
&lt;/h3&gt;&lt;p&gt;Codex 不是用 Docker 容器做隔离，而是用操作系统原生的安全机制：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;平台&lt;/th&gt;
					&lt;th&gt;隔离机制&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;macOS&lt;/td&gt;
					&lt;td&gt;Seatbelt 框架（系统级沙箱）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Linux&lt;/td&gt;
					&lt;td&gt;bubblewrap（用户命名空间隔离）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Windows&lt;/td&gt;
					&lt;td&gt;双用户架构（CodexSandboxOffline/Online）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;WSL2&lt;/td&gt;
					&lt;td&gt;复用 Linux 的 bubblewrap 方案&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Windows 的实现比较巧妙：创建两个本地用户，&lt;code&gt;CodexSandboxOffline&lt;/code&gt;（防火墙阻断出站网络）和 &lt;code&gt;CodexSandboxOnline&lt;/code&gt;（允许网络），密码随机生成后用 DPAPI 加密存储。Agent 运行在受限用户下，天然无法访问你的个人文件。&lt;/p&gt;
&lt;h3 id="第五层自动审核"&gt;第五层：自动审核
&lt;/h3&gt;&lt;p&gt;设置 &lt;code&gt;approvals_reviewer = &amp;quot;auto_review&amp;quot;&lt;/code&gt; 后，审批请求不是弹给你，而是交给另一个 AI Agent 审核。&lt;strong&gt;Agent 审 Agent&lt;/strong&gt;——审核者有权拒绝越界操作，形成双重校验。&lt;/p&gt;
&lt;h2 id="安装与上手"&gt;安装与上手
&lt;/h2&gt;&lt;h3 id="macos--linux"&gt;macOS / Linux
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -fsSL https://chatgpt.com/codex/install.sh &lt;span class="p"&gt;|&lt;/span&gt; sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Linux 需要先装 bubblewrap：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Ubuntu/Debian&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt install bubblewrap
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Fedora&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo dnf install bubblewrap
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="windows"&gt;Windows
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;powershell&lt;/span&gt; &lt;span class="n"&gt;-ExecutionPolicy&lt;/span&gt; &lt;span class="n"&gt;ByPass&lt;/span&gt; &lt;span class="n"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;irm https://chatgpt.com/codex/install.ps1 | iex&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="认证"&gt;认证
&lt;/h3&gt;&lt;p&gt;两种方式：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ChatGPT 账号&lt;/strong&gt;：运行 &lt;code&gt;codex&lt;/code&gt; 后选 &amp;ldquo;Sign in with ChatGPT&amp;rdquo;，Plus/Pro/Business 套餐包含 Codex 额度&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API Key&lt;/strong&gt;：设置 &lt;code&gt;OPENAI_API_KEY&lt;/code&gt; 环境变量&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="agentsmd"&gt;AGENTS.md
&lt;/h3&gt;&lt;p&gt;在项目根目录放一个 &lt;code&gt;AGENTS.md&lt;/code&gt;，告诉 Agent 项目上下文：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gh"&gt;# 项目说明
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;这是一个 Next.js 15 项目，使用 TypeScript + Tailwind CSS。
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gh"&gt;# 规则
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; 测试用 vitest，不要用 jest
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; 提交信息用 conventional commits 格式
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; 不要修改 .env 文件
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Codex 启动时会自动读取这个文件，相当于给 Agent 一份项目手册。&lt;/p&gt;
&lt;h2 id="实战演示"&gt;实战演示
&lt;/h2&gt;&lt;h3 id="场景-1安全模式下重构代码"&gt;场景 1：安全模式下重构代码
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;codex --sandbox workspace-write --ask-for-approval on-request
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;在这个模式下，Agent 可以自由读写项目文件、运行测试。但当它尝试 &lt;code&gt;npm install&lt;/code&gt; 一个新包（需要网络）时，会弹出审批提示。你确认后才继续。&lt;/p&gt;
&lt;h3 id="场景-2cicd-管道中的静默模式"&gt;场景 2：CI/CD 管道中的静默模式
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;codex &lt;span class="nb"&gt;exec&lt;/span&gt; --sandbox workspace-write --ask-for-approval never &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;运行所有测试，如果有失败的修复它们，然后提交&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;exec&lt;/code&gt; 是一次性执行模式，跑完自动退出。配合 &lt;code&gt;--ask-for-approval never&lt;/code&gt; 适合自动化管道——但沙箱仍然生效，Agent 不能突破项目目录。&lt;/p&gt;
&lt;h3 id="场景-3goal-自主执行"&gt;场景 3：/goal 自主执行
&lt;/h3&gt;&lt;p&gt;在交互模式下输入 &lt;code&gt;/goal&lt;/code&gt;，Agent 进入自主循环：规划 → 执行 → 验证 → 继续，直到目标完成。沙箱和审批策略全程生效。&lt;/p&gt;
&lt;h2 id="与-claude-codeopencode-对比"&gt;与 Claude Code、OpenCode 对比
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;维度&lt;/th&gt;
					&lt;th&gt;Codex CLI&lt;/th&gt;
					&lt;th&gt;Claude Code&lt;/th&gt;
					&lt;th&gt;OpenCode&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;开发商&lt;/td&gt;
					&lt;td&gt;OpenAI&lt;/td&gt;
					&lt;td&gt;Anthropic&lt;/td&gt;
					&lt;td&gt;社区&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;语言&lt;/td&gt;
					&lt;td&gt;Rust&lt;/td&gt;
					&lt;td&gt;TypeScript&lt;/td&gt;
					&lt;td&gt;Go&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;安全设计&lt;/td&gt;
					&lt;td&gt;五层沙箱 + 平台原生隔离&lt;/td&gt;
					&lt;td&gt;沙箱 + 权限控制&lt;/td&gt;
					&lt;td&gt;BYOK，无内置沙箱&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;沙箱机制&lt;/td&gt;
					&lt;td&gt;bubblewrap/Seatbelt/Windows Sandbox&lt;/td&gt;
					&lt;td&gt;类似但实现不同&lt;/td&gt;
					&lt;td&gt;无&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;审批控制&lt;/td&gt;
					&lt;td&gt;三级策略 + 自动审核&lt;/td&gt;
					&lt;td&gt;有&lt;/td&gt;
					&lt;td&gt;基础&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;可写目录白名单&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;writable_roots&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;有&lt;/td&gt;
					&lt;td&gt;无&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;模型&lt;/td&gt;
					&lt;td&gt;GPT-5 系列 + codex-1&lt;/td&gt;
					&lt;td&gt;Claude 4 系列&lt;/td&gt;
					&lt;td&gt;75+ 模型&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;MCP 支持&lt;/td&gt;
					&lt;td&gt;✅&lt;/td&gt;
					&lt;td&gt;✅&lt;/td&gt;
					&lt;td&gt;✅&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;安全设计维度，Codex CLI 领先一个身位。&lt;/strong&gt; 它的沙箱不是应用层的权限检查，而是操作系统级的强制隔离——Agent 想逃逸，得先攻破 bubblewrap 或 Seatbelt。&lt;/p&gt;
&lt;p&gt;Claude Code 也有沙箱，设计思路类似，但实现深度不同。OpenCode 走的是 BYOK（Bring Your Own Key）路线，安全完全交给用户自己负责。&lt;/p&gt;
&lt;h2 id="谁该用-codex-cli"&gt;谁该用 Codex CLI
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;首选场景：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;企业/金融/医疗等安全敏感行业&lt;/strong&gt;：沙箱隔离是刚需，不是锦上添花&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OpenAI 生态用户&lt;/strong&gt;：已经用 GPT-5 系列，Codex CLI 是最自然的编程 Agent 选择&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;团队协作&lt;/strong&gt;：自动审核功能让多人共用 Agent 时有统一的安全策略&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CI/CD 集成&lt;/strong&gt;：静默模式 + 沙箱 = 安全的自动化编程&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;不太适合的场景：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;需要频繁切换多个 LLM 模型的用户（Codex 主要服务 OpenAI 模型）&lt;/li&gt;
&lt;li&gt;超长上下文任务（Claude 的长上下文更稳定）&lt;/li&gt;
&lt;li&gt;预算敏感的纯 API 用户（Codex-1 专用模型按 token 计费）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="结论"&gt;结论
&lt;/h2&gt;&lt;p&gt;AI 编程 Agent 的竞争正在从&amp;quot;谁能写更好的代码&amp;quot;转向&amp;quot;谁更值得信任&amp;quot;。Codex CLI 的五层安全防线不是营销话术，而是工程落地：操作系统级沙箱、最小权限白名单、Agent 审 Agent 的自动审核。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;沙箱不是限制，是 Agent 自主运行的前提。&lt;/strong&gt; 你得先确定它不会越界，才敢放手。Codex CLI 目前是安全机制最完善的终端编程 Agent。&lt;/p&gt;</description></item></channel></rss>