codex 是 OpenAI Codex CLI 的沙箱模板

View on GitHub ↗

codex

codex 是 OpenAI Codex CLI 的沙箱模板。镜像基于 fc-e2b-registry.<region>.cr.aliyuncs.com/runtime/base:<tag>,钉 @openai/codex@0.162.1。命名命令在 agent-sandbox-server 上,端口 9000。没有镜像 CMD / ENTRYPOINT。

命名命令

命令 作用
codex_version codex --version,返回 X.Y.Z
codex_setup_check 探测 Linux 沙箱。失败时 bypass_flag 为 --dangerously-bypass-approvals-and-sandbox
codex_exec codex exec --json。参数包括 prompt、model、cwd、sandbox、approval、resume
codex_config_write 写 $CODEX_HOME/config.toml。wire_api 只能是 responses
codex_agents_write 把 AGENTS.md 写到工作目录
codex codex_exec 的兼容别名,只有 prompt 和 model

0.162.1 不接受旧的 codex -p ... --output-format json,也不接受 --full-auto。沙箱探测失败时(Express 上常见:没有 capabilities,bubblewrap user namespace / seccomp / 遗留 landlock 起不来),codex_exec 加上 --dangerously-bypass-approvals-and-sandbox。探测成功且 sandbox=auto 时用 --sandbox workspace-write 和 approval_policy="never"。

apply-patch(issue #60)是独立的 codex-apply-patch 文件工具,不在这个目录里构建。codex-agent-api(issue #23)是 Agents API HTTP 服务,和这里的 CLI 命令不是同一个控制面。

本地 e2e

仓库根目录,已安装 agent-sandbox-server、httpx、pyyaml:

python3 scripts/check_template.py codex
python3 scripts/run_local_e2e.py

只跑本目录时:

cd codex
ABX_SERVER_PORT=9000 python3 commands.py
cd codex
E2E_BASE_URL=http://127.0.0.1:9000 python3 e2e_test.py

根目录脚本强制 E2E_RUN_LLM=0,并且不把密钥传给子进程。这不算模型验收。带密钥时:

E2E_BASE_URL=http://127.0.0.1:9000 E2E_RUN_LLM=1 E2E_REQUIRE_LLM=1 E2E_MODEL=qwen-plus python3 e2e_test.py

提示词是 Reply with exactly: ABX_E2E_OK。跑测试的进程和 commands.py 进程都要看得到密钥。

极速版

abx template deploy ./codex -y --generation 2
abx create --template <template-id> -y --env OPENAI_API_KEY=<密钥> --env OPENAI_BASE_URL=<兼容端点> --env CODEX_MODEL=qwen-plus
abx run <sandbox-id> codex_exec --json-args '{"prompt":"总结工作区","model":"qwen-plus"}'
await sandbox.run("codex_exec", prompt="总结工作区", model="qwen-plus")

abx exec 和 sandbox.commands.run 是 shell,不会自动加上 codex exec 的参数。

环境变量

变量 作用
OPENAI_API_KEY / CODEX_API_KEY / ABX_LLM_API_KEY 密钥。config.toml 只写变量名(env_key)。
OPENAI_BASE_URL / ABX_LLM_BASE_URL OpenAI 兼容基址,例如 DashScope /compatible-mode/v1。
CODEX_MODEL 可选模型名。
CODEX_HOME 默认 /home/user/.codex。
WORKSPACE 默认 /home/user/workspace。
E2E_RUN_LLM 0 跳过模型调用;1 强制调用。