Coding 工具接入
平台协议与 OpenAI / Anthropic 生态兼容,主流 AI 编程工具(Claude Code、Codex CLI、Cline、Roo Code 等)无需改造成即可接入。本文给出各工具的最小配置。
通用原则
- API 地址统一为
$URL,API Key 在控制台($CONSOLE_URL)「令牌管理」创建; - 编程工具配置的模型名必须与控制台模型列表一致,否则会返回 503「无可用渠道」;
- 长任务建议保持流式(stream)开启,并将客户端超时设置为 ≥600 秒。
协议支持总览
| 工具 | 依赖协议 | 平台端点 | 状态 |
|---|---|---|---|
| Cline / Roo Code / Aider 等 | OpenAI Chat | /v1/chat/completions | ✅ 完全支持 |
| Claude Code | Anthropic Messages | /v1/messages | ✅ 完全支持(含 count_tokens) |
Codex CLI(wire_api = "chat") | OpenAI Chat | /v1/chat/completions | ✅ 完全支持 |
Codex CLI(默认 wire_api = "responses") | OpenAI Responses | /v1/responses | ✅ 支持(上游不支持时自动降级转换;有状态字段见下方说明) |
| Gemini CLI | Gemini | /v1beta/models/{model}:streamGenerateContent | ✅ 支持 |
平台会自动完成协议转换:例如 Claude Code 以 Anthropic 报文调用一个 OpenAI 兼容渠道时,请求与响应(含流式事件)均由平台双向转换,工具侧无感。
Responses API 使用须知(/v1/responses)
平台对 Responses 请求的兼容策略对所有渠道统一生效:
- 上游原生支持 Responses API 时请求原样转发,功能完整;
- 上游不支持时,平台自动降级为 Chat 协议转换转发(对工具透明,含流式事件与用量回转);
- 例外——服务端状态字段:
previous_response_id、conversation等依赖「上游保存对话历史」的字段,在降级转换链路上无法兑现。这类请求会返回 400(invalid_request),错误信息中会列出不支持的字段名。编程工具的标准写法本就是每轮全量携带上下文(无状态),正常使用不会遇到;若你的自研客户端用了有状态写法,改为全量直传即可; background后台模式与/v1/responses/compact依赖上游原生支持,降级链路不支持(会返回上游原始错误而非错误格式的响应)。
Claude Code
通过环境变量指定接入地址、令牌与模型:
export ANTHROPIC_BASE_URL="$URL"
export ANTHROPIC_AUTH_TOKEN="sk-xxxxxxxx" # 控制台创建的令牌
export ANTHROPIC_MODEL="your-model-name" # 平台可用模型名
export ANTHROPIC_SMALL_FAST_MODEL="your-model-name" # 轻量任务模型(可与上同)
claude也可以写入 ~/.claude/settings.json:
{
"env": {
"ANTHROPIC_BASE_URL": "$URL",
"ANTHROPIC_AUTH_TOKEN": "sk-xxxxxxxx"
}
}说明
- 平台完整支持 Anthropic Messages 协议(含流式、工具调用与
count_tokens端点);请求打到 OpenAI 兼容渠道时由平台自动转换报文。 - 会话内可用
/model切换模型,模型名需为平台可用模型。
Codex CLI
编辑 ~/.codex/config.toml:
model_provider = "euno"
model = "your-model-name"
[model_providers.euno]
name = "Euno AI"
base_url = "$URL/v1"
wire_api = "chat"
env_key = "EUNO_API_KEY"并设置令牌环境变量:
export EUNO_API_KEY="sk-xxxxxxxx"
codexwire_api 的选择
wire_api = "chat"(推荐):走/v1/chat/completions,所有渠道通用,行为最可预期。wire_api = "responses"(Codex CLI 默认):走/v1/responses,平台已全量兼容——上游不支持时自动降级转换;仅「服务端状态」类字段(见上文 Responses API 使用须知)不可用。
Cline / Roo Code(VS Code / JetBrains 插件)
- Provider 选择 OpenAI Compatible;
- Base URL 填
$URL/v1; - API Key 填控制台令牌;
- Model ID 填平台可用模型名(可先在控制台「模型广场」确认)。
以 Cline 为例:
| 设置项 | 值 |
|---|---|
| API Provider | OpenAI Compatible |
| Base URL | $URL/v1 |
| API Key | sk-xxxxxxxx |
| Model ID | your-model-name |
Roo Code、Aider、Continue 等工具同理——凡是「OpenAI 兼容」类型的 Provider,Base URL 都填 $URL/v1。
常见问题
Q: 返回 503「No available channel for model xxx」?
工具里配置的模型名在平台对应分组下没有可用渠道。请到控制台「模型广场」核对模型名的准确写法(注意版本后缀、大小写),或联系管理员开通。
Q: 长任务跑到一半连接被断开?
优先确认三点:① 工具保持流式输出(以上配置均为流式);② 客户端/自有代理的空闲超时 ≥600 秒;③ 使用最新接入文档(平台已启用流式心跳保活)。仍复现时,请带上响应头 X-Oneapi-Request-Id 中的请求 ID 联系我们精确定位。
Q: 返回 401 / 429?
401 为令牌无效或被禁用,请在控制台重新生成;429 为触发限流,请降低并发或联系管理员调整额度策略。
Q: 调用 /v1/responses 返回 400「does not support stateful fields: previous_response_id」?
请求里带了依赖上游保存会话历史的字段(如 previous_response_id),这类字段在协议转换链路上无法兑现。Codex CLI 默认配置不使用该字段、无需处理;自研客户端请改为每轮全量携带对话上下文的无状态写法(与大多数编程工具的实现一致)。
Q: 如何确认调用走了哪条协议链路?
控制台「日志」→ 对应请求详情中可查看请求路径与模型、用量信息;报障时提供请求 ID 可加速定位。
