Codex 接入
用 Responses API 把 Codex CLI / Codex App、CC Switch 接入 LoopToken:配置文件、验收命令与常见问题
LoopToken 同时提供 OpenAI Responses API 与 Chat Completions API,两种协议共用同一套 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 | Anthropic Messages API,见 Claude Code 接入 |
准备 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
配置 Provider
~/.codex/config.toml:
model_provider = "looptoken"
model = "你的模型名"
preferred_auth_method = "apikey"
model_reasoning_effort = "medium"
# 让 0.166 以下的旧版 Codex 也发送推理参数并回传加密推理内容
model_supports_reasoning_summaries = true
# 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 0.166 起会从这里拉取模型元数据(推理档位、上下文窗口、Fast 档等)
model_catalog_url = "https://api.vibelab.me/v1/codex/models"重启 Codex 生效。不要配置新版 Codex 已移除的 wire_api = "chat"。
不配 model_catalog_url 时,Codex 会提示 Model metadata for ... not found,按通用元数据运行,不发送推理强度,效果会变差。建议升级到 Codex 0.166 及以上并保留这一行。
验收
codex exec "只回复 LOOP_TOKEN_CODEX_OK"成功会看到模型回复,控制台用量记录里能看到对应请求。编码 Agent 还需要工具调用,再在测试目录执行:
codex exec "使用 shell 工具执行 pwd,然后告诉我目录名"模型发起工具调用、Codex 在本机执行并完成第二轮回复,才算完整接入成功。
CC Switch
一键导入
在API Key 管理页点击 Key 旁的 导入 CCS,CC Switch 会弹出确认框,导入后自动完成:
- Codex Provider(Base URL、Key、默认模型,以及上文
config.toml中的推理设置与model_catalog_url) - 余额查询:卡片上显示剩余积分,每 30 分钟自动刷新
余额查询
LoopToken 提供与 CC Switch 内置「Sub2API」模板兼容的余额接口,手动添加的 Provider 在「配置用量查询」里选 Sub2API 模板即可:
curl https://api.vibelab.me/v1/usage -H "Authorization: Bearer $LOOPTOKEN_API_KEY"{"isValid": true, "planName": "LoopToken", "remaining": 1234.5, "unit": "积分"}remaining 为账户剩余积分;Key 设置了额度时取账户余额与 Key 剩余额度中较小的值,并额外返回 quota.limit / quota.used。余额耗尽时 isValid 为 false。
Codex Provider(手动添加)
在 CC Switch 切换到 Codex,新增自定义 Provider:
| 配置项 | 值 |
|---|---|
| 名称 | LoopToken |
| API Key | sk-lt-... |
| Endpoint / Base URL | https://api.vibelab.me/v1 |
| Model | /v1/models 返回的模型名 |
| API Format / Wire API | OpenAI Responses API / responses |
保存并启用后重启 Codex。若有"获取模型"按钮,可直接通过 /v1/models 读取。
Claude Code Provider
Claude Code 使用 Anthropic Messages 协议,LoopToken 原生提供 /v1/messages,不需要协议转换:在 CC Switch 切换到 Claude,新增 Provider,使用 Anthropic 原生格式(不要选 OpenAI Chat Completions,也无需开启代理接管),Base URL 填 https://api.vibelab.me,Key 填 sk-lt-...,模型填 claude-*。完整配置见 Claude Code 接入。
Responses API 支持范围
GPT 系列请求原样转发到 OpenAI Responses 上游,Codex 用到的能力完整可用:
input/instructions、文本与工具调用的流式事件- 推理:
reasoning.effort/summary,include: ["reasoning.encrypted_content"]的加密推理跨轮续接 - 工具:function、custom、namespace(MCP)、tool search、
web_search prompt_cache_key会话缓存(命中部分按缓存价计费,见 GPT 计费规则)service_tier: "fast"/"priority"(Codex/fast),按官方 Fast 价计费- 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 | 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 工具验收 |