交给 AI 接入
按模型种类选择 HopBase 接入说明,让编程 AI 只配置当前需要的模型与密钥。
先选择要用的模型种类,再把对应标签里的接入说明交给 Codex、Claude Code、Cursor 等编程 AI。每份说明只包含这类模型需要的密钥、协议和端点,不会让 AI 一次配置全部能力。
先选择正确的模型标签
| 你要接入的能力 | 选择标签 | 使用的分组密钥 |
|---|---|---|
| Claude API 或 Claude Code | Claude | Claude 分组密钥 |
| GPT 对话或 Codex Responses | GPT / Codex | 包含 Codex Plus、Codex Pro 或 GPT 官方直连(Azure)分组的密钥——Codex 分组只能对话;Azure 分组另含 gpt-image-2.5-flare 与 gpt-image-2.5-sunburst 生图 |
| GPT Image 生图 | GPT / Codex | GPT Image 分组密钥——含 gpt-image-* 全系列;「GPT 官方直连(Azure)」也能调 gpt-image-2.5-flare 与 gpt-image-2.5-sunburst |
| Gemini 对话或 Banana 图片 | Gemini | Gemini 分组密钥 |
| GLM 对话或通过 CC Switch 使用 GLM | GLM | GLM 分组密钥 |
| Seedream 图片生成或编辑 | Seedream | Seedream 分组密钥 |
| Seedance 视频生成 | Seedance | Seedance 分组密钥 |
| MiniMax H3 视频生成 | MiniMax H3 | MiniMax H3 分组密钥——H3 与 H3-Max 是两个独立分组,H3 密钥调不到 H3-Max |
| 可灵视频、生图、运动控制、数字人或对口型 | 可灵 | 可灵分组密钥 |
| 万相 3.0 或快乐马视频生成 | 万相 / 快乐马 | 万相 3.0 分组密钥或快乐马分组密钥——控制台里是两个独立分组,一把密钥可以同时包含两者 |
| Grok 对话、生图或视频生成 | Grok | Grok 分组密钥;视频用独立的 Grok 视频分组 |
| 通义千问对话,可带图片或视频输入 | 通义千问 | 通义千问分组密钥 |
| DeepSeek V4 对话或推理 | DeepSeek V4 | DeepSeek 分组密钥 |
| Kimi K3 对话 | Kimi K3 | Kimi K3 分组密钥 |
| 豆包 Seed 对话,可带图片输入 | 豆包 Seed | 豆包 Seed 分组密钥 |
| Midjourney 生图 | Midjourney | Midjourney 生图分组密钥 |
| 语音合成或声音克隆 | MiniMax 语音 | MiniMax 语音分组密钥 |
| 豆包语音合成、场景音频生成或声音复刻 | 豆包语音 | 豆包语音分组密钥 |
多模型项目使用当前说明列出的独立环境变量,例如 HOPBASE_CLAUDE_API_KEY 或 HOPBASE_GEMINI_API_KEY;单模型项目可继续使用 HOPBASE_API_KEY。不要把真实密钥粘贴到 AI 对话,也不要写进源码、提交记录、截图或日志。
每一行对应的准确分组名见快速开始 · 分组怎么选。「Claude Max (ccmax)」分组只能在 Claude Code 客户端里用;给 SDK 或 API 项目接 Claude 时,请选其他 Claude 分组。
请在当前项目中只通过 HopBase 接入 Claude 模型,严格遵守以下接入说明;与厂商官方 API 文档不一致时,以本说明为准。
本次范围
- 只实现 Claude API(Anthropic Messages)或 Claude Code 所需的接入;不要添加、配置或测试其他模型种类。
- 保留项目现有框架、SDK 和代码风格,只做最小必要修改。
- 先判断这是本地单用户工具、内部服务,还是代表下游客户 / 多租户发起请求,再决定密钥放置和调用架构。
密钥
- 只使用 Claude 系列密钥。每把密钥只绑定一个控制台分组,只能调用该分组内的模型:
- SDK、HTTP、编辑器与 Claude Code:「Claude Max (官号满血版)」或「Claude Max (官号满血版) - 限时特惠」。
- 「Claude Max (ccmax)」只能在 Claude Code 客户端内使用;用这把密钥走 SDK 或 HTTP 调用会失败。
- 多模型项目读取 HOPBASE_CLAUDE_API_KEY 或现有密钥管理器;只有明确为单模型项目时才复用 HOPBASE_API_KEY。
- 不要创建新密钥、不要读取其他模型种类的密钥,也不要让我把真实密钥粘贴进对话。密钥不存在时停止,提示我在控制台「API 密钥」中创建对应分组的密钥,并在本机或密钥管理器中配置。
模型
- 先用这把密钥调用 GET https://api.hop-base.com/v1/models,只使用返回列表中以 claude- 开头的 ID,原样复制。
- 在售:claude-fable-5-1、claude-sonnet-5、claude-sonnet-5-5、claude-opus-5-5、claude-fable-5、claude-opus-5、claude-opus-4-8、claude-opus-4-7、claude-opus-4-6、claude-sonnet-4-6、claude-haiku-4-5-20251001。
- 404 model_not_found 表示该 ID 不在这把密钥的分组里:重新读取 /v1/models 并使用返回的 ID,绝不猜测、缩写或改写模型名。
连接
- Base URL 为 https://api.hop-base.com,不带 /v1(SDK 会自行拼上 /v1/messages)。Base URL 多写 /v1 会变成 /v1/v1/messages 并返回 404。
- 鉴权:SDK 用 api_key 参数,原生 HTTP 用 x-api-key 请求头;保持 SDK 原生鉴权方式。
- 端点:POST /v1/messages 与 POST /v1/messages/count_tokens。Claude 密钥调用 OpenAI 路径(/v1/chat/completions、/v1/responses)返回 404;不要把 Messages 调用改写成 Chat Completions。
- Claude Code:ANTHROPIC_BASE_URL=https://api.hop-base.com,ANTHROPIC_AUTH_TOKEN=<Claude 密钥>。一键配置会把两者写进 ~/.claude/settings.json 的 env 块,该文件优先于 shell 环境变量。
请求规则
- 始终显式传 max_tokens。省略时按 4096 补齐,长输出会以 stop_reason "max_tokens" 截断。
- claude-opus-5-5:思考恒开——传 thinking {"type":"disabled"} 或 budget_tokens 返回 400;用 output_config.effort 控制深度(默认 medium)。tool_choice 为 any / tool 返回 400(改用 auto)。不支持 assistant 预填。
- 历史中的 thinking 块必须按收到时原样回传(含 signature);改写、合并或跨模型复用会返回 400 "Invalid signature in thinking block"。
- 非流式调用总时长上限 300 秒(超时 504)。长输出请用流式,并原样透传 Anthropic SSE;count_tokens 请求同样占用并发。
错误与重试
- 按 HTTP 状态码和 error.code 分支,不要匹配 message 文本;记录响应头 x-request-id 以便排查。
- 可退避重试(2 秒、5 秒、15 秒,最多 3 次,遵守 Retry-After):429、502、503、504,以及中断的流。
- 不要原样重试:400、401、402、403、404、413、422——先修正请求、密钥、分组或余额。
- Anthropic 形状的错误体没有 code 字段;密钥类错误(401、402、403)即使在 /v1/messages 上也使用 OpenAI 形状 {"error":{"code":…}}。
- 404 "This API path is not supported by the current platform" = 协议选错或 Base URL 多了 /v1。修正配置,不要重试。
- 流式开始后出错时 HTTP 仍是 200,错误以 event: error 事件到达;在读取循环中处理,并整体重发请求。
实施要求
- 把 Base URL、密钥变量名和默认模型写进项目现有配置体系,并同步更新 .env.example;禁止写入真实密钥。
- 下游 / 多租户调用必须把密钥留在服务端,复用调用方鉴权,并加上模型 allowlist、请求限制、超时、限流、用量归因和脱敏日志;本地单用户工具不要引入这一层。
- 账户默认并发 5 个请求,超出立即返回 429 并带 Retry-After: 1,不会排队;请在客户端限流。
验证与交付
- 配置后发送一次最小真实请求;只有项目实际使用流式时才追加流式测试。
- 用返回列表中的 claude- 模型发送一条 max_tokens 为 1024、要求“只回复 ok”的 Messages 请求,并验证 content[0].text。
- 最后报告修改的文件、密钥变量名、模型 ID、端点、HTTP 状态和脱敏响应摘要,并给出启动、验证和回滚命令。下载给编程 Agent 的规则文件
勾选本项目用到的全部模型种类。文件会合并它们的接入说明:通用规则只写一次,再按模型种类分节,并附上实时文档与 MCP 服务的入口。勾选超过三个模型种类时,每节只保留密钥、模型与连接规则,完整规则改为链接。
AGENTS.md.cursor/rules/hopbase.mdc.claude/skills/hopbase-api/SKILL.md切换标签时,代码区和“复制给 AI”会同步切换。接入说明要求 AI 只使用当前模型种类的密钥执行模型发现,再从返回列表中选择模型,避免跨套餐误配。
想把规则留在仓库里:在说明下方的面板勾选本项目用到的全部模型种类,合并下载为 AGENTS.md、Cursor 规则(.cursor/rules/hopbase.mdc)或 Claude Code skill(.claude/skills/hopbase-api/SKILL.md)。通用规则只写一次,随后按模型种类分节,并附上实时文档与下文 MCP 服务的入口。把文件提交进仓库,让每次 Agent 会话都从同一套规则出发;模型或参数有变化后重新下载一次。
AI 会如何判断下游场景
| 项目场景 | AI 应采用的接入方式 |
|---|---|
| 本地单用户工具 | 直接使用环境变量和对应 SDK,不额外增加代理服务 |
| 内部服务 | 在服务端保存密钥,并保留现有鉴权、限流和错误处理 |
| 面向客户或多租户 | 增加密钥隔离、调用方鉴权、模型 allowlist、限流、用量归因、SSE 透传和脱敏日志 |
接入说明不会把普通的单用户本地接入改造成复杂网关;只有项目代表下游客户发起请求时,才要求补齐服务端保护措施。
MCP 服务
编程 Agent 也可以通过 MCP 实时查询 HopBase,而不只依赖保存下来的文件。MCP 服务只读,使用与请求相同的 API 密钥鉴权;模型调用仍走常规 API 端点。
| 项目 | 值 |
|---|---|
| 端点 | https://api.hop-base.com/mcp(Streamable HTTP,只接受 POST;不支持 SSE 流与批量请求) |
| 鉴权 | Authorization: Bearer <密钥> 或 x-api-key: <密钥> |
| 范围 | 结果只涉及当前这把密钥:它的各个分组、可调模型与用量 |
| 工具 | 返回 |
|---|---|
list_models | 这把密钥可调用的模型及实付价 |
get_model_limits | 指定模型 ID:这把密钥能否调用,以及文档中该模型的端点、请求参数与上下限,附来源页链接 |
search_docs | 与查询(模型 ID、参数名、错误码)最匹配的文档小节,每条带链接与摘要 |
get_balance | 账户余额与这把密钥的花费上限使用情况(USD) |
get_key_info | 密钥名称、分组、花费上限、并发上限、过期时间与状态 |
get_usage | 这把密钥的请求数、token 数与账面费用;默认最近 7 天,最长 92 天 |
get_model_limits 与 search_docs 读取已发布的文档,最多每小时刷新一次。以链接的文档页为准:结果里没列出的限制不代表不存在。
Claude Code
claude mcp add --transport http hopbase https://api.hop-base.com/mcp \
--header "Authorization: Bearer $HOPBASE_API_KEY"运行命令时 shell 会展开环境变量,密钥因此保存在本机的 Claude Code 配置里。需要团队共享的项目配置时,改为在 .mcp.json 中添加该服务,并把请求头写成 "Authorization": "Bearer ${HOPBASE_API_KEY}";Claude Code 启动时再展开,文件里不含密钥。
Cursor
在项目的 .cursor/mcp.json(或对所有项目生效的 ~/.cursor/mcp.json)中添加:
{
"mcpServers": {
"hopbase": {
"url": "https://api.hop-base.com/mcp",
"headers": { "Authorization": "Bearer ${env:HOPBASE_API_KEY}" }
}
}
}list_models 与 get_model_limits 只能看到所配置密钥所含的分组。要查看其他模型种类,给密钥加上它的分组,或用包含该分组的密钥再添加一个服务条目。
下一步
- 快速开始——手动发出第一条请求
- Base URL 与协议——每个模型种类该用哪个地址和协议
- 可用模型——各模型的 ID 与能力
- 错误码与重试——每个错误码的含义和该不该重试