3行でいうと

  • ローカルのAIは、パソコンの中にサーバーを立て、OpenAI形式かAnthropic形式の窓口でエージェントにつなぐ。
  • LM StudioとOllamaはClaude Code向けの手順を出しているが、Claude以外のモデルへの接続は公式サポート外。
  • 限界は、文脈の長さ、道具呼び出しの精度、速さ。gpt-oss 20Bでも続けて呼べた率は44.4%。
  • 見立てでは、クラウドが止まったときの非常用で、置き換えにはならない。

まず前提:ローカルサーバーとは

ローカルのAIは、自分のパソコンの中で「サーバー」を立てて使えます。サーバーといっても、外には公開しません。パソコンの中のアプリ同士が、決まった形式でやりとりするための窓口です。

その窓口の形式(API)は、主に2種類あります。OpenAI形式とAnthropic形式です。コーディングエージェント(AIに指示すると、ファイルを読み、コードを直し、コマンドも実行してくれる道具)は、この窓口を通してモデルと話します。

ツール 窓口の場所 対応する形式(公式の記載)
Splash 127.0.0.1の8000番 OpenAI(Chat CompletionsとResponses)、Anthropic(Messages)
LM Studio localhostの1234番 OpenAI(/v1/chat/completionsなど)、Anthropic(/v1/messages)
Ollama localhostの11434番 OpenAI、Anthropic(一部の機能のみ)

Splashは、Inco AIが公開した、Macで動く推論エンジンです。ツール呼び出し、画像入力、JSONスキーマ指定の出力にも対応しています。認証は初期状態で無効で、外から使うときは環境変数 SPLASH_API_KEY を設定する、とHugging Faceのモデルページにあります。

公式は、つなぎ方を案内しているのか

案内しているところと、していないところがあります。

Splashは、公式ブログとモデルページに splash opencode、splash claude、splash codex、splash hermes というコマンドが載っています。GitHubのREADMEでは、splash serve でサーバーを起動したあと、別の端末から接続する形です。ただ、このコマンドが裏でどんな設定をするのかは、読めた範囲に書かれていません。要確認です。環境変数を自分で書く方法も、Splash側の資料では確認できていません。

LM Studioは、Claude Code向けのページを用意しています。手順は次のとおりです。

  1. lms server start --port 1234 でサーバーを起動します。
  2. 環境変数 ANTHROPIC_BASE_URL に http://localhost:1234 を入れます。
  3. 同じく ANTHROPIC_AUTH_TOKEN に、認証用の文字列を入れます。認証を有効にしていないときは、ページ上では仮の文字列です。有効にしたときは、LM Studioで作ったトークンを入れます。
  4. CLAUDE_CODE_ATTRIBUTION_HEADER を 0 にします。
  5. claude --model openai/gpt-oss-20b のように、使うモデルを指定して起動します。

