LoopToken

Codex 接入

用 Responses API 把 Codex CLI / Codex App、CC Switch 接入 LoopToken:配置文件、验收命令与常见问题

POST/v1/responses

LoopToken 同时提供 OpenAI Responses API 与 Chat Completions API,两种协议共用同一套 API Key、模型权限、余额、计费与用量记录。

客户端Base URL协议
Codex CLI / Codex Apphttps://api.vibelab.me/v1OpenAI Responses API
CC Switch 的 Codex Providerhttps://api.vibelab.me/v1OpenAI Responses API
Claude Code(直连或经 CC Switch)https://api.vibelab.meAnthropic 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

写入 API Key

~/.codex/auth.json(已有其他字段则保留,只更新 OPENAI_API_KEY):

{
  "OPENAI_API_KEY": "sk-lt-..."
}

配置 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 Keysk-lt-...
Endpoint / Base URLhttps://api.vibelab.me/v1
Model/v1/models 返回的模型名
API Format / Wire APIOpenAI 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/completionswire_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 工具验收

本页内容