最后更新
Codex Router doctor — 诊断与修复安装问题
doctor 是 Codex Router 中最有用的单个工具。它检查集成的每一层——配置、凭据、目录、服务与路由健康——并把每项报告为 OK、WARN 或 FAIL,每个失败层下都有针对性修复。
运行 doctor
./bin/model-router codex doctor
Windows:
./codex-router.ps1 codex doctor
doctor 从不打印凭据值。诊断只报告凭据的存在与来源。
doctor 检查什么
以下所有层都报告 OK 时集成健康:
- 核心配置——Codex
config.toml中的标记托管块,包括回环 base URL 与目录路径。 - 配置隐私——配置及其备份对当前用户受保护。
- 目录——合并的
model_catalog_json存在且与已装 Codex 版本匹配。 - 调用方能力——生成的
/_codex-router/.../v1路径是有效的本地认证。 - 内部密钥——随机回环服务密钥存在且权限受保护。
- 服务——按用户后台服务(launchd、systemd 或任务计划程序)以预期身份运行。
- 路由器健康——4100–4103 端口上的每个本地监听器都报告其预期服务身份。
- 所选凭据——你选择的供应商有存储密钥或有效 OAuth 会话。未选择的凭据可能报
WARN,属正常。
用 doctor —fix 修复
只重建仓库托管的文件、配置与服务状态:
./bin/model-router codex doctor --fix
--fix 会无条件重建 Node 与 Python 依赖——与正常安装或更新不同(它们会跳过指纹已匹配的依赖步骤)。因此它适合环境看起来损坏而不是过期的情况。
对已识别的旧 Kimi 路由器:
./bin/model-router codex doctor --fix --migrate-known
修复拒绝未知路由器所有者。如果 doctor 报告状态所有权失败,说明你运行的克隆没有执行安装——请通过持有已装状态的检出修复。见下面的状态所有权。
状态所有权
当记录的所有者仍存在时,doctor --fix 会从该检出运行修复并保持已装检出不变。仅当记录所有者已消失、或你设置:
MODEL_ROUTER_ALLOW_FOREIGN_STATE=1 ./bin/model-router codex doctor --fix
它才会刻意把所有权转移给当前检出。查看记录的所有者:
STATE_DIR="${MODEL_ROUTER_STATE_DIR:-${CODEX_ROUTER_STATE_DIR:-${HOME}/.codex/codex-router}}"
cat "$STATE_DIR/install-manifest.json" | sed -n '1,80p'
doctor 通过之后
任何更新或回滚后运行 doctor,然后完全退出 Codex、重新打开并新建任务,让选择器重载合并目录。--fix 后仍有层失败时,创建 support bundle:
./bin/support-bundle
该 bundle 是 mode-600 的 JSON,包含版本、doctor 检查、服务状态、供应商存在性、配置所有权与文件元数据——没有凭据值、提示、响应或日志内容。在开 issue 时附上其路径;确实需要日志上下文时才用 --include-logs。