跳转到内容

配置参考

opencodex 通过 ~/.opencodex/config.json 进行配置。它由 ocx init 和仪表盘写入,但你也可以直接编辑它;代理会在启动时重新加载它。缺失或无效的文件会回退到默认配置(单个 openai forward provider)。

FieldTypeDefault含义
portnumber10100代理监听的端口。
providersRecord<string, OcxProviderConfig>provider 名称 → 配置的映射。
defaultProviderstring"openai"当路由找不到更优匹配时使用的 provider。
subagentModels?string[]最多 5 个 provider/model id,会在 Codex 的 subagent 选择器中优先展示。
disabledModels?string[]从 Codex 中隐藏的已路由 provider/model id(从目录和 /v1/models 中排除)。
websockets?booleanfalse广告 supports_websockets,让 Codex 使用 Responses WebSocket 路径。省略或设为 false 会保持 HTTP/SSE。
modelCacheTtlMs?number300000每个 provider 的 /models 缓存的有效期(5 分钟)。
webSearchSidecar?OcxWebSearchSidecarConfig开启网络搜索 sidecar 选项(见下文)。
visionSidecar?OcxVisionSidecarConfig开启视觉 sidecar 选项(见下文)。
FieldType含义
adapterstringopenai-chatopenai-responsesanthropicgoogleazure 之一。
baseUrlstring上游 API 的基础 URL。
apiKey?stringAPI key,或在请求时解析的 ${ENV_VAR} / $ENV_VAR 引用。
defaultModel?string当选中该 provider 但未指定明确模型时使用的模型。
models?string[]种子/回退模型列表(当实时 /models 可达时优先使用它)。
headers?Record<string,string>发送到上游的额外 HTTP 头。
authMode?"key" | "forward" | "oauth"认证方式(默认 key)。见 Providers
noReasoningModels?string[]会拒绝 reasoning/thinking 参数的模型 —— adapter 会为它们丢弃 reasoning_effort
noVisionModels?string[]纯文本模型 —— 视觉 sidecar 会为它们描述图像。匹配时可容忍 Ollama 的 :size 标签。

webSearchSidecar(OcxWebSearchSidecarConfig)

Section titled “webSearchSidecar(OcxWebSearchSidecarConfig)”
FieldTypeDefault含义
enabled?boolean当存在 forward provider + 登录时开启总开关。
model?stringgpt-5.4-mini运行真实 web_search 的 sidecar 模型(必须是原生 ChatGPT 模型)。
reasoning?stringlowsidecar 的推理强度(在网络搜索时 minimal 会被拒绝)。
maxSearchesPerTurn?number3每个主模型轮次的真实搜索总次数(循环保护)。
timeoutMs?number30000sidecar 的请求超时时间。
FieldTypeDefault含义
enabled?boolean当存在 forward provider + 登录时开启总开关。
model?stringgpt-5.4-mini描述图像的视觉模型(必须接受图像输入)。
timeoutMs?number45000sidecar 的请求超时时间。
{
"port": 10100,
"defaultProvider": "openai",
"providers": {
"openai": {
"adapter": "openai-responses",
"baseUrl": "https://chatgpt.com/backend-api/codex",
"authMode": "forward"
},
"anthropic": {
"adapter": "anthropic",
"baseUrl": "https://api.anthropic.com",
"authMode": "oauth",
"defaultModel": "claude-sonnet-4-6"
},
"ollama-cloud": {
"adapter": "openai-chat",
"baseUrl": "https://ollama.com/v1",
"apiKey": "${OLLAMA_API_KEY}",
"defaultModel": "glm-5.2",
"noVisionModels": ["glm-5.2", "gpt-oss", "qwen3-coder", "deepseek-v4-pro"]
}
},
"subagentModels": ["anthropic/claude-opus-4-8", "ollama-cloud/glm-5.2"],
"disabledModels": [],
"websockets": false,
"webSearchSidecar": { "maxSearchesPerTurn": 3 },
"visionSidecar": { "enabled": true }
}