用途:Codex 是 OpenAI 的自主编码智能体命令行工具,可通过 Hermes 终端把编码任务委派给它,适用于构建功能、重构、PR 审查和批量修复 issue。
前提条件:需安装 Codex,命令为 npm install -g @openai/codex;需配置 OpenAI 认证,可使用 OPENAI_API_KEY 或 Codex CLI 登录流程产生的 OAuth 凭据;必须在 git 仓库内运行,Codex 拒绝在仓库外执行;终端调用需设置 pty=true,因为 Codex 是交互式终端应用。对于 Hermes 自身,执行 hermes auth add openai-codex 后,model.provider: openai-codex 会使用 Hermes 管理的 Codex OAuth(位于 ~/.hermes/auth.json)。独立 Codex CLI 的有效 OAuth 会话可能位于 ~/.codex/auth.json,因此不能仅凭缺少 OPENAI_API_KEY 就断定认证缺失。
主要用法:一次性任务使用 codex exec '提示词',例如 codex exec 'Add dark mode toggle to settings',并指定 workdir 与 pty=true。临时试验可用 cd $(mktemp -d) && git init && codex exec '...'。长任务可后台运行,例如 codex exec --sandbox workspace-write 'Refactor the auth module',配合 background=true、pty=true,返回 session_id 后用 process 的 poll、log 监控,用 submit 发送输入,用 kill 终止。
关键参数:exec "prompt" 为一次性执行;--sandbox workspace-write(-s)在沙箱内自动批准工作区文件改动,是推荐的自动构建模式;--dangerously-bypass-approvals-and-sandbox 无沙箱无审批,最快也最危险,--yolo 仍作为隐藏别名可用;--sandbox danger-full-access 不使用 Codex 沙箱,适用于宿主服务上下文破坏 bubblewrap 的情况。--full-auto 已弃用,仍可用但 CLI 会提示改用 --sandbox workspace-write。
PR 审查:可克隆到临时目录安全审查,例如 REVIEW=$(mktemp -d) && git clone https://github.com/user/repo.git $REVIEW && cd $REVIEW && gh pr checkout 42 && codex review --base origin/main。批量审查可先 git fetch origin '+refs/pull//head:refs/remotes/origin/pr/',再并行运行 codex exec 'Review PR #86. git diff origin/main...origin/pr/86',最后用 gh pr comment 发布结果。
并行修复 issue:用 git worktree add 为每个 issue 创建工作树,在各目录后台启动 codex --sandbox workspace-write exec 'Fix issue #78: ... Commit when done.',用 process list 监控,完成后 git push 并用 gh pr create 建 PR,最后 git worktree remove 清理。
Hermes 网关注意事项:从 Hermes 网关或服务上下文(如 Telegram 驱动的智能体会话)调用 Codex CLI 时,workspace-write 沙箱可能失败,即使同一命令在交互式 shell 中可用。典型症状是 bubblewrap 或用户命名空间错误,如 setting up uid map: Permission denied 或 loopback: Failed RTM_NEWADDR: Operation not permitted。此时建议改用 codex exec --sandbox danger-full-access "<task>",并以进程边界作为安全层:明确 workdir、启动前保持干净的 git 状态、收窄任务提示、审查 git diff、运行针对性测试,并在提交大范围改动前经人工或智能体确认。
规则:始终使用 pty=true,否则 Codex 会挂起;必须在 git 仓库内运行,临时工作可用 mktemp -d && git init;一次性任务用 exec;构建用 --sandbox workspace-write;长任务用后台模式并监控;不要干扰运行中的任务,耐心等待;可并行运行多个 Codex 进程处理批量工作。