用途
config-codex-cli 是一个分步的智能体工作流,目标是在任意机器上配置 OpenAI Codex CLI,使其以 OmniRoute 作为兼容 OpenAI 的后端。适用于需要在 Linux、macOS、Windows 上统一配置 Codex CLI 的场景。
主要能力
- 检测操作系统与 shell。
- 写入 config.toml 以及 7 个命名 profile。
- 设置环境变量。
- 验证配置结果。
安装方式
npm install -g omniroute # 或: npx omniroute omniroute --version
资料未提供该技能家族对应的 CLI 子命令映射。
长时间运行的 Codex 任务
资料指出,两个 OmniRoute 默认设置会静默破坏多小时的 Codex 会话,在为过夜或数小时工作配置 Codex 时需要说明。完整指南见 docs/guides/CODEX-CLI-CONFIGURATION.md → Long-running tasks。
会话亲和(默认关闭)
设置项:sessionAffinityTtlMs(毫秒;界面位置为 Dashboard → Settings → Routing → Session affinity 下的 Affinity TTL (seconds))。旧别名:codexSessionAffinityTtlMs。
默认值为 0,即禁用。此时每一轮都可能落到不同账户,从而破坏提示缓存与会话连续性。
Codex 会话键(x-codex-session-id、x-session-id、x-omniroute-session、请求体中的 prompt_cache_key / session_id)仅在 TTL > 0 时用于固定会话。
最大值为 86400 秒 / 86400000 毫秒(24 小时)。应将 TTL 设为高于预期任务时长(例如约 12 小时的任务设为 43200 秒)。
流空闲超时(默认 10 分钟)
环境变量:STREAM_IDLE_TIMEOUT_MS(默认 600000)。也可考虑 FETCH_BODY_TIMEOUT_MS(相同基线;设为 0 表示禁用)。
合成的 SSE 心跳不会重置空闲计时,只有真实的上游数据块才会。
超过空闲窗口的静默推理轮次会被强制关闭(stream_idle_timeout / StreamIdleTimeoutError)。可在日志中检索 Idle timeout: no data from。
推荐的多小时配方
- Dashboard → Settings → Routing → Session affinity → Affinity TTL 设为 43200(12 小时)或 86400(24 小时上限)。
- OmniRoute 环境变量:
STREAM_IDLE_TIMEOUT_MS=0 FETCH_BODY_TIMEOUT_MS=0
- 重启 OmniRoute。Codex 的 config.toml 保持常规配置(wire_api = "responses",正确的 base_url)。
默认值决策
资料明确说明:不要为此技能在代码中翻转出厂默认值——sessionAffinityTtlMs 保持 0,STREAM_IDLE_TIMEOUT_MS 保持 600000。长时间运行的运营者必须自行选择启用。相关讨论见 Discussion #5718 和 issue #7287。