本文へスキップ

AI と連携する

HopBase のモデルファミリーを選び、対応するコントラクトをコーディングエージェントに渡します。

まずモデルファミリーを選び、選択中のタブに表示されるコントラクトを Codex、Claude Code、Cursor など任意のコーディングエージェントに渡します。各コントラクトには、そのファミリーに必要なキー、プロトコル、エンドポイントだけが含まれます。

対応するモデルタブを選ぶ

利用したい機能タブプランのキー
Claude API または Claude CodeClaudeClaude プランのキー
GPT チャットまたは Codex ResponsesGPT / CodexCodex 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 を呼び出せません
Kling の動画、画像、モーションコントロール、アバター、リップシンクKlingKling プランのキー
Wan 3.0 または HappyHorse の動画生成Wan / HappyHorseWan 3.0 プランのキー、または HappyHorse プランのキー — コンソール上は別々のプランですが、1 つのキーに両方を含められます
Grok のチャット、画像、動画生成GrokGrok プランのキー。動画生成には別の Grok 動画プランを使用します
Qwen チャット(画像・動画入力対応)QwenQwen プランのキー
DeepSeek V4 のチャット・推論DeepSeek V4DeepSeek プランのキー
Kimi K3 のチャットKimi K3Kimi K3 プランのキー
Doubao Seed のチャット(画像入力も可)Doubao SeedDoubao Seed プランのキー
Midjourney 画像生成MidjourneyMidjourney 画像生成グループのキー
音声合成・ボイスクローンMiniMax SpeechMiniMax 音声グループのキー
Doubao の音声合成・シーン音声生成・ボイスクローンDoubao 音声Doubao 音声プランのキー
モデルファミリーごとに専用のプランキーを使う:

複数モデルを使うプロジェクトでは、選択中のコントラクトに記載された専用の環境変数(HOPBASE_CLAUDE_API_KEY や HOPBASE_GEMINI_API_KEY など)を使用してください。単一モデルのプロジェクトでは、引き続き HOPBASE_API_KEY を使用できます。実際のキーを AI との会話に貼り付けたり、ソースコード、コミット、スクリーンショット、ログに含めたりしないでください。

コンソール上の正確なグループ名:

各行に対応する正確なグループ名は、クイックスタート:グループの選び方を参照してください。Claude Max(ccmax)グループは Claude Code クライアント内でのみ使えます。SDK や API のプロジェクトで Claude を使う場合は、別の Claude グループを選んでください。

Claude 系のキーで使う Anthropic Messages と Claude Code
このプロジェクトでは HopBase 経由で Claude モデルのみを接続し、以下の契約に厳密に従ってください。メーカー公式 API ドキュメントと異なる場合は、この契約が優先されます。

対象範囲
- Claude API(Anthropic Messages)または Claude Code に必要な範囲だけを実装してください。他のモデルファミリーを追加・設定・テストしないでください。
- 既存のフレームワーク、SDK、コードスタイルを維持し、動作に必要な最小限の変更だけを行ってください。
- まず、ローカルのシングルユーザーツール、社内サービス、下流の顧客やテナントにサービスを提供するアプリケーションのどれに当たるかを判断し、それに応じてキーの配置とアーキテクチャを決めてください。

キー
- Claude 系のキーのみを使用してください。キーはコンソールのグループ 1 つに紐づき、そのグループのモデルにしか届きません:
  - 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 を付加します)。/v1 で終わる Base URL は /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 ブロックに書き込み、シェルの環境変数より優先されます。

リクエストのルール
- 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 を使用)。アシスタントのプレフィルは非対応です。
- 過去の 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 は実際のキーを含めずに更新してください。
- 下流やマルチテナント向けの呼び出しでは、キーをサーバー側に保持し、呼び出し元の認証を再利用したうえで、モデルのアローリスト、リクエスト制限、タイムアウト、レート制限、利用状況の帰属管理、マスキングしたログを追加してください。ローカルのシングルユーザーツールにはこの層を追加しないでください。
- アカウントの既定の同時実行数は 5 リクエストです。超えた分はキューに入らず、Retry-After: 1 付きの 429 で即座に拒否されるため、クライアント側で流量を制御してください。

検証と引き渡し
- 設定後に最小限の実リクエストを 1 回送信してください。ストリーミングのテストは、プロジェクトが実際にストリーミングを使う場合のみ追加してください。
- 返された claude- モデルに max_tokens 1024 で「ok とだけ返信」を求める Messages リクエストを 1 回送り、content[0].text を確認してください。
- 変更したファイル、キーの変数名、モデル ID、エンドポイント、HTTP ステータス、マスキングしたレスポンスの要約を報告し、起動・検証・ロールバックの各コマンドを添えてください。

コーディングエージェント用のルールファイルをダウンロード

このプロジェクトで使うモデルファミリーをすべて選択してください。ファイルは各契約を統合し、共通ルールを 1 回だけ記載したうえでファミリーごとの節を並べ、最新ドキュメントと MCP サーバーへのリンクを添えます。4 つ以上選択した場合、各節はキー・モデル・接続のルールだけを残し、全ルールはリンクで示します。

モデルファミリー
保存先 AGENTS.md
保存先 .cursor/rules/hopbase.mdc
保存先 .claude/skills/hopbase-api/SKILL.md

タブを切り替えると、コントラクトと「AI 用にコピー」の内容も連動して切り替わります。コントラクトは、AI エージェントに選択中のファミリーのキーのみでモデルを検出させ、その応答からモデル ID を選ばせるものです。これにより、プランをまたいだキーの取り違えを防ぎます。

ルールをリポジトリに残すには、コントラクトの下にあるパネルでプロジェクトが使うモデルファミリーをすべて選択し、AGENTS.md、Cursor ルール(.cursor/rules/hopbase.mdc)、または Claude Code スキル(.claude/skills/hopbase-api/SKILL.md)としてまとめてダウンロードしてください。共通ルールは 1 回だけ記載され、その後にファミリーごとの節と、最新ドキュメントおよび下記 MCP サーバーへのリンクが続きます。ファイルをコミットしておけば、どのエージェントセッションも同じルールから始められます。モデルやパラメーターが変わったら再度ダウンロードしてください。

ダウンストリーム利用への対応方針

プロジェクトの状況想定されるアーキテクチャ
ローカルのシングルユーザーツール環境変数と対応する SDK を使用します。プロキシサービスは追加しません
社内向けサービスキーはサーバー側に保持し、既存の認証、レート制限、エラー処理をそのまま維持します
顧客向けまたはマルチテナントのサービスキーの分離、呼び出し元の認証、モデルのアローリスト、レート制限、利用状況の帰属管理、バッファなしの SSE、ログのマスキングを追加します

コントラクトがゲートウェイ的な制御を追加するのは、アプリケーションが下流のユーザーに代わってリクエストを行う場合のみです。ローカルな連携を不要にサービス層化することはありません。

MCP サーバー

コーディングエージェントは、保存したファイルだけに頼らず、MCP 経由で HopBase にリアルタイムで問い合わせることもできます。サーバーは読み取り専用で、リクエストと同じ 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、パラメーター名、エラーコード)に最も一致するドキュメントの節。各結果に URL と抜粋付き
get_balanceアカウント残高と、このキーの利用上限の使用状況(USD)
get_key_infoキー名、グループ、利用上限、同時実行上限、有効期限、ステータス
get_usageこのキーのリクエスト数、トークン数、請求額。既定は直近 7 日、最長 92 日

get_model_limits と search_docs は公開済みのドキュメントを読み取り、更新は最大 1 時間に 1 回です。リンク先のドキュメントページが正であり、結果に載っていない上限が存在しないとは限りません。

Claude Code

claude mcp add --transport http hopbase https://api.hop-base.com/mcp \
  --header "Authorization: Bearer $HOPBASE_API_KEY"

コマンド実行時にシェルが環境変数を展開するため、キーはローカルの 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 が見られるのは、設定したキーに含まれるグループだけです。別のモデルファミリーを確認するには、そのグループをキーに追加するか、そのグループを含むキーでサーバーエントリーをもう 1 つ追加してください。

次のステップ