AI と連携する
HopBase のモデルファミリーを選び、対応するコントラクトをコーディングエージェントに渡します。
まずモデルファミリーを選び、選択中のタブに表示されるコントラクトを Codex、Claude Code、Cursor など任意のコーディングエージェントに渡します。各コントラクトには、そのファミリーに必要なキー、プロトコル、エンドポイントだけが含まれます。
対応するモデルタブを選ぶ
| 利用したい機能 | タブ | プランのキー |
|---|---|---|
| Claude API または Claude Code | Claude | Claude プランのキー |
| GPT チャット、Codex Responses、GPT Image | GPT / Codex | OpenAI / Codex プランのキー |
| Gemini チャット、Omni、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 を呼び出せません |
| Kling の動画、画像、モーションコントロール、アバター、リップシンク | Kling | Kling プランのキー |
| Wan 3.0 または HappyHorse の動画生成 | Wan / HappyHorse | Wan 3.0 プランのキー、または HappyHorse プランのキー — コンソール上は別々のプランで、キーもそれぞれ必要です |
| Grok のチャット、画像、動画生成 | Grok | Grok プランのキー。動画生成には別の Grok 動画プランを使用します |
| Qwen チャット(画像・動画入力対応) | Qwen | Qwen プランのキー |
| DeepSeek V4 のチャット・推論 | DeepSeek V4 | DeepSeek プランのキー |
| Kimi K3 のチャット・推論 | Kimi K3 | Kimi K3 プランのキー |
モデルファミリーごとに専用のプランキーを使う
複数モデルを使うプロジェクトでは、選択中のコントラクトに記載された専用の環境変数(HOPBASE_CLAUDE_API_KEY や HOPBASE_GEMINI_API_KEY など)を使用してください。単一モデルのプロジェクトでは、引き続き HOPBASE_API_KEY を使用できます。実際のキーを AI との会話に貼り付けたり、ソースコード、コミット、スクリーンショット、ログに含めたりしないでください。
Claude プランのキーのみを使用する Anthropic Messages と Claude Code
このプロジェクトでは HopBase のClaude モデルのみを接続し、以下の契約に従ってください。
対象範囲
- Claude API または Claude Codeに必要な範囲だけを実装してください。このコントラクトで選ばれていないモデルファミリーを追加・設定・テストしないでください。
- 既存のフレームワーク、SDK、コードスタイルを維持し、この接続に必要な最小限の変更だけを行ってください。
- キーの配置とアーキテクチャを選ぶ前に、これがローカルのシングルユーザーツールなのか、社内向けサービスなのか、それとも下流の顧客やテナントにサービスを提供するアプリケーションなのかを判断してください。
キーとモデル
- Claude プランのキーのみを使用してください。複数モデルを扱うプロジェクトでは HOPBASE_CLAUDE_API_KEY または既存のシークレットマネージャーを優先してください。HOPBASE_API_KEY の再利用は、単一モデルのプロジェクトであることが明確な場合に限ります。
- キーを新規作成したり、他のモデルファミリーのキーを読み取ったり、実際のキーを会話に貼り付けるよう私に求めたりしないでください。キーが利用できない場合は作業を止め、ローカルまたはシークレットマネージャーでの設定を私に依頼してください。
- まずこのキーで GET https://api.hop-base.com/v1/models を呼び出し、レスポンスからclaude- で始まるモデル IDのみを選択してください。
- model_not_found が返った場合は /v1/models を取得し直し、返された完全なモデル ID を使用してください。モデル名を推測したり書き換えたりしないでください。
接続
- Anthropic プロトコルを使用し、Base URL は https://api.hop-base.com とし、/v1 は付けません。
- Anthropic SDK では api_key を、ネイティブ HTTP では x-api-key を使用します。既存の Anthropic コードはネイティブの認証方式をそのまま維持してください。
- SDK は Claude API のリクエストを POST /v1/messages に送信します。これを OpenAI Chat Completions に変換しないでください。
- Claude Code では ANTHROPIC_BASE_URL=https://api.hop-base.com を使用し、ANTHROPIC_AUTH_TOKEN には選択した Claude のキーを設定します。
実装
- 現在の依存関係と設定を確認し、インストール済みの SDK を再利用してください。関係のない他プロバイダーの設定はすべてそのまま維持してください。
- Base URL、キーの変数名、デフォルトモデルは既存の設定の仕組みに組み込んでください。.env.example は実際のキーを追加せずに更新してください。
- 下流やマルチテナント向けの呼び出しでは、キーを必ずサーバー側に保持し、呼び出し元の認証を再利用した上で、モデルのアローリスト、リクエスト制限、タイムアウト、レート制限、利用状況の帰属管理、マスキングしたログを追加してください。
- ローカルのシングルユーザーツールに、プロキシサービスやマルチテナント向けゲートウェイを追加しないでください。
- デフォルトモデルは /v1/models が返す Claude モデルの中からのみ選んでください。ドキュメントの例をそのままハードコードしないでください。
- Anthropic の SSE はエンドツーエンドでそのまま透過し、モデル自身が返す 4xx や 5xx のステータスと安全なエラー詳細を保持してください。
検証と引き渡し
- 設定が完了したら、最小限の実際のリクエストを 1 回送信してください。プロジェクトが実際にストリーミングを使用する場合のみ、ストリーミングのテストを追加してください。
- レスポンスに含まれる Claude モデルに Messages 経由で「ok とだけ返信してください」と伝え、content を確認してください。
- 変更したファイル、キーの変数名、モデル ID、エンドポイント、HTTP ステータス、マスキングしたレスポンスの要約を報告してください。起動・検証・ロールバックの各コマンドも添えてください。タブを切り替えると、コントラクトと「AI 用にコピー」の内容も連動して切り替わります。コントラクトは、AI エージェントに選択中のファミリーのキーのみでモデルを検出させ、その応答からモデル ID を選ばせるものです。これにより、プランをまたいだキーの取り違えを防ぎます。
ダウンストリーム利用への対応方針
| プロジェクトの状況 | 想定されるアーキテクチャ |
|---|---|
| ローカルのシングルユーザーツール | 環境変数と対応する SDK を使用します。プロキシサービスは追加しません |
| 社内向けサービス | キーはサーバー側に保持し、既存の認証、レート制限、エラー処理をそのまま維持します |
| 顧客向けまたはマルチテナントのサービス | キーの分離、呼び出し元の認証、モデルのアローリスト、レート制限、利用状況の帰属管理、バッファなしの SSE、ログのマスキングを追加します |
コントラクトがゲートウェイ的な制御を追加するのは、アプリケーションが下流のユーザーに代わってリクエストを行う場合のみです。ローカルな連携を不要にサービス層化することはありません。