Skip to content

[Bug] 本地代理不支持 /v1/responses/compact 路由,导致 Codex 远程压缩任务 404 #1144

Description

@mrhegit

问题描述

在使用 cc-switch 本地代理配合 Codex CLI 时,若开启 远程压缩(Remote Compact) 功能,Codex 会向 API 发起 /v1/responses/compact 请求进行服务端上下文压缩。但目前 cc-switch 本地代理(默认端口 15721)会返回 404 Not Found,导致压缩任务执行失败。

该功能的影响面与业务价值:
Codex 官方近期大力推广 Responses API 及远程压缩功能。启用后:

  • 长上下文对话更稳定,显著降低 OOM 概率。
  • 任务执行速度预估可提升 20% 以上。
  • 目前主流中转服务端(如 CPA、New API 等)均已支持该接口。若 cc-switch 能提供支持,将极大提升长会话用户的使用体验。

复现步骤

  1. 在 cc-switch 的 Proxy 标签页 中,为 Codex 开启 Takeover 及本地代理(默认 15721 端口)。
  2. 修改 Codex 配置文件 ~/.codex/config.toml,强制走 Responses API远程压缩(关键是 name = "OpenAI"):
[model_providers.custom]
name = "OpenAI"
wire_api = "responses"
requires_openai_auth = true
base_url = "https://<你的中转域名>/v1" 
  1. 重启 Codex CLI。
  2. 在 CLI 中执行较长任务,或直接输入手动触发命令:
/compact
  1. 终端立即抛出以下错误:
■ Error running remote compact task: unexpected status 404 Not Found: Unknown error, url:
http://127.0.0.1:15721/v1/responses/compact

验证方法

若关闭 cc-switch 本地代理直连中转服务,执行 /compact 命令后,可在中转服务(如 CPA)的请求日志中成功观测到 /v1/responses/compact 请求。这表明远程压缩触发机制正常,问题确实出在本地代理的路由拦截上。

环境信息

  • cc-switch 版本:v3.11.x(最新版)
  • Codex CLI 版本:[请填写,例如:v0.x.x]
  • 操作系统:[请填写,例如:Windows 11 / macOS Sonoma / Ubuntu 22.04]
  • 中转服务:CPA / New API(已亲测支持 Responses API)
  • 本地代理端口:15721

期望结果

希望 cc-switch 本地代理能完整兼容 OpenAI Responses API,对 /v1/responses/compact 端点进行透传(passthrough)转发,确保远程压缩功能正常工作。

或者作为临时方案,增加一个配置项:允许特定应用(如 Codex)的特定路径绕过本地代理,直接请求远程端点。

建议实现方式

在本地代理的 Axum router 中,增加针对 /v1/responses/compact 的路由处理逻辑。与现有的 /v1/responses/v1/chat/completions 类似,直接转发 Request Body 和 Response Headers 即可。

相关参考

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions