API 参数与推理能力
按 CCSub 当前真实实现整理 Chat Completions、Responses 与 Anthropic Messages 的参数支持范围,并说明推理、工具调用、结构化输出该选哪个入口。
先选对接口
CCSub 同时提供兼容接口和原生接口。普通聊天应用优先使用 OpenAI Chat Completions;Codex 和 Claude Code 这类 Agent 若需要完整工具调用、推理参数及多轮工具结果,应使用对应的原生入口。
| 用途 | 请求地址 | 建议 |
|---|---|---|
| OpenAI 兼容聊天 | POST /v1/chat/completions | 适合 Cherry Studio、OpenCode、Cursor 等通用客户端 |
| OpenAI Responses 兼容 | POST /v1/responses | 会经过格式转换;一般兼容调用可用 |
| Codex 原生 Responses | POST /openai/responses | 需要原生工具、推理事件或连续 Agent 会话时推荐 |
| Anthropic Messages 兼容 | POST /v1/messages | 适合遵循 Anthropic 基础消息格式的客户端 |
| Claude Code 原生 Messages | POST /api/v1/messages | Claude Code、原生工具调用和 thinking 参数推荐 |
所有接口都使用 CCSub API Key。OpenAI 风格通常发送Authorization: Bearer sk-...;Anthropic 风格同时兼容Authorization与x-api-key。
Chat Completions 参数
/v1/chat/completions 以 OpenAI Chat Completions 请求体为基准。由于请求可能被调度到不同协议的上游,部分采样参数会被转换或忽略;下表是 CCSub 可以稳定承诺的行为。
| 参数 | 支持情况 | CCSub 行为 |
|---|---|---|
model | 支持 | 填写模型页展示的公开模型 ID |
messages | 支持 | 支持 system、developer、user、assistant 等常用角色 |
stream | 支持 | true 返回 SSE;false 返回完整 JSON |
max_tokens | 支持 | 限制最大输出 Token;未填写时使用站点默认上限 |
max_completion_tokens | 支持 | 作为 max_tokens 的兼容别名处理 |
tools | 基础支持 | 支持 OpenAI function tool 声明并转换到目标协议;复杂多轮工具链推荐原生接口 |
response_format | 兼容支持 | 支持 json_object 与 json_schema;跨协议时通过指令约束并校验结果,不等同于所有上游原生 JSON Schema |
temperature / top_p / stop | 视线路而定 | 目标协议支持时转发;不支持的线路可能移除或忽略 |
reasoning_effort / reasoning | 不作统一保证 | 兼容转发时可能被移除;需要推理控制请使用原生接口 |
stream_options / n / logprobs / 惩罚参数 | 不作统一保证 | 在部分上游转换中会被移除,应用不应依赖这些字段 |
Codex 原生 Responses 参数
原生入口 https://ccsub.xyz/openai/responses 保留 OpenAI Responses 请求和 SSE 事件结构。CCSub 只补充缺省模型/输出上限并完成鉴权、路由与计费,不把请求降级成 Chat Completions。
常用字段包括:
model:公开 GPT / Codex 模型 IDinput、instructions:字符串或 Responses 输入项max_output_tokens、streamtools、tool_choice、parallel_tool_callsreasoning、text等模型原生配置function_call_output等后续轮次输入项
参数是否被具体模型接受,仍以该模型的原生 Responses 能力为准。推荐 Codex 配置:
model = "gpt-5.6-sol"
model_provider = "ccsub"
[model_providers.ccsub]
name = "CCSub"
base_url = "https://ccsub.xyz/openai"
env_key = "CCSUB_API_KEY"
wire_api = "responses"Claude 原生 Messages 参数
原生入口 https://ccsub.xyz/api/v1/messages 保留 Anthropic Messages 请求体和 SSE 事件。Claude Code 把 Base URL 设置为 https://ccsub.xyz/api 后会自动拼接 /v1/messages。
常用字段包括:
model、messages、systemmax_tokens、streamtools、tool_choice,以及消息中的tool_use/tool_resultthinking:使用 Anthropic 原生结构控制扩展思考temperature、top_p、top_k、stop_sequences、metadata
curl https://ccsub.xyz/api/v1/messages \
-H "Authorization: Bearer sk-你的CCSub密钥" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 2048,
"thinking": {"type": "enabled", "budget_tokens": 1024},
"messages": [{"role": "user", "content": "分析这个问题"}]
}'
thinking的可用取值与约束由具体 Claude 模型决定;CCSub 不会把它自动换算成 OpenAI 的reasoning_effort。
推理参数:与统一翻译网关的差别
有些聚合网关提供一套跨厂商推理规范:接收 reasoning_effort、reasoning.effort 或 reasoning.max_tokens,再自动映射到 GPT、Claude、Gemini 等模型,并额外返回 reasoning_content / reasoning_details。
CCSub 当前没有做这层跨厂商统一映射,而是优先保持官方协议:
| 能力 | 统一翻译网关 | CCSub 当前行为 |
|---|---|---|
跨厂商 reasoning_effort 映射 | 自动换算 | 不统一换算 |
| 精确 thinking budget | 可由统一字段换算 | Claude 原生接口直接使用 thinking |
| GPT 推理配置 | 统一字段 | Responses 原生接口直接使用 reasoning |
reasoning_content / reasoning_details | 网关自定义统一返回 | 不承诺这两个扩展字段;返回模型原生事件与字段 |
| 多轮工具调用 | 由网关转换 | 推荐用对应厂商的原生工具格式,减少转换损失 |
因此,从提供统一 reasoning_effort 的平台迁移时,不要默认这些扩展字段在 CCSub 兼容端点具有相同行为。把 GPT Agent 切到 /openai/responses,把 Claude Agent 切到 /api/v1/messages,并使用各自官方参数。
最小调用示例
通用 OpenAI Chat Completions:
curl https://ccsub.xyz/v1/chat/completions \
-H "Authorization: Bearer sk-你的CCSub密钥" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-sol",
"messages": [{"role": "user", "content": "只回复 OK"}],
"max_tokens": 64,
"stream": false
}'
原生 OpenAI Responses 推理请求:
curl https://ccsub.xyz/openai/responses \
-H "Authorization: Bearer sk-你的CCSub密钥" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-sol",
"input": "比较两种实现并给出结论",
"reasoning": {"effort": "medium"},
"max_output_tokens": 1024,
"stream": true
}'