关于codex桌面app创建沙盒不成功问题解决
# Codex Windows 桌面端一直提示“设置智能体沙盒以继续”的排查与解决记录
## 1. 问题现象
在 Windows 本地使用 Codex 桌面 App 时,进入会话后一直提示:
```text
无法发送消息
设置智能体沙盒以继续
点击“设置智能体沙盒”后,Codex 会自动修改 C:\Users\dell\.codex\config.toml,把 Windows sandbox 设置为:
[windows]
sandbox = "elevated"
但是设置完成后仍然无法进入会话,继续提示需要设置智能体沙盒,形成循环。
同时,VS Code 里的 Codex 插件一开始可以正常使用,说明账号、项目目录和基础网络并不是主要问题。
2. 环境信息
本次问题环境大致如下:
系统:Windows 家庭版
Codex CLI:codex-cli 0.128.0
Codex 路径:
C:\Users\dell\AppData\Roaming\npm\codex
C:\Users\dell\AppData\Roaming\npm\codex.cmd
配置文件:
C:\Users\dell\.codex\config.toml
通过 PowerShell 检查 Codex 版本:
codex --version
where.exe codex
输出类似:
codex-cli 0.128.0
C:\Users\dell\AppData\Roaming\npm\codex
C:\Users\dell\AppData\Roaming\npm\codex.cmd
3. 一开始的误区:以为 Windows 家庭版没有 Windows Sandbox 就完全不能用
执行:
Get-WindowsOptionalFeature -Online -FeatureName "Containers-DisposableClientVM"
没有任何输出。
一开始容易误以为这是因为 Windows 家庭版没有微软 Windows Sandbox 功能,所以 Codex 桌面端必然不能用。
但后来查阅资料后发现,Codex 的 Windows sandbox 并不等同于微软那个 Windows Sandbox 虚拟机功能。OpenAI 官方文章说明,Codex Windows sandbox 是为编码代理设计的 Windows 原生隔离方案,而不是直接依赖微软 Windows Sandbox 虚拟机。OpenAI 官方也说明,Windows 原生 Codex sandbox 支持 elevated 和 unelevated 两种模式。(OpenAI)
所以,Windows 家庭版没有 Containers-DisposableClientVM,并不代表 Codex 一定不能运行;它只能说明微软 Windows Sandbox 这个可选功能不可用。
4. 官方 Windows sandbox 模式说明
Codex 在 Windows 原生模式下可以在 config.toml 中配置:
[windows]
sandbox = "unelevated" # or "elevated"
官方文档中说明,unelevated 是 Windows 原生 sandbox 的 fallback 模式。它使用当前用户派生出的受限 Windows token,并通过 ACL 做文件系统边界控制;相比 elevated 更弱,但在管理员设置、本地策略或企业策略阻止 elevated setup 时仍然有用。(OpenAI 开发者)
官方安全文档也提到,Windows 原生模式可以通过 config.toml 配置:
[windows]
sandbox = "unelevated" # or "elevated"
# sandbox_private_desktop = true # default; set false only for compatibility
其中 sandbox_private_desktop = false 可以作为兼容性选项。(OpenAI 开发者)
5. 关键排查命令
为了判断是桌面 App UI 问题,还是 Windows sandbox 本身启动失败,可以直接在 PowerShell 中测试 Codex sandbox:
codex sandbox windows echo test
最初报错:
windows sandbox failed: CreateProcessAsUserW failed: 2
这里的 CreateProcessAsUserW failed: 2 是关键线索。Windows 错误码 2 通常表示找不到文件或路径。
不过需要注意:在 Windows 中,echo 并不是独立的 echo.exe,而是 cmd.exe 的内置命令。因此更稳妥的测试方式应该是:
codex sandbox windows cmd /c echo test
后续修复后,该命令成功输出:
test
这说明 Windows sandbox 本身已经可以创建进程,问题不是 Windows 家庭版完全不支持,而是 Codex 当前配置下的命令执行后端有兼容性问题。
6. 最终解决方法
编辑 Codex 配置文件:
notepad $env:USERPROFILE\.codex\config.toml
将配置改为:
sandbox_mode = "workspace-write"
approval_policy = "on-request"
[windows]
sandbox = "unelevated"
sandbox_private_desktop = false
[features]
unified_exec = false
shell_snapshot = true
保存后,重新打开 Codex 桌面 App。
然后在 PowerShell 中验证:
codex sandbox windows cmd /c echo test
如果输出:
test
说明 Windows sandbox 已经能正常启动。
也可以继续测试 PowerShell:
codex sandbox windows powershell -NoProfile -Command "Get-Location; Write-Output ok"
如果能正常输出路径和 ok,说明 Codex sandbox 的命令执行已经恢复。
7. 为什么这样能解决?
本次问题并不是 .codex 目录没有删除干净,也不是 VS Code 插件、桌面 App、项目目录本身的问题,而是几个因素叠加:
Codex CLI 0.128.0
+ Windows 原生 sandbox
+ 桌面 App 默认/强制尝试 elevated setup
+ 当前 Windows 环境下 elevated setup 没有成功
+ unified_exec 执行路径在 Windows 下出现兼容性问题
+ 最终触发 CreateProcessAsUserW failed: 2
CreateProcessAsUserW failed: 2 的核心含义是:Codex sandbox 在创建子进程时找不到要启动的程序或路径。
关闭:
[features]
unified_exec = false
可以绕开当前版本中较新的统一执行路径。
打开:
shell_snapshot = true
可以让 Codex 更稳定地获取当前 shell 环境。
同时使用:
[windows]
sandbox = "unelevated"
sandbox_private_desktop = false
可以避免 Windows 家庭版或无管理员权限环境下 elevated setup 失败后卡住,并关闭 private desktop 相关兼容性风险。
GitHub 上也有多个 Windows sandbox 相关 issue,涉及 CreateProcessAsUserW failed、unified_exec、unelevated fallback 等问题,说明这是 Codex Windows 原生 sandbox 近期仍在快速迭代中的兼容性问题。(GitHub)
8. 另一个常见坑:duplicate key 导致 VS Code 插件也不能用
修复过程中还遇到过:
failed to load configuration: C:\Users\dell\.codex\config.toml:37:11: duplicate key
这个不是 sandbox 问题,而是 config.toml 写重复了。
例如下面这种是错误写法:
[features]
unified_exec = false
[features]
shell_snapshot = true
应该合并成:
[features]
unified_exec = false
shell_snapshot = true
下面这种也是错误写法:
[windows]
sandbox = "unelevated"
[windows]
sandbox_private_desktop = false
应该合并成:
[windows]
sandbox = "unelevated"
sandbox_private_desktop = false
如果配置文件解析失败,Codex CLI、VS Code 插件、桌面 App 都可能无法正常启动,因为它们都会读取用户目录下的:
C:\Users\dell\.codex\config.toml
官方配置文档也说明,Codex 的默认配置保存在本地 config.toml 中,相关 sandbox 和 approval 配置都从这里读取。(OpenAI 开发者)
9. 推荐最终配置
如果你是 Windows 家庭版,或者点击 Codex 桌面 App 的“设置智能体沙盒”后反复失败,可以先使用下面这份配置:
sandbox_mode = "workspace-write"
approval_policy = "on-request"
[windows]
sandbox = "unelevated"
sandbox_private_desktop = false
[features]
unified_exec = false
shell_snapshot = true
如果需要信任某个具体项目目录,可以只信任项目目录,不要直接信任整个用户目录:
[projects.'f:\os\codex']
trust_level = "trusted"
不建议这样写:
[projects.'c:\users\dell']
trust_level = "trusted"
[projects.'c:\users\dell\appdata\roaming\npm']
trust_level = "trusted"
原因是 C:\Users\dell 范围太大,包含桌面、下载、文档、配置、缓存等大量内容;AppData\Roaming\npm 是 npm 全局命令目录,不是普通项目目录。
10. 如果 Codex 还拉取插件失败
修复 sandbox 后,可能还会遇到:
git fetch failed: fatal: unable to access 'https://github.com/openai/skills.git/':
Failed to connect to github.com port 443
这个和 sandbox 不是同一个问题,而是 GitHub 网络不可达。
可以检查:
Test-NetConnection github.com -Port 443
git config --global --get https.proxy
git ls-remote https://github.com/openai/skills.git
如果 GitHub 443 不通,需要给 Git 配置代理,例如代理端口是 7890:
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890
取消代理:
git config --global --unset http.proxy
git config --global --unset https.proxy
11. 总结
这次问题的核心不是 Windows 家庭版完全不能用 Codex,也不是 .codex 目录删除不干净。
真正原因更可能是:
Codex Windows 原生 sandbox 在当前版本下的执行后端兼容问题
+ 桌面 App 默认尝试 elevated setup
+ 当前环境 elevated setup 不成功
+ unified_exec 导致命令启动路径异常
+ 最终报 CreateProcessAsUserW failed: 2
最终可行解决方案是:
sandbox_mode = "workspace-write"
approval_policy = "on-request"
[windows]
sandbox = "unelevated"
sandbox_private_desktop = false
[features]
unified_exec = false
shell_snapshot = true
修复后,用下面命令验证:
codex sandbox windows cmd /c echo test
输出:
test
即可说明 Windows sandbox 已经能正常启动。
参考资料
- OpenAI Codex Windows 官方文档:说明 Windows 原生 sandbox 支持
elevated和unelevated,其中unelevated是 fallback 模式。(OpenAI 开发者) - OpenAI Codex Agent approvals & security:说明 Windows 原生模式可以在
config.toml中配置[windows] sandbox = "unelevated"或"elevated",并提到sandbox_private_desktop兼容性配置。(OpenAI 开发者) - OpenAI 官方文章《Building a safe, effective sandbox to enable Codex on Windows》:介绍 Codex Windows sandbox 的设计目标和实现思路。(OpenAI)
- OpenAI Codex Sandbox 概念文档:说明 Codex 使用
config.toml保存 sandbox 和 approval 等默认配置。(OpenAI 开发者) - OpenAI Codex Configuration Reference:Codex
config.toml配置参考。(OpenAI 开发者) - GitHub Issue:
unified_exec = true在 Windows 上导致命令执行后端不可用的相关反馈。(GitHub) - GitHub Issue:Windows 下
unified_exec与 sandbox 相关问题。(GitHub) - GitHub Issue:Windows sandbox 中
CreateProcessAsUserW failed相关错误反馈。(GitHub)
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)