ローカルLLMでコーディングエージェントを運用する(LM Studio + OpenCode)

ハウツー

Claude Codeはすぐ制限に達し、API利用だと従量課金が重すぎて胃に穴が空きそう……

2025年の春頃、私はそうでした。しかし今(2026年5月)はそうではありません。そこそこ強いオープンウェイトのLLMであるQwen3.6が登場したからです。私はLM StudioとOpenCodeを使って、自分のPCでLLMにコーディングを任せています。この記事ではその方法を共有します。

アプリ間の繋がり

LM StudioをLLMのAPIサーバーとして使い、OpenCodeがクライアントのコーディングエージェントになります。サーバーとクライアントを同一のネットワークに置いて互いに通信できるようにするためにTailscaleを使います。

必要なもの

  • 24GB VRAMか12GB VRAM + 32GB RAM(あるいは32~64GBユニファイドメモリ)搭載PC
  • 数十GBの空きストレージ
  • 適当な開発用クライアントPC

API代をケチるために逸般の誤家庭的なスペックを求めるんじゃねえよ! というのはそう。でもまあClaude Sonnetに届くかどうかというモデルが使い放題になるので使い込めばすぐペイできると思います。何より従量課金から開放されるのがいい。

手順

必要なアプリケーションのインストール

全てWindows, Linux, Macに対応しているはずです。
まずLM Studio、OpenCode(opencode.ai)、Tailscaleを各サイトの指示に従ってインストールします。OpenAI互換のAPIを扱えるなら必ずしもLMStudioでなくとも構いません。Tailscaleがお好みでないなら、自力でVPNを構築してください。

LM Studioのトークン生成速度は最速ではありません。最速を求めるならVLLM(Linux, Mac限定)を使うことをお勧めします。

LM Studio

アプリケーションを触ってみて、何ができるものなのかをなんとなく把握してください。

モデルの検索画面からQwen3.6-27BあるいはQwen3.6-35B-A3Bをダウンロードします。24GB VRAMかユニファイドメモリが手元にある場合は前者、そうでない場合は後者を選びます。前者のトークン生成が遅い場合も後者を試してください。

Models画面に今までダウンロードしたモデルの一覧が表示されています。該当モデルの歯車のアイコンを押したあと右側のLoadタブを選び、以下のように設定します。

  • Context Length: できれば100000以上。モデルが読める最大のトークン量です。
  • GPU Offload: 右端
  • Evaluation Batch Size: 5000以上
  • Keep Model in Memory: オフ
  • Try mmap(): オフ
  • Flash Attention: オン
  • K Cache Quantization Type: オン、q4_0
  • V Cache Quantization Type: オン、q4_0

歯車アイコンの左にある…アイコンからCopy Default Identifierをクリックして、その値をどこかにメモしておいてください。

Developer画面でStatus: Stoppedのトグルボタンをオンにしてサーバーを起動し、隣のServer Settingsから以下の設定をします。

  • Require Authentication: お好みで。
  • Serve on Local Network: オン

Tailscale

細かい説明は不要かと思います。LLMのサーバーとなるPCとクライアントPCを同じネットワーク内に配置するのに必要です。

OpenCode

一度起動して、閉じます。するとどこかにopencode.jsonというファイルが作成されます。OSによってバラバラなので公式ドキュメントを参照してください。それを編集します。
先程LM Studioに追加したモデルをここに追記します。

{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "websearch": "allow"
  },
  "provider": {
    "lmstudio": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "LM Studio (local)",
      "options": {
        "baseURL": "http://<LLMサーバー側のTailscale IPアドレス>:1234/v1"
      },
      "models": {
        "qwen/qwen3.6-27b": {
          "name": "qwen3.6-27b (local)"
        }
      }
    }
  }
}

このようになります。”websearch”: “allow”しつつ環境変数でOPENCODE_ENABLE_EXA=1してopencodeを起動するとopencodeが検索機能を使えるようになります。

qwen/qwen3.6-27bは先程メモしたDefault Identifierです。

opencodeを起動して/modelsからモデルを選択し、メッセージを送信します。LM StudioのDeveloper画面でモデルがロードされたことが表示され、トークンが返ってきたら成功です。

コメント

タイトルとURLをコピーしました