跳转到内容

Codex 开启代理后 apply_patch 工具不可用 / unsupported call — cc-switch

Quick fix

升级到 cc-switch v3.16.2 或更高版本;若使用中转站,请确保后台模型与 Codex 期望模型匹配,否则开启路由可能导致工具调用失败。

报错原文
apply_patch 不在当前会话的工具列表中。我的可用工具只有上面列出的那 8 个。

Codex 对部分内置 GPT/Codex 模型有专门的 model metadata 和 tool 定义,例如 freeform 的 apply_patch 工具。当通过 cc-switch 代理路由到 DeepSeek 或第三方中转站时,如果缺少对应的 metadata,Codex 可能只走 fallback prompt/tool 配置,导致工具调用格式错误、执行卡住或返回 unsupported call。

cc-switch v3.16.0 曾尝试生成类似 gpt-5.5 的 model catalog 来让 Codex 装配系统提示和工具元信息,但未覆盖 Codex Chat 路由里的高级工具保真。v3.16.1 加了 Codex tool context 恢复逻辑,覆盖 tool_search、namespace tools、custom tools 和 streamed custom tool input;v3.16.2 进一步修复了 Codex Custom Tool Metadata Over Chat Routing,使 freeform apply_patch 工具能保留完整原始定义(包括 format 与 grammar 元数据)写入 Chat function description,而不再是通用占位符。

另有用户反馈,某些中转站由于后台模型未打开齐全,不开路由时模型匹配不完整返回 403;开了路由会导致 Codex 工具链匹配问题、调用工具失败、无限循环、空烧 token。DeepSeek 官方直连在升级后通常正常,但部分中转站仍可能失败。

  1. 将 cc-switch 升级到 v3.16.2 或更新版本。维护者确认 v3.16.2 修复了 Codex 经 Chat Completions 路由第三方/官方 DeepSeek 时 apply_patch 被降级或丢失的问题。

  2. 升级后重启 cc-switch 和 Codex,然后重新测试 apply_patch 或文件编辑类任务。

  3. 如果使用 DeepSeek 官方 API,确认 provider 配置中模型名称正确,且本地代理/路由已按需要开启。

  4. 如果使用第三方中转站,确认中转站后台模型与 Codex 期望的模型相匹配。某些中转站后台模型未打开齐全时,不开路由可能返回 403,开路由可能导致工具链匹配失败。

  5. 如果升级后仍失败,收集 cc-switch 版本、操作系统、Codex 版本、当前 provider/路由配置、复现步骤和相关日志,提交或回复原 issue。

ToolCodex
Version3.16.0 - 3.16.1
PlatformsWindowsmacOSLinux
为什么用 DeepSeek 官方可以,但中转站失败?
有用户反馈 DeepSeek 官方开路由后功能正常;部分中转站因后台模型与官方模型不完全匹配,未开路由时可能返回 403,开路由后可能导致 Codex 工具链匹配异常。需要确认中转站后台模型配置完整且与 Codex 期望模型对应。
升级到 3.16.1 后为什么还是不行?
v3.16.1 恢复了部分 Codex tool context,但 freeform apply_patch 工具在 Chat Completions 路由下被降级的问题是在 v3.16.2 通过 Codex Custom Tool Metadata Over Chat Routing 修复的,因此需要升级到 v3.16.2 或更高版本。
apply_patch 工具显示只有一个 apply_patch,没有 apply_patch_add_file / update_file 等子操作,正常吗?
不正常。这是 v3.16.2 之前的问题:freeform apply_patch 被降级成通用占位符,丢失子操作。升级到 v3.16.2 后应保留完整工具定义。
工具调用失败会不会空烧 token?
有用户报告在中转站模型匹配不完整且开启路由时,会出现工具调用失败、无限循环和空烧 token。建议先确认模型匹配正常,再使用路由。

这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。