0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ド素人がLM Studioで爆速でローカルエージェントを構築してみる

Posted at

はじめに

最近LLMでコーディングとか流行っていますね。
正直なところエージェントとかMCPとかよくわかってないのですが、流行には乗っかりたい。でもよくわからん。
ということで、わらかないなりにMCPとやらでエージェントを構築して、わからせられようと思います。

環境

Windows環境でいきます。
Python,gitは事前にインストール済みです。

Wiodows11
Python 3.12
GPU:Nvidia RTX4070ti 12GB
RAMメモリ:32GB

選定

少し調べてみたのですが、serenaというMCP(Model Context Protocol)がイケてるらしいです。

エージェント、MCPなど色々な用語を理解していなのですが、MCPというのはLLMがツールを使うためのインターフェイスらしいです。
MCPという共通プロトコルをインターフェイスに持つツール、数ある中のその1つがserenaということです。
serenaはコーディングに特化していて、通常のファイル全読み込みだとLLMへ渡すトークンが莫大になりますが、これを削減しつつなんかいい感じにしてくれるらしいです。LSPがうんたらかんたら、だそうです。すごいですね。
他にもファイル検索やweb検索特化など、世の中には色々なMCPがあるようです。

ローカルLLMを走らせるのにはLM Studioを使います。
GuiでローカルLLMを動かせるすごいやつです。最近、商用利用も可能になってグッと使いやすくなりましたね。
さらにGuiから各種ランタイムのアップデート、huggingfaceからモデルの検索・ダウンロードが可能です。すごい。

ということで、
LM Studio → MCP(serena) → ファイルアクセス
という感じの構成になります。

LLMはGpt-oss 20Bを使います。
VRAM12GBだとちょっと溢れますが、Tool useにはこのモデルが良いらしいのでトライしてみます。

環境構築

uvとやらをインストールする必要みたいです。
厳密には必須ではないけども、ド素人としては公式の推奨に大人しく従います。
uvはvenvと同様のPython仮想環境だそうです。

uvのインストール

pipからインストールできるようです。ありがたい。

pip install uv 

serenaのインストール

コマンドプロンプトあるいはPower Shellからgit cloneします。
Power Shellは実行防止だかのバイパス設定が面倒だったので、ここはド素人らしくコマンドプロンプトで進めていきたいと思います。

まずはgitでダウンロードしましょう。
Dドライブの直下にserenaのフォルダが作られます。

D:\>git clone https://github.com/oraios/serena

作成されたしたserenaフォルダに移動して

D:\>cd serena

uv run serena start-mcp-serverを実行します。

D:\serena>uv run serena start-mcp-server

すると勝手に依存パッケージをダウンロードして、serenaが起動します。
完了するとブラウザにserena dashoboardとやらが開くはずです。

LM Studioのインストール

ローカルLLMの実行のためにLM Studioをインストールしましょう。

とりあえず最新版をインストールしとけばいいと思います。
インストールしたら「探索」からgpt-oss 20Bを検索してダウンロードしておきましょう。

LM Studioの設定

LM StudioからSerenaにアクセスできるよう設定をしていきます。
まずは右上の設定アイコンからinstallを選択し、edit mcp.jsonを選択しましょう。

image.png

すると、エディタタブがひらきますので、以下のように設定してください。

mcp.json
{
  "mcpServers": {
    "serena": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "D:/serena",
        "serena",
        "start-mcp-server",
        "--context",
        "ide-assistant",
        "--project",
        "コーディングや解析したいコードのフォルダ(絶対パス)"
      ]
    }
  }
}

ファイルパスは\だとエラーがでるので、Windows環境ですが/で記載します。パスをそのままコピペできないのが不便ですね。
注意すべきポイントは--directoryのD:/serenaと、--projectのファイルパスです。
私の場合、前述の通りDドライブ直下のD:\serenaにgit cloneしましたが、ここは適宜クローン先に変更してください。
また--projectのパスについても各自で記載してください。

Errorが出なければSaveボタンから保存ができます。
(思いのほか厳格にErrorチェックされます)

うまく行けば、使えるTool一覧が表示されます。
ここまでくれば、ほぼ導入は完了です。

image.png

試してみる

早速試していく。
ということで、dirしてもらいます。

image.png

tool useするときに許可を求められます。
指示通りlist_dirをするみたいですね。Proceedを押して許可してあげましょう。

image.png

ということで、dirが実行され表示してくれました。
やりましたね!エージェントの完成です!
要約やコード解析などいろいろと試してみてください。

Tips

ちょっとしたTipsを紹介します。

MCP呼び出しのたびにdashboardが開く

LLMがMCP(serena)を呼び出すたびにブラウザが開いてdashboardが表示されるのですが、ちょっと煩わしいですよね。
そんなときはserenaの設定ファイルを編集しましょう。

D:\serena>uv run serena config edit

お使いのエディタで開くと思うので、web_dashboardを探してfalseに設定しましょう。
これでdashboardは表示されなくなります。

LLMのコンテキスト長

長めに設定しましょう。LM Studioの初期値は4kなのでかなり少なめです。
少なくとも10kは確保したほうが安定します。
本格的にコード解析するなら100k程度はあったほうが良いでしょう。

モデルロードの設定

参考までに設定を記載します。
こちらの設定で27tok/secです。
VRAMにすべて乗らないので遅めですが、許容範囲ですね。
image.png

mcp.jsonの設定

--context

公式のサンプル通りide-assistantを選択していますが、コード解析などを行うのであればagent、あるいはdesktop-appが良いと思います。
例えばagentを選択すると、read_fileなどの動作ができるようになります。

おわりに

ということでローカルエージェント?MCP?の構築でした。たぶんこれが1番早いと思います。(uvxのが早いです)
完走した感想ですがuvって結構いいですね。なんとなく食わず嫌いしていたのですが、仮想環境の構築が早いのでタイム短縮には必須ですね。

途中からgpt-oss 20Bの遅さに我慢ならずqwen3-4B-2507 thinkingを使いましたが、Speculative Decoding(投機的デコーディング)を併用して90tok/secほどの速度が出ました。肝心の内容も4Bにしてはかなり良い動きをします。Tool Useも遜色ありませんし、コード解説なら十分なレベルです。
ローカルモデルで日本語チャットができると喜んでいた時から隔世の感がありますね。

ということで、ド素人のためのLM Studio&Serenaを使ったエージェント構築でした。
参考になった方はいいね頂けると励みになります。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?