> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sambanova.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Claude Code

本ガイドでは、SambaNova プラグインで Claude Code を拡張し、SambaNova ホストのモデルにサブエージェントとしてコーディングタスクを委任する方法を解説します。計画 (Claude) と実行 (SambaNova) を分離することで、より高速でコスト効率の高いワークフローを実現できます。

## 2 つの連携方法

Claude Code と SambaNova の連携方法は 2 つあります。どちらも SambaNova ホストのモデルにコーディング作業を行わせる点は同じですが、Anthropic のフロンティアモデルが計画とオーケストレーションを担う形でループに介在し続けるかどうかが異なります。

| | **オプション A: Direct API (API 直接接続)** | **オプション B: プラグイン** |
| - | - | - |
| **仕組み** | Claude Code を SambaNova の Anthropic 互換 Messages API に直接向けます。セッション全体を SambaNova モデルが実行します。 | Anthropic モデル (例: Opus) がメインセッションで計画とオーケストレーションを担い、`/code` サブエージェント経由で SambaNova モデルに実行を委任します。 |
| **Anthropic モデルの介在** | なし。計画と実行のすべてが SambaNova 上で動作します。 | あり。フロンティアモデルが計画し、SambaNova が実行します。 |
| **セットアップ** | いくつかの環境変数を設定して起動するだけです。 | プラグインをインストールし、ローカルのモデルレジストリを管理します。 |
| **ツール** | クライアントサイドのツールと設定済みの MCP サーバーは動作します。Web 検索などの Anthropic サーバーサイドツールは動作しません (エンドポイントは推論専用です)。 | メインセッションでは Web 検索を含む Claude Code の全ツールが利用可能です。`/code` サブエージェントはファイルシステムとシェルのみで、MCP は利用できません。 |
| **適した用途** | 最もシンプルかつ低コストな構成。SambaNova モデルをエンドツーエンドのコーディングエージェントとして評価する用途にも適します。 | フロンティアモデル品質の計画と reasoning に、低コストで高速な大量実行を組み合わせる用途。 |

**オプション A を選ぶべきケース**: 最小限のセットアップで、Anthropic を利用せずに、単一の SambaNova モデルにすべてを任せたい場合。モデルをフル機能のコーディングエージェントとして試す用途や、コスト重視の自己完結型ワークフローに最適です。

**オプション B を選ぶべきケース**: 難易度の高い計画とオーケストレーションを Anthropic のフロンティアモデル (Opus など) に任せ、機械的な実行をより低コストで高速な SambaNova モデルに引き渡したい場合。後述の**オプション B** をご参照ください。

***

## オプション A: 環境変数による Direct API 接続

SambaNova は Anthropic 互換の Messages API を公開しているため、Claude Code を直接そこに向けることができます。プラグインもサブエージェントも不要で、セッション全体を SambaNova モデルが担います。

### 前提条件

* **Claude Code** がインストール済みであること ([クイックスタート](https://code.claude.com/docs/en/quickstart))
* [cloud.sambanova.ai](https://cloud.sambanova.ai/?utm_source=claudecode\&utm_medium=external\&utm_campaign=cloud_signup) で取得した **SambaNova API キー**

### セットアップ

以下の環境変数をエクスポートしてから、Claude Code を起動します。

```bash theme={}
export ANTHROPIC_BASE_URL="https://api.sambanova.ai"
export ANTHROPIC_API_KEY="<your-sambanova-api-key>"  # from cloud.sambanova.ai/apis
export ANTHROPIC_MODEL="MiniMax-M2.7"
# Route Claude Code's background/"Haiku" tasks to SambaNova too
export ANTHROPIC_DEFAULT_HAIKU_MODEL="MiniMax-M2.7"

claude
```

これで、セッション内のすべてのプロンプトが SambaNova モデル上で実行されます。Claude Code は計画と実行をこのモデルに対して直接行います。

<Warning>
  `ANTHROPIC_MODEL` に加えて `ANTHROPIC_DEFAULT_HAIKU_MODEL` も必ず設定してください。Claude Code をカスタムプロバイダーに向けた場合でも、バックグラウンドタスクや内部タスク (権限自動モードの分類器など) は、小型で高速な「Haiku」クラスのモデルを呼び出し続けます。これが SambaNova モデルにマッピングされていないと、それらのタスクは警告なしに失敗するか機能低下します。`ANTHROPIC_DEFAULT_HAIKU_MODEL` は、非推奨となった `ANTHROPIC_SMALL_FAST_MODEL` に代わる環境変数です。
</Warning>

<Tip>
  これらの環境変数は `~/.zshrc` (またはお使いのシェルのプロファイル) に永続化し、新しいシェルから Claude Code を起動して、その実行環境に確実に反映されるようにしてください。任意送信のテレメトリやバージョンチェックが Anthropic に届かないようにするには、`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1` も設定できます。
</Tip>

<Warning>
  SambaNova の Messages エンドポイントは**推論専用**です。Anthropic のサーバーサイド組み込みツール (`web_search`、`code_execution`、ホステッドの `bash` と `text_editor`) はサポートされておらず、`400` エラーを返します ([Messages API の注意事項](/docs/ja/features/messages) をご参照ください)。そのため、Direct API モードでは Claude Code の **Web 検索は動作しません**。Claude Code がローカルで実行するものは影響を受けません。クライアントサイドのツール (ファイル編集、`Bash`、`Grep`/`Glob`、ファイル読み取り) や、追加した MCP サーバーはそのまま利用できます。
</Warning>

<Tip>
  **Web 検索が必要な場合:** クライアントサイドの Web 検索 MCP サーバーを追加してください。Claude Code は MCP サーバーをローカルで実行するため、どのプロバイダーを利用していても Direct API モードで動作します。`claude mcp add <name> -- npx -y <web-search-mcp-package>` で追加できます。検索 MCP を提供しているプロバイダーには、[Exa](/docs/ja/integrations/exa) と [Linkup](/docs/ja/integrations/linkup) (いずれも SambaNova 連携ガイドあり) のほか、Brave や Tavily があります。
</Tip>

### トラブルシューティング

Direct API モードで初回に発生する失敗のほとんどは、次のいずれかが原因です。

| 症状 | 原因 | 対処方法 |
| - | - | - |
| 起動時に **`401 Unauthorized`** | `ANTHROPIC_API_KEY` が未設定または誤っている | Claude Code を起動するのと同じシェルで、[cloud.sambanova.ai/apis](https://cloud.sambanova.ai/apis?utm_source=claudecode\&utm_medium=external\&utm_campaign=cloud_signup) で取得した有効なキーをエクスポートしてください。 |
| Messages エンドポイントで **`404 Not Found`** | `ANTHROPIC_BASE_URL` に `/v1` が含まれている | SDK が自動的に `/v1/messages` を付加するため、ベースは `https://api.sambanova.ai` のみとし、末尾に `/v1` を付けないでください。 |
| SambaCloud 側で **`model not available`** | 設定したモデルが提供終了となったか、入れ替えで提供対象から外れた | 現在利用可能なモデルの一覧を取得し、`ANTHROPIC_MODEL` を更新してください: `curl https://api.sambanova.ai/v1/models -H "Authorization: Bearer $ANTHROPIC_API_KEY"` |
| **バックグラウンドタスクが警告なしに失敗またはハングする** | `ANTHROPIC_DEFAULT_HAIKU_MODEL` が未設定か、Anthropic の Haiku モデルを指したままになっている | SambaNova モデルに設定してください ([セットアップ](#セットアップ) をご参照ください)。 |
| **Web 検索がエラーになるか `400` を返す** | SambaNova のエンドポイントは推論専用で、Anthropic のサーバーサイド `web_search` ツールは利用できない | クライアントサイドの Web 検索 MCP サーバーを追加してください (上記のヒントをご参照ください)。 |

***

## オプション B: プラグイン – Claude が計画し、SambaNova が実行

ここから先は、プラグインベースの方式をセットアップします。この方式では、Anthropic モデルがメインセッションでオーケストレーションを担い、`/code` サブエージェント経由で SambaNova モデルに実行を委任します。

### 前提条件

作業を始める前に、以下の環境を準備してください。

* **Python 3.11 以上**が PATH 上にあること – 3.10 ではインストールフックが警告なしに失敗します
* **`opencode`** (`curl -fsSL https://opencode.ai/install | bash`)
* **SambaNova API キー**を、Claude Code の起動前に `SAMBANOVA_API_KEY` としてエクスポートしておくこと。[API キーと URL](/docs/ja/get-started/api-keys-urls) をご参照ください
* [Claude Code CLI](https://code.claude.com/docs/en/quickstart) とそのモデルへのアクセス

### 環境の確認

以下の 1 行のコマンドで、Python、エグゼキューター CLI (`cn` または `opencode`)、API キーを確認できます。

```bash theme={}
python3 --version && { opencode --version; } && [ -n "$SAMBANOVA_API_KEY" ] && echo OK
```

### セットアップ

1. Claude Code にプラグインをインストールします。
   ```text theme={}
   /plugin marketplace add https://github.com/sambanova/sambanova-plugin-cc
   /plugin install sambanova-plugin-cc
   ```
2. **Claude Code を再起動**します (または `/reload-plugins` を実行します)。
3. インストールを確認します。
   ```text theme={}
   /list-models
   ```
   プラグインには古いデフォルトモデルが同梱されている場合があります。次のステップで `/update-model MiniMax-M2.7` を実行し、現在の推奨モデルを使用してください。
4. 現在のモデルを登録します。
   ```text theme={}
   /model-info                  # browse the SambaNova platform catalogue
   /update-model MiniMax-M2.7   # add it to your local registry
   /list-models                 # confirm
   ```
   `MiniMax-M2.7` の場合は、提案されるサンプリングパラメータ (`temperature=1.0`、`top_p=0.95`) をそのまま受け入れてください。

<Warning>
  `/code` には必ず**プレフィックスなし**のモデル ID (`MiniMax-M2.7`) を渡してください。`sambanova/MiniMax-M2.7` の形式は使用しないでください。
</Warning>

<Note>
  Function calling に対応したエグゼキューターを選択してください。`/code` のサブエージェントはファイルの書き込みやコマンドの実行をツール呼び出し経由で行うため、その背後のモデルはツール呼び出しに対応している必要があります。`MiniMax-M2.7` は [Function calling](/docs/ja/features/function-calling) の対応一覧に掲載されていますが、`gemma-4-31B-it` は掲載されていません。デモ 2 とデモ 3 で示すようにプランナーとして利用する場合は、事前に、委任した書き込みタスクを完了できることを確認してください。現行のモデル一覧は [SambaCloud モデル](/docs/ja/models/sambacloud-models) をご参照ください。
</Note>

## Claude と SambaNova によるサブエージェントの実行

[SambaNova プラグイン](https://github.com/sambanova/sambanova-plugin-cc) は、すべてのモデル設定を保存する独自のローカル SQLite データベースを保持します。プラグインを使用すると、サブエージェント用に分離された実行時専用の設定が生成されるため、既存の IDE 設定と明確に分離されます。

#### 機能概要

Claude Code から、SambaNova ホストのモデル (例: `MiniMax-M2.7`) 上で動作する `opencode` にコーディングタスクを**委任**できます。低コストな大量作業や、計画 (Claude) と実行 (SambaNova) の分離に有用です。

スラッシュコマンドは 5 つあります。最もよく使うのは **`/code`** で、`/list-models`、`/model-info`、`/update-model`、`/reset-model-db` はローカルのモデルレジストリを管理します。

以下では、ライブラリの最新ドキュメントを取得する MCP サーバーを使う例を含め、3 つの実践的なデモを紹介します。

***

#### デモ 1 – SambaNova エンドツーエンド

ペットフレンドリーな「hello world」ランディングページを、`MiniMax-M2.7` だけで構築・検証します。`/code` がタスク全体を低コストで高速な実行モデルに委任します。

```bash theme={}
mkdir -p ~/sambanova-demo && cd ~/sambanova-demo
```

ビルドを委任します。

```text theme={}
/code MiniMax-M2.7 ~/sambanova-demo "Create a minimalist, pet-friendly 'hello world' landing page in this directory. One index.html, one style.css, no JS frameworks. Soft pastel palette, a friendly paw-print emoji, a short tagline ('Hello, friend'), and a single call-to-action button. Keep it under 80 lines of HTML+CSS combined. Open index.html when done so I can preview it."
```

ブラウザで確認します。

```bash theme={}
open ~/sambanova-demo/index.html
```

これが **SambaNova のみ**のベースラインです。高速な実行モデル 1 つだけで、フロンティアモデルは介在しません。

***

#### デモ 2 – Claude が計画し、SambaNova が実行

アーキテクトとビルダーの分業です。**Claude** (現在のセッション) が精密な計画を作成し、**SambaNova** がそれを実行します。境界を越えるアーティファクトが `PLAN.md` であり、再現・差し替え・レビューが可能です。

**ステップ 1 – Claude に `PLAN.md` の作成を依頼します** (`/code` 経由ではなく、この Claude Code セッション内で行います)。

> Read `index.html` and `style.css` in `~/sambanova-demo`. Write `PLAN.md` describing how to extend this landing page into a "pet adoption finder" demo:
>
> * A gallery of 6 placeholder pet cards (name, species, one-line bio) in CSS grid
> * A search input that filters cards by name (vanilla JS, no frameworks)
> * A dark-mode toggle that persists in `localStorage`
>
> Include exact file layout, the JS event handlers needed, and a verification checklist a human can run in the browser. Don't modify any code yet.

<Accordion title="プロンプト例の日本語訳">
  `~/sambanova-demo` にある `index.html` と `style.css` を読み込み、このランディングページを「ペット里親探し」デモへ拡張する方法を記述した `PLAN.md` を作成してください:

  * CSS グリッドによる、プレースホルダーのペットカード 6 枚分のギャラリー (名前、種類、一言プロフィール)
  * 名前でカードを絞り込む検索入力欄 (フレームワークなしのバニラ JS)
  * `localStorage` に保存されるダークモード切り替え

  正確なファイル構成、必要な JS イベントハンドラー、そして人間がブラウザで実行できる検証チェックリストを含めてください。まだコードは変更しないでください。
</Accordion>

引き渡す前に、Claude が作成した計画をレビューしてください。自由に編集して構いません。計画をファイルとして具体化する目的はまさにそこにあります。

> **計画も SambaNova に任せたい場合:** まず `/update-model gemma-4-31B-it` でプランナーモデルを登録し、このセッションで計画を書く代わりに、計画の作成自体を委任します: `/code gemma-4-31B-it ~/sambanova-demo "<sample_plan_as_above>"`。ステップ 2 (`MiniMax-M2.7` での実行) は変わりません。これで計画と実行の両方が SambaNova 上で動作します。

**ステップ 2 – `PLAN.md` を SambaNova に引き渡します。**

```text theme={}
/code MiniMax-M2.7 ~/sambanova-demo "Read PLAN.md and execute every step. After each step, list which acceptance criteria from the plan are now satisfied. Open index.html at the end so I can verify in the browser."
```

**ステップ 3 – 動作を確認します。**

```bash theme={}
open ~/sambanova-demo/index.html
```

ギャラリー、動作する検索機能、動作するダークモード切り替えが表示されるはずです。

実行モデルは Claude との会話内容を一切参照しません。`PLAN.md` が仕様のすべてです。`PLAN.md` を修正して同じ `/code` コマンドを再実行することも、計画を書き直さずに実行モデルだけを差し替えることもできます。

***

#### デモ 3 – MCP を活用した、最新ライブラリドキュメントに基づく計画

デモ 2 に MCP サーバーを追加します。Claude が [**Context7**](https://github.com/upstash/context7) を使ってライブラリの「最新」ドキュメントを取得し、それを `PLAN.md` に織り込み、SambaNova が実行します。独自の検索処理を書かずに、古いドキュメントに起因する問題を解決できます。

##### Context7 のインストール (コマンド 1 つ)

```bash theme={}
npx ctx7 setup --claude
```

OAuth の手続きを案内し、無料の API キーを生成して、Claude Code 用に MCP サーバーを登録します。新しいツールを認識させるために **Claude Code を再起動**してください。

Claude Code 内で確認します。

```text theme={}
/mcp
```

`context7` が `resolve-library-id` と `query-docs` とともに表示されるはずです。

<Tip>
  OAuth を使いたくない場合は、手動で追加できます: `claude mcp add context7 -- npx -y @upstash/context7-mcp`。無料ティアはキーなしでも動作しますが、レート制限が低くなります。
</Tip>

##### タスク内容

デモ 2 の各ペットカードに、[date-fns](https://date-fns.org/) の `formatDistanceToNow` を使ってページ読み込み時に計算する、人が読みやすい「Added *X* days ago」ラベルを付けます。date-fns は Context7 の好例です。v2 から v3 への書き直しでインポート方法が変わり、v4 ではタイムゾーンサポートが追加されたため、モデルは動作しない古いインポートパターンを頻繁に出力します。

##### ステップ 1 – Claude が Context7 を使って計画

この Claude Code セッションで、以下を依頼します。

> Use the Context7 MCP server to look up *current* docs for the `date-fns` library – specifically `formatDistanceToNow` with the `addSuffix` option, and how to load date-fns in a plain browser page via its UMD CDN build (the `dateFns` global). Then update `~/sambanova-demo/PLAN.md` with a "Phase 2: relative date labels" section describing how to give each pet card in the existing finder a fixed `data-added` ISO date and render an "Added *X* days ago" label computed from it on load. Use the up-to-date API from Context7 – not what you remember. Quote the exact `<script>` CDN tag, the global function call, and `addSuffix` usage verbatim from the docs, and include a verification step a human can run in the browser.

<Accordion title="プロンプト例の日本語訳">
  Context7 MCP サーバーを使って `date-fns` ライブラリの最新ドキュメントを調べてください — 具体的には `addSuffix` オプション付きの `formatDistanceToNow`、そして UMD CDN ビルド (`dateFns` グローバル) 経由で date-fns を素の HTML ページに読み込む方法です。その上で `~/sambanova-demo/PLAN.md` に「フェーズ 2: 相対日付ラベル」のセクションを追記し、既存のファインダーの各ペットカードに固定の `data-added` ISO 日付を持たせ、読み込み時にそこから計算した「X 日前に追加」ラベルを表示する方法を記述してください。記憶に頼らず、Context7 から得た最新の API を使用してください。`<script>` の CDN タグ、グローバル関数の呼び出し、`addSuffix` の使い方をドキュメントからそのまま正確に引用し、人間がブラウザで実行できる検証手順も含めてください。
</Accordion>

Claude は `resolve-library-id` → `query-docs` を呼び出して最新の API を取得し、現行ドキュメントに基づいた計画を作成します。

> **計画も SambaNova に任せたい場合:** ここでの注意点として、`/code` のサブエージェントは **MCP にアクセスできない**ため、`gemma-4-31B-it` 自身は Context7 を呼び出せません。上記の `resolve-library-id` → `query-docs` の取得は Claude に行わせ、解決済みの API をプロンプトに貼り付けた上で、計画の文書化のみを委任します: `/code continue gemma-4-31B-it ~/sambanova-demo "<same_plan_as_above>"` (事前に `/update-model gemma-4-31B-it` で登録してください)。Claude が MCP のゲートウェイとなり、`gemma-4-31B-it` が計画を書きます。

##### ステップ 2 – SambaNova への引き渡し

```text theme={}
/code MiniMax-M2.7 ~/sambanova-demo "Read PLAN.md 'Phase 2' and execute it. After loading, open index.html so I can confirm each card shows an 'Added X days ago' label."
```

実行モデルに MCP アクセスは不要です。`PLAN.md` にはすでに解決済みの API が含まれています。

##### ステップ 3 – 動作確認

```bash theme={}
open ~/sambanova-demo/index.html
```

6 枚のカードそれぞれに「Added *X* days ago」というラベル (例: 「Added 3 days ago」) が表示されるはずです。

***

#### MCP サーバーとの組み合わせ

プラグインと MCP サーバーは委任の境界を挟んで反対側に位置しており、互いに補完し合います。

| 実行面 | 利用可能なツール |
| - | - |
| **Claude (現在のセッション)** | MCP ツール (GitHub、Atlassian、Linear、Slack、Confluence など) + シェル + Claude Code 組み込みツール |
| `/code` **サブエージェント** (`opencode`) | ファイルシステム + シェル。**MCP なし。** |

これにより、3 つのパターンが導かれます。

**1. MCP を活用した計画。** 外部コンテキストを取得し、`PLAN.md` に織り込んで引き渡します。

> *例:* Claude が Atlassian MCP サーバー経由で Jira チケット `PROJ-1234` を読み、リンクされた Confluence の設計ドキュメントを取得して、自己完結した `PLAN.md` を作成します。その後 `/code  MiniMax-M2.7 …` がそれを実行します。SambaNova の実行モデルは Jira の認証情報に一切触れません。

**2. MCP による後続処理。** `/code` の完了後、Claude が MCP 経由で結果を公開します。

> *例:* `/code` が `/tmp/exec-summary.md` を書き出します。Claude がそれを読み、GitHub MCP サーバー経由で PR を作成し、Jira チケットにコメントし、Slack チャンネルに投稿します。すべて現在のセッションから実行できます。

**3. サブエージェント内でのシェル CLI ツール。** サブエージェントに MCP はありませんが、`--auto` によるシェルアクセスがあります。PATH 上の任意の CLI (`gh`、`git`、`linear`、`aws` など) を利用できます。

> *例:* `/code MiniMax-M2.7 ~/project "Implement PLAN.md, run tests, then run 'gh pr create --fill' to open a draft PR."`

***

#### ヒント

* **`cwd` には絶対パスを使用する** – シェルの境界を越えると `~` の展開は信頼できません。
* **サブエージェントに検証を指示する** (「`index.html` を開いて確認して」等)。指示しないと、ファイルを編集しただけで止まります。
* **`git diff` や `grep` の結果をプロンプトで事前に解決しない** – サブエージェント自身に実行させます。
* **モデル ID はプレフィックスなし**で指定します。`sambanova/<id>` の形式は使用しません。
* **`open` は macOS 用**です。Linux では `xdg-open`、Windows では `start` を使用してください。

#### よくある注意点

**Python が 3.11 未満の場合。** プラグインはセッション開始時に、PATH 上で最初に見つかった `python3` を使って自動的に仮想環境を構築します。3.10 ではインストールが警告なしに失敗し、3.10 のインタプリタも「存在する」と見なされるため、壊れた仮想環境が自動では再構築されません。`pyenv install 3.11.9 && pyenv global 3.11.9` で修正した後、プラグインがキャッシュした `.env` ディレクトリを削除し、Claude Code を再起動して再構築を強制してください。

**セットアップ中に API キーが見つからない場合。** `SAMBANOVA_API_KEY` は Claude Code プロセスの環境変数に存在する必要があります。`~/.zshrc` でエクスポートし、新しいシェルから Claude Code を起動してください。

**「Model not found in database」と表示される場合。** `/model-info` は「プラットフォーム」のカタログを表示し、`/list-models` は「ローカル」のレジストリを表示します。`/code` が読むのはローカルの方です。不足しているモデルは `/update-model` で追加してください。

### 参考情報

* [SambaCloud モデル](/docs/ja/models/sambacloud-models) – 現行のモデル ID とコンテキスト長
* [Function calling](/docs/ja/features/function-calling) – サブエージェントを駆動できるモデルの一覧
* [API キーと URL](/docs/ja/get-started/api-keys-urls) – `SAMBANOVA_API_KEY` の生成方法
* プラグインのソース – [sambanova-plugin-cc](https://github.com/sambanova/sambanova-plugin-cc)
* SambaCloud – [cloud.sambanova.ai](https://cloud.sambanova.ai/)
* OpenCode ドキュメント – [opencode.ai/docs](https://opencode.ai/docs)
* Claude Code プラグイン – [docs.claude.com](https://docs.claude.com/en/docs/claude-code/plugins)
* Model Context Protocol – [modelcontextprotocol.io](https://modelcontextprotocol.io/)
