非交互、CI 与 SDK
codex exec、GitHub Actions、Codex GitHub Action、App Server、Codex SDK、Agents SDK 和自动化密钥的安全用法。
Codex 自动化有三条常见路径:
| 路径 | 适合 | 首选入口 |
|---|---|---|
| 一次性脚本 / CI | 运行检查、审查 diff、生成补丁 | codex exec |
| GitHub Actions | PR review、CI 失败自动修复、发布检查 | openai/codex-action@v1 |
| 产品集成 / 内部平台 | 流式事件、线程、审批、深度集成 | Codex SDK 或 app-server |
#codex exec
最小用法:
codex exec "review the current diff and list only P0/P1 risks"带权限:
codex exec \
--sandbox read-only \
--ask-for-approval never \
"summarize this repo and identify risky areas"继续会话:
codex exec "find the likely cause of this failing test"
codex exec resume --last "apply the smallest fix and rerun the test"非交互模式适合可重复任务。把 prompt 写成文件并纳入版本控制,比在 CI YAML 里堆长字符串更容易维护。
#API key 自动化
CODEX_API_KEY 只用于 codex exec,适合单次自动化:
CODEX_API_KEY="$OPENAI_API_KEY" \
codex exec --json "triage open bug reports"不要把 key 暴露给整个 job 的后续步骤。CI 里如果先运行仓库脚本再设置 key,风险更低;如果先把 key 放进环境,依赖安装脚本也可能读到它。
#Passion8 CI
如果 CI 要走 Passion8,用标准 ~/.codex 文件或临时 CODEX_HOME:
export CODEX_HOME="$PWD/.codex-ci"
mkdir -p "$CODEX_HOME"
cat > "$CODEX_HOME/auth.json" << 'EOF'
{
"OPENAI_API_KEY": "sk-..."
}
EOF
cat > "$CODEX_HOME/config.toml" << 'EOF'
model_provider = "Passion8"
model = "gpt-5.6-sol"
approval_policy = "never"
sandbox_mode = "workspace-write"
[model_providers.Passion8]
name = "Passion8"
wire_api = "responses"
requires_openai_auth = true
base_url = "https://passion8.cc/v1"
EOF
codex exec "run the documented checks and summarize failures"CI 里不要把 .codex-ci/auth.json 上传为 artifact。
#GitHub Action
OpenAI 官方 Action 会安装 Codex CLI,启动 Responses API proxy,并按配置运行 codex exec。适合在 GitHub Actions 里减少手写安装和密钥处理。
name: Codex review
on:
pull_request:
types: [opened, synchronize, reopened]
jobs:
codex:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
persist-credentials: false
- uses: openai/codex-action@v1
with:
openai-api-key: ${{ secrets.OPENAI_API_KEY }}
prompt-file: .github/codex/prompts/review.md
sandbox: read-only安全建议:
- 限制触发者,避免 fork PR 直接接触 secret
checkout时不要持久化凭据,除非后续步骤需要写回- 让 Codex job 只产生 diff 或报告
- 写 PR 的步骤放在单独 job,不要携带模型 API key
- 对 issue、PR body、commit message 做 prompt injection 防护
#自动修复 CI
推荐模式:
- 主 CI 失败后触发独立 workflow
- Checkout 失败 commit
- 安装依赖但不暴露模型 key
- 运行 Codex 生成 patch
- 上传 patch artifact
- 另一个 job 应用 patch 并开 PR
这样 OpenAI / Passion8 key 不会出现在拥有写权限的 job 环境里。
#App Server
codex app-server 适合做产品级集成。它通过 JSON-RPC 风格消息管理 thread、turn、stream events、审批和历史。
codex app-server
codex app-server --listen ws://127.0.0.1:4500
codex app-server --listen unix://WebSocket transport 适合 localhost 或 SSH tunnel。不要在没有认证的情况下暴露到非 loopback 地址。
#Codex SDK
SDK 适合在后端服务或内部工具里调用 Codex,比 shell 包装 codex exec 更容易处理:
- 长会话
- 流式事件
- 结构化输出
- 审批和工具结果
- 多 agent 编排
如果只是 CI 里跑一次 review,用 codex exec 或 GitHub Action 更直接。需要产品集成、平台化或复杂 orchestration 时再用 SDK。
#Agents SDK + Codex MCP
Codex 可以作为 MCP server 被其他 agent 调用:
codex mcp-server典型用途:
- 一个主 agent 做分派,让 Codex 负责代码实现
- 多 agent pipeline 中把 Codex 当作“可审查的代码执行者”
- 用 OpenAI Agents SDK 统一编排 handoff、trace 和 guardrails
保持每个 Codex 子任务范围清晰,并让它在独立工作目录或 worktree 中运行。
#官方参考
Support / 支持
Need help? / 需要帮助?
接入、计费与模型异常可邮件联系;服务可用性以状态页为准。
For setup, billing, or model issues, email us. Check the status page for uptime.
也可使用右下角微信 / QQ 客服 · WeChat / QQ support is available at the bottom right