Ollamaも、Claude Code向けのページがあります。ollama launch claude で起動できます。手動で設定するなら、ANTHROPIC_AUTH_TOKEN、ANTHROPIC_API_KEY(空にする)、ANTHROPIC_BASE_URL(http://localhost:11434)の3つです。

ここで、大事な注意が1つあります。Claude Code側の公式ドキュメントは、Anthropic形式の窓口を持つ「ゲートウェイ」へは、ANTHROPIC_BASE_URL で接続できると説明しています。一方で、Claudeではないモデルへ、ゲートウェイ経由でつなぐことは「サポートしない」とも明記しています。つまり、LM StudioやOllamaの案内は、それぞれの会社が出している手順です。Anthropicが動作を保証するものではありません。

他のツールの設定

名前は、公式ドキュメントで確認できたものだけを載せます。

ツール 設定の要点
OpenCode 設定ファイル opencode.json に、npm に @ai-sdk/openai-compatible、options.baseURL、models を書く。LM Studioの例は http://127.0.0.1:1234/v1
Cline 設定でプロバイダーに「LM Studio」を選び、ベースURLは http://localhost:1234 のまま。「Use Compact Prompt」の有効化を勧めている
Aider(LM Studio) 環境変数 LM_STUDIO_API_BASE(http://localhost:1234/v1)と LM_STUDIO_API_KEY(ダミーでよいが空は不可)。aider --model lm_studio/モデル名
Aider(Ollama) 環境変数 OLLAMA_API_BASE。aider --model ollama_chat/モデル名

OpenCodeの公式ページには、設定の書き方の例があります。モデルごとに limit の context(文脈の長さ)と output(出力の長さ)も書けます。

SplashをOpenCodeなどに手で接続する書き方は、Splash側の資料では確認できていません。上の例のベースURLを、http://127.0.0.1:8000/v1 にすれば動きそうですが、これは見立てです。要確認です。

ローカルでやるときの現実的な限界

文脈の長さ

コーディングエージェントは、最初から長い指示文を送ります。そのうえ、ファイルの中身やコマンドの結果が、会話にどんどん溜まります。

文脈を大きくすると、そのぶんメモリを食います。モデル本体に加えて、会話の記憶の置き場所(KVキャッシュ)が必要になるからです。

ツール呼び出しの精度

エージェントは、ファイルを読む、書く、実行する、といった「道具」を、モデルが自分で呼び出すことで動きます。ここが弱いと、話になりません。

日本語での実測が、ai-local-labにあります。

モデル 1回で呼べた率 続けて呼べた率
gpt-oss 20B 88.9% 44.4%
Swallow 8B 16.7% 0%
LLM-jp-4 8B 16.7% 0%

条件は、RTX A6000(48GB)、Ollama 0.31.1、公開されているGGUF形式のモデル、temperatureは0.7です。1回で呼ぶ試験が6種類を3回ずつ、続けて呼ぶ試験が3種類を3回ずつです。つまり、試行は18回です。筆者の計算では、gpt-ossは16回、SwallowとLLM-jp-4は3回成功しています。

読むときの注意があります。

OpenCodeの公式ページも、道具の呼び出しがうまくいかないときは、Qwen-CoderやDeepSeek-Coderのような、得意なモデルを選ぶよう勧めています。Ollamaでは num_ctx を16〜32kくらいに上げる、とも書いています。

Ollamaの窓口には、tool_choice(道具を指定して呼ばせる指定)が使えない、という制限があります。LM StudioとSplashは、読めた範囲で確認できていません。

速さ

LM Studioのブログに載っているSplashの測定(ベンダー側の測定)では、M5 Pro(メモリ48GB)で、Qwen3.8-27Bの32Kトークンの入力のとき、毎秒54トークンです。入力が長くなると遅くなる、という点も見えます。

エージェントでは、長い入力を読み込む時間(最初の1文字が出るまで)も効いてきます。この時間の数字は、確認できた範囲にありません。要確認です。

Splashの動作条件は、公式でM3以降のMac、メモリ36GB以上(48GB以上を推奨)です。32GBのMacで動くかは、ここでは確認していません。

なお、Qwen3.8-27Bのモデルページには、コード作業の数字(SWE-bench Pro 61.7%など)が出ています。これは開発元の自己申告です。4ビットに縮めて、家庭のパソコンで動かした数字ではありません。

クラウドが使えなくなったとき、どこまで使えそうか

ここからは見立てです。

使えそうな作業。コードの説明、小さな修正、1つのファイルの中で終わる作業、質問への回答。1回ずつ人が確認しながら進める使い方です。

厳しそうな作業。何十手もある自動の大仕事。続けて道具を呼ぶ成功率が、実測で44.4%まで下がったことを考えると、放っておく使い方は危うそうです。

備えとして、前もってやること。

この記事は、ここに書いた設定を実機で確かめた記録ではありません。使う前に、小さな作業で通してください。

結論としては、「止まったときに、仕事の一部を続けるための非常用」と考えるのが無理がありません。クラウドの代わりにそのまま置き換えられる、とは言えない、というのが現時点の見立てです。

出典

更新履歴