mirror of
https://gh-proxy.org/https://github.com/klinsmaya/CLIProxyAPI.git
synced 2026-11-09 18:06:50 +08:00
Codex Desktop(Responses Lite,请求头 X-Openai-Internal-Codex-Responses-Lite)
的请求顶层 tools 为 null:工具定义经 input 中的 additional_tools item
下发,历史工具调用为 custom_tool_call / custom_tool_call_output item。
原转换仅识别顶层 tools 与 message/reasoning/function_call/
function_call_output,导致发往 openai-compatibility 上游的请求既无
工具定义也无工具调用历史,模型据此答复"没有可用工具"。
请求方向:
- 工具收集合并顶层 tools 与所有 additional_tools item(function/
namespace/custom 共用同一转换)
- custom(freeform)工具定义映射为带 {"input": string} 参数的
function 工具,与 Codex function 形态 apply_patch 的形状一致
- custom_tool_call 回放为 assistant tool_calls,原始 input 包装为
{"input": ...} arguments;custom_tool_call_output 回放为 tool
消息,content-parts 数组拍平为文本,并纳入 outputCallIDs 预扫描
以维持工具消息相邻性
同时引入响应方向所需的 responsesCustomToolNames /
unwrapCustomToolInput 辅助函数。
Ref #4219