跳到正文

交給 AI 接入

按模型種類選擇 HopBase 接入說明,讓編程 AI 只配置當前需要的模型與密鑰。

先選擇要用的模型種類,再把對應標籤裡的接入說明交給 Codex、Claude Code、Cursor 等編程 AI。每份說明只包含這類模型需要的密鑰、協議和端點,不會讓 AI 一次配置全部能力。

先選擇正確的模型標籤

你要接入的能力選擇標籤使用的分組金鑰
Claude API 或 Claude CodeClaudeClaude 分組密鑰
GPT 對話或 Codex ResponsesGPT / Codex包含 Codex Plus、Codex Pro 或 GPT 官方直連(Azure)分組的密鑰——Codex 分組只能對話;Azure 分組另含 gpt-image-2.5-flare 與 gpt-image-2.5-sunburst 生圖
GPT Image 生圖GPT / CodexGPT Image 分組密鑰——含 gpt-image-* 全系列;「GPT 官方直連(Azure)」也能呼叫 gpt-image-2.5-flare 與 gpt-image-2.5-sunburst
Gemini 對話或 Banana 圖片GeminiGemini 分組密鑰
GLM 對話或通過 CC Switch 使用 GLMGLMGLM 分組密鑰
Seedream 圖片生成或編輯SeedreamSeedream 分組密鑰
Seedance 影片生成SeedanceSeedance 分組密鑰
MiniMax H3 影片生成MiniMax H3MiniMax H3 分組密鑰——H3 與 H3-Max 是兩個獨立分組,H3 密鑰用不了 H3-Max
可靈影片、生圖、運動控制、數字人或對口型可靈可靈分組密鑰
萬相 3.0 或快樂馬影片生成萬相 / 快樂馬萬相 3.0 分組密鑰或快樂馬分組密鑰——控制檯裡是兩個獨立分組,一把密鑰可以同時包含兩者
Grok 對話、生圖或影片生成GrokGrok 分組密鑰;影片用獨立的 Grok 影片分組
通義千問對話,可帶圖片或影片輸入通義千問通義千問分組密鑰
DeepSeek V4 對話或推理DeepSeek V4DeepSeek 分組密鑰
Kimi K3 對話Kimi K3Kimi K3 分組密鑰
豆包 Seed 對話,可帶圖片輸入豆包 Seed豆包 Seed 分組密鑰
Midjourney 生圖MidjourneyMidjourney 生圖分組密鑰
語音合成或聲音複製MiniMax 語音MiniMax 語音分組密鑰
豆包語音合成、場景音訊生成或聲音複刻豆包語音豆包語音分組密鑰
一類模型對應一把分組金鑰:

多模型項目使用當前說明列出的獨立環境變量,例如 HOPBASE_CLAUDE_API_KEY 或 HOPBASE_GEMINI_API_KEY;單模型項目可繼續使用 HOPBASE_API_KEY。不要把真實密鑰粘貼到 AI 對話,也不要寫進源碼、提交記錄、截圖或日誌。

控制台裡的準確分組名:

每一行對應的準確分組名見快速開始 · 分組怎麼選。「Claude Max(ccmax)」分組只能在 Claude Code 客戶端裡用;給 SDK 或 API 項目接 Claude 時,請選其他 Claude 分組。

Anthropic Messages / Claude Code,只使用 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}" }
    }
  }
}
MCP 能看到什麼由密鑰決定:

list_models 與 get_model_limits 只能看到所配置密鑰所含的分組。要查看其他模型種類,給密鑰加上它的分組,或用包含該分組的密鑰再添加一個服務條目。

下一步