Skip to content

jishubaichi/C2X

Repository files navigation

C2X — Codex to X

中文 | English

致谢与参考

  • Codex++ — 插件解锁功能参考(MIT)
  • cc-switch — 代理架构参考(MIT)
  • MiMo Code — 裁判系统设计参考(MIT)

介绍

C2X(Codex to X)是面向 OpenAI Codex App 的本地代理工具,让第三方模型在 Codex 中像原生模型一样工作。

问题背景

Codex 使用私有的 Responses API 协议与模型通信,而大多数第三方模型(MiMo、DeepSeek、智谱、千问等)只支持标准的 Chat Completions 协议。两者之间的核心差异在于工具调用格式:Codex 要求模型输出结构化的 function_call,而第三方模型在协议转换后可能"想继续工作"却只能输出纯文本。Codex 将纯文本判定为"任务结束",智能体循环就此异常中断。

解决方案

C2X 作为本地中间层,部署在 Codex 和第三方 API 之间:

Codex App  →  C2X 代理 (localhost:7861)  →  第三方 API
         ←                               ←
     Responses API              Chat Completions API

协议转换层:双向转换 Responses API 和 Chat Completions 协议,包括消息格式、工具定义、reasoning 字段、流式事件等。支持 40+ 预设服务商,自动适配不同模型的 reasoning 参数(thinking/enable_thinking/reasoning_split)。

AI 裁判系统:当模型输出纯文本而非工具调用时,裁判系统作为独立的评估层介入,语义判断模型是否真正完成了任务。如果判定未完成,自动注入合成工具调用维持循环继续。

插件与环境管理:通过 CDP 协议解锁 Codex 插件市场限制,一键部署高级插件(computer-use、browser、chrome),管理工作区信任目录。

主要功能

  • 协议转换:Responses API ↔ Chat Completions 双向转换,支持 40+ 预设服务商,自动适配 reasoning 参数
  • AI 裁判系统:独立评估层,语义分析 + 自动注入,支持自动/手动触发、截取全部/首尾两种模式、文本循环检测、think-only 分级恢复
  • 插件解锁:通过 CDP 协议解锁 Codex 插件市场限制,支持插件强制安装
  • 高级插件一键部署:computer-use、browser、chrome 三个插件一键注入到 Codex 共享工作区
  • 工作区信任管理:自动扫描历史会话,一键信任/移除工作区目录
  • JS REPL 启用:自动启用 Codex 的 JS REPL 功能(高级插件依赖)
  • Token 统计:实时追踪主模型和裁判模型的 token 消耗,分工作消耗和裁判消耗
  • WebUI 管理界面:浏览器可视化配置所有功能,支持中英双语
  • 一键启动脚本:自动检测依赖,缺失则提示下载安装,首次使用零门槛

下载

方式一:Git 克隆(推荐)

git clone https://github.com/jishubaichi/C2X.git
cd C2X

方式二:下载 ZIP

点击仓库页面绿色 Code 按钮 → Download ZIP,解压后即可使用。

快速开始

方式一:一键启动(推荐)

双击 start.bat,脚本会自动:

  1. 检测 Node.js(缺失则提示下载)
  2. 检测项目依赖(缺失则提示安装)
  3. 启动 C2X

方式二:手动启动

npm install
npm start

启动后打开 WebUI:http://127.0.0.1:7860

配置

启动 C2X 后,打开 WebUI(http://127.0.0.1:7860):

  1. 选择服务商,填入 API 密钥
  2. 点击"获取模型"并选择模型版本
  3. 点击"保存配置"(C2X 会自动写入 Codex 配置,无需手动修改)

C2X 启动时会自动应用上次保存的配置,关闭时自动恢复 Codex 原始配置。

裁判系统

背景

Codex 通过检测模型响应是否包含工具调用来判断任务是否继续。原生模型(GPT 系列)能正确输出 Codex 要求的工具调用格式,但第三方模型(如 MiMo、DeepSeek 等)在协议转换后,可能"想继续工作"却只能输出纯文本——因为它们不了解 Codex 的工具调用协议。Codex 收到纯文本后认为任务完成,智能体循环就此中断。

解决方案

裁判系统是一个独立的 AI 评估层,在模型输出纯文本时介入:

  1. 读取用户指令和模型响应
  2. 语义判断模型是否真正完成了任务
  3. 如果判定未完成,自动注入合成的工具调用指令(update_plan),维持循环继续
  4. 如果判定已完成,正常放行

工作模式

  • 触发模式:自动识别(默认)/ 手动标记(/jg 前缀)
  • 截取模式:截取全部(更准确)/ 截取首尾(省 token)
  • 安全机制:最大连续判定次数限制、短文本跳过阈值、重复尾部检测、文本循环检测

高级功能

  • 插件一键部署:computer-use、browser、chrome 三个插件一键注入
  • 工作区信任管理:自动扫描历史会话,批量信任工作区目录
  • 自定义系统提示词:可自定义裁判提示词和智能体循环提示词

项目结构

C2X/
├── src/                    # 后端源码
│   ├── server.js           # 入口
│   ├── proxy.js            # 代理核心
│   ├── judge.js            # 裁判系统
│   ├── config.js           # 配置管理
│   ├── webui.js            # WebUI API
│   ├── streaming/          # 流式转换
│   ├── transform/          # 协议转换
│   └── providers/          # 服务商预设
├── public/                 # 前端文件
├── cj-setup/               # 插件部署脚本及文件
├── docs/                   # 文档
├── start.bat               # 一键启动脚本
├── config.json             # 配置文件
└── package.json            # 依赖声明

技术栈

  • Node.js + Express
  • WebSocket (ws)
  • Winston 日志
  • Chrome DevTools Protocol (CDP)

许可证

MIT License

About

Codex third-party model local proxy - Effectively prevents abnormal agent loop interruptions. Supports protocol conversion, AI judge system, plugin unlock, workspace trust management, and more. Inspired by Codex++, cc-switch, MiMo Code.Codex 第三方模型本地代理工具 - 有效缓解智能体循环的异常中断、支持协议转换、AI裁判系统、插件解锁、工作区信任管理等。参考 Codex++、cc-switch、MiMo Code。

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages