Codex / CC Switch 接入
使用 Responses API 将 Codex、CC Switch 和 Claude Code 接入 LoopToken
LoopToken 同时提供 OpenAI Responses API 与 Chat Completions API,可以直接作为 Codex Provider,也可以添加到 CC Switch。两种协议共用同一套 API Key、模型权限、余额、计费与用量记录。
| 用途 | Base URL | 协议 |
|---|---|---|
| Codex CLI / Codex App | https://api.vibelab.me/v1 | OpenAI Responses API |
| CC Switch 中的 Codex Provider | https://api.vibelab.me/v1 | OpenAI Responses API |
| Claude Code 经 CC Switch 转换 | https://api.vibelab.me | OpenAI Chat Completions |
准备 API Key 和模型名
在控制台的 API Key 管理页面创建一个 sk-lt- 开头的 Key。
不要填写 OpenAI、Anthropic 或其他上游平台的密钥。
可以通过标准模型列表端点确认该 Key 能使用的模型:
curl https://api.vibelab.me/v1/models \
-H "Authorization: Bearer $LOOPTOKEN_API_KEY"返回的 data[].id 就是配置中应填写的模型名。模型是否适合编码、是否支持工具调用,取决于模型本身;
Codex 建议选择 GPT/Codex 系列并先完成本文末尾的验收。
Codex 接入
1. 写入 API Key
将 LoopToken Key 写入 ~/.codex/auth.json:
{
"OPENAI_API_KEY": "sk-lt-..."
}如果文件中已有其他配置,请保留原字段,只更新 OPENAI_API_KEY。
2. 配置 Provider
编辑 ~/.codex/config.toml:
model_provider = "looptoken"
model = "你的模型名"
preferred_auth_method = "apikey"
# LoopToken 当前采用无状态 Responses 适配,Codex 必须在每轮发送完整历史。
disable_response_storage = true
[model_providers.looptoken]
name = "LoopToken"
base_url = "https://api.vibelab.me/v1"
wire_api = "responses"
requires_openai_auth = true重新启动 Codex 后生效。Codex 会请求 POST /v1/responses,不应配置已经被新版 Codex
移除的 wire_api = "chat"。
3. 命令行快速验证
codex exec "只回复 LOOP_TOKEN_CODEX_OK"成功时会看到模型回复,并可在 LoopToken 控制台的用量记录中看到对应请求。编码 Agent 不仅需要文本输出, 还需要工具调用;建议再在一个测试目录执行:
codex exec "使用 shell 工具执行 pwd,然后告诉我目录名"只有模型确实发起工具调用、Codex 在本机执行工具并完成第二轮回复,才算完整接入成功。
CC Switch 接入
Codex Provider
在 CC Switch 中切换到 Codex,新增自定义 Provider:
| 配置项 | 值 |
|---|---|
| 名称 | LoopToken |
| API Key | LoopToken 的 sk-lt-... Key |
| Endpoint / Base URL | https://api.vibelab.me/v1 |
| Model | /v1/models 返回的模型名 |
| API Format / Wire API | OpenAI Responses API / responses |
保存并启用后重启 Codex。如果 CC Switch 提供“获取模型”按钮,可以直接通过 /v1/models 自动读取。
Claude Code Provider
Claude Code 原生使用 Anthropic Messages 协议。如果希望通过 CC Switch 调用 LoopToken 的 Chat Completions 接口,需要:
- 切换到 Claude,新增自定义 Provider。
- API Format 选择 OpenAI Chat Completions。
- Base URL 填写
https://api.vibelab.me,由 CC Switch 追加/v1/chat/completions。 - 启用 CC Switch Proxy Service,并开启 takeover(接管);协议转换由本机代理完成。
- 模型名填写
/v1/models返回且支持工具调用的模型。
如果所用 CC Switch 版本要求填写完整地址,请开启 Full URL Mode,并填写
https://api.vibelab.me/v1/chat/completions,避免生成重复的 /v1/v1/chat/completions。
Responses API 支持范围
当前 Codex 接入支持:
- 字符串和消息数组形式的
input instructions- 文本流式输出
- Function tools、
tool_choice与工具调用结果回传 reasoning.effortmax_output_tokens- Responses 标准 SSE 事件与 usage
- API Key 模型白名单、余额预扣、结算、渠道重试和请求日志
当前端点是无状态适配。请保持 disable_response_storage = true,并由客户端发送完整会话历史。
非空 previous_response_id 会返回 400 invalid_request,以免产生看似续接成功、实际丢失上下文的结果。
常见问题
| 现象 | 排查 |
|---|---|
401 invalid_api_key | 确认使用 LoopToken Key,且请求头为 Authorization: Bearer sk-lt-... |
404 model_not_found | 使用 /v1/models 返回的准确模型名 |
Codex 请求 /v1/chat/completions | Provider 的 wire_api 配错,应为 responses |
previous_response_id is not supported | 设置 disable_response_storage = true,重启 Codex 并开始新会话 |
CC Switch 出现 /v1/v1/... | Base URL 与自动追加路径重复;普通模式去掉末尾 /v1,或改用 Full URL Mode |
| 能聊天但不能修改代码 | 所选模型可能没有正确返回 Function tool calls;执行上面的 shell 工具验收 |