参数“传了却读不到”主因是前端组装错误、config.toml中sanitize_inputs过滤、mapping未声明字段、default_params覆盖、runtime解析异常或auth.json同名字段劫持。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

当你在 Codex 中明确写了参数、填了字段、甚至日志里都打印出了完整请求体,但服务端或本地 runtime 却提示“缺少 required 参数”“未识别字段”或直接忽略该参数,这种“传了却读不到”的错觉,往往不是网络丢包,而是参数在传输链路中被拦截、覆盖、解析失败或命名不匹配导致的静默丢失。
确认参数是否真被发出
第一步:打开 Codex 桌面版开发者工具(Ctrl+Shift+I),切换到 Network 标签页,过滤 XHR 或 Fetch 请求,触发一次带参操作(如提交 prompt、调用自定义 agent)。
第二步:点击对应请求 → 查看 Payload 或 Request Body 选项卡。如果这里显示为空、为 {}、或字段名与你代码中写的不一致(比如你写的是 model_name,实际发出去是 modelName),说明问题出在前端组装阶段,还没到网络层。
第三步:重点检查是否启用了「自动参数净化」功能——某些 Codex 版本在 config.toml 中开启 sanitize_inputs = true 后,会按白名单过滤所有非预设字段。这一步不报错,但直接删掉你传的额外参数。若启用,请临时注释该行并重启。
排查 config.toml 中的参数透传规则
方法一:检查 provider 配置块下的参数映射声明
打开 ~/.codex/config.toml(Windows 为 %USERPROFILE%\.codex\config.toml),找到你正在使用的 provider(如 openai、taotoken、ollama)区块。Codex 不是原样转发所有参数,而是依赖 mapping 字段做键名重写。例如:
```toml
[providers.openai]
base_url = "https://api.openai.com/v1"
mapping = { temperature = "temperature", max_tokens = "max_completion_tokens" }
```
如果你传了 max_tokens,但 mapping 里没声明,它就不会出现在最终请求中;如果你传了 max_completion_tokens,但 mapping 没把它映射回标准字段,服务端也可能不认。
通过本地 Codex 或 OpenClaw OAuth 凭证直接调用 ChatGPT/Codex Responses 的 image_generation 工具来生成或编辑光栅图像,然后保存
【mapping 字段必须显式声明才生效,缺一则丢一参】
方法二:验证是否被全局 default_params 覆盖
config.toml 顶层或 provider 块内可能有 default_params 表。它会在每次请求前合并进参数,且优先级高于运行时传入值。若 default_params 中定义了同名字段(如 temperature = 0.7),而你运行时传了 temperature = 0.3,结果取决于 Codex 的合并策略——部分版本是浅合并、后写入覆盖,部分版本是深冻结、运行时参数被忽略。
抓包验证 runtime 层真实接收内容
第一步:确认本地 runtimes 是否启用 HTTP 日志
在终端执行 codex doctor --runtimes-verbose,观察输出中是否有类似 “proxying request to http://localhost:3000/v1/chat/completions” 的日志。若有,说明请求已抵达本地 runtime 层。
第二步:用 curl 直连 runtime 接口,绕过 Codex UI
复制上一步日志中的完整 URL 和请求头(尤其是 Authorization 和 Content-Type),用 curl 手动构造相同 payload 发送。如果此时参数能被正确读取,说明问题在 Codex 主进程的序列化/转发逻辑;如果依然读不到,说明是 runtime 自身解析逻辑的问题(如 body 解析器只认 application/json,而 Codex 发了 text/plain)。
第三步:检查 runtime 的 content-type 处理逻辑
Codex 桌面版默认将参数序列化为 JSON 并设置 Content-Type: application/json。但某些自定义 runtime(如轻量 Ollama 封装)若未正确处理 JSON body,或错误启用了 form-data 解析器,就会导致整个 body 被跳过。此时需在 runtime 启动参数中强制指定 --json-body=true 或修改其中间件配置。
检查 auth.json 是否劫持参数注入
auth.json 不仅存凭证,部分 Codex 版本会从中读取额外元数据字段(如 org_id、project_id、env)并自动注入请求。如果 auth.json 中存在与你运行时参数同名的字段(比如你传了 env=prod,auth.json 里也有 "env": "dev"),后者会无提示覆盖前者。
打开 ~/.codex/auth.json,搜索你传参的 key 名。若存在,临时重命名或删掉该字段,再测试。

















