はじめに
この記事では、Ollama、LM Studio をインストールして mastra のサンプルを動かすまでの手順を紹介する。
想定読者
- LLM を使った開発をしたい人
- Python のようなプログラミング言語を使いたくない人
- ローカル AI エージェントを作りたい人
- 無料で LLM を使った開発をしたい人
- TypeScript を使った開発に慣れている人
ローカル LLM
LLM はトレンドなので触ってみたいエンジニアは多いと思う。しかし、私のような一般よわよわエンジニアは LLM を使った開発の感覚を掴むのにいくらかかるか予想が難しい料金体系である API に課金するのは憚られるのではないだろうか。それにマネタイズできなければ、使うだけコストが発生するというのはお遊びプログラムを作るにもあまり気が進まない。
そんな人にはいくつか選択肢がある。一つは、OpenRouter のようなサービスを使い、無料クレジットの範囲内で利用するか、無料で提供されているモデルを使う。もう一つは、ローカル環境で LLM を動作させる、という手だ。
速度的な面や PC への負荷を考えるとl OpneRouter を使うのがいいと思うが、ここではローカル LLM を使おうと思う。次の記事では OpenRouter を使う手順を書く予定だ。
ローカル環境で LLM を使う場合もいくつか方法がある。一つは Ollma と呼ばれるソフトウェアを使う方法で、もう一つは LM Studio と呼ばれるソフトウェアを使う方法だ。
ここでは、それぞれインストール方法を紹介する。インストールするのはどちらでもよいが、後で触れるように Ollama だと正規の手順で mastra が動かないため LM Studio を推奨する。また、GUI のチャット UI が使えるようになるという点でも LM Studio の方がとっつきやすいと思う。
Open Web UI もあるじゃないか、という声が聴こえてきそうだが私の環境では Open Web UI が動かせなかったので対象から除いている。
環境
インストール前に私の環境を載せておく。 Windows 環境で開発を行なわないため手順は基本的に macOS 前提となるが、 LLM を使った開発をしようとしている読者であれば公式サイトから手順に従って環境のセットアップに困ることはないだろう。

ローカル LLM の実行にはそれなりの環境が求められる。一般的なノート PC やミドルスペックくらいのデスクトップ PC ではスペック不足の可能性が高い。利用するモデルに左右されるが、今回は「ツール利用」ができる LLM を使いたいため gpt-oss:20b が使える前提で進めていく。「ツール利用」については後述する。
- Ollama
- LM Studio
- 0.3.30
- mastra
Ollama
概要
Ollama は、ローカル環境で LLM を簡単に実行できるツールの一つ。モデルは、Web 上で検索することができ、実行はモデルの詳細ページの右上にあるコマンドをコピーし、ターミナル上で実行するだけで使える。

UI は CLI となっており、会話を保持する機能もないのでとっつき難さがあるだろう。

インストール手順
Homebrew を使っている場合は次のコマンドでインストールする。
Homebrew を使っていない場合は自身の環境に合わせたインストール方法でインストールして欲しい。私の場合は nix-darwin + Home Manager で環境構築しているため Nix の設定ファイルを書いている。
特にパッケージ管理のためのソフトを利用していない場合は、Ollama の公式サイトからバイナリをインストールして手順に従ってインストールしてください。
実行方法
Ollama を使うには、最初にサーバを立てる必要がある。Ollama のサーバは、次のコマンドを実行すると立ち上がる。
サーバを立ち上げた後、次のコマンドを実行するとモデルのダウンロードをした後、チャットが立ち上がる。
LM Studio
概要
LM Studio は、Ollama と同様にローカル LLM を手軽に試すことができるアプリケーションだが、こちらは Ollma とは違って GUI アプリケーションとなっている。 Developer mode に切り替えると OpenAPI Compatible な API を使うことができるため、今回のような mastra と組わ合せて LLM を使う場合にも利用できる。
インストール手順
Ollama と同様に Homebrew を使っている場合は次のコマンドでインストールできる。
Homebrew を使っていない場合は自身の環境に合わせたインストール方法でインストールして欲しい。
特にパッケージ管理のためのソフトを利用していない場合は、Ollama の公式サイトからバイナリをインストールして手順に従ってインストールしてください。
LM Studio の使い方
今回は、LLM を使うための API として利用したいため、アプリケーションを起動した後に Developer モードに変更する。 LM Studio を起動すると画像のような GUI アプリケーションが起動する。

左側にあるアイコンの一番下にある虫めがねアイコンをクリックするとモデルを検索し、ダウンロードするための画面にある。

検索フォームに gpt-oss
と入力すると OpenAI が公開している gpt-oss 20B
モデルがヒットするため、右下の「Donwload」をクリックする。画像では「Use in New Chat」となっているのはダウンロード済みだからだ。
モデルのダウンロードが完了したら左側のアイコンの上から 2 番目にあるターミナルアイコンを選択する。そうすると画像のような画面になるはずだ。この画面では、ダウンロードしたモデルを利用するためのサーバをローカルで立ち上げることができる。

画面の上の方にある「モデルを選択してください」をクリックすると、次の画像のようにダウンロード済みモデルを選択する画面になる。ここでは、先ほど選択した「OpenAI's gpt-oss 20B」を選択する。

そうるとモデルの読み込みが開始するが、LLM はモデルを読み込んだだけの状態でも次の画像を見るとわかるようにそれなりのメモリ消費がロードタイミングでも発生する。

モデルの読み込みが終了したら正しく動作するか確認するために左側のアイコンの一番上を選択し、チャット UI で適当に問い合わせてみる。

何かしらの回答が返ってきたら LLM が正常に動作している証拠だ。
最後に LM Studio でモデルを読み込んだ後、それ以上使わないのであれば忘れずに Eject しておこう。 Development のアイコンを選択し、画像の「Eject」ボタンを押すとメモリを解放できる。

mastra
いよいよ本題 mastra。
概要
mastra は、LLM を使った AI エージェントを TypeScript で構築するためのフレームワークの一つだ。 Python のフレームワークで言うところの LangChain/LangGraph に相当するフレームワークだと思う(LangChain/LangGraph に詳しくないので間違っている可能性あり)。
Python をこれら学ぶのは…、という Web エンジニアにはぴったりのフレームワークだろう。
今回は、mastra のセットアップを行い、LM Studio で立てた API サーバにリクエストしてサンプルアプリケーションが動作するところまでを試す。 Ollama を使うとチュートリアル通りにやっても上手く行かない。しかし、OpenAPI Compatible API として使う方法であれば上手く行くのかと思う、がそこに行く前に力尽きてしまう予感がする。
プロジェクトの作成
さっそく mastra のプロジェクトを作成しよう。 ドキュメントに従って、プロジェクトを作成してみよう。
ここで大切なのが mastra のバージョンだ。 mastra は絶賛開発中のフレームワークなのでバージョンが上がるごとに破壊的変更が当然のように入ってくるのに加えてバグも大量に存在する。一つ前のバージョンでは動いていたのにバージョンを上げたらエラーでクラッシュする、なんてことは日常だ。
コマンドを実行すると、いくつか質問されるので回答するとディレクトリが作成される。

ディレクトリ構造
プロジェクトの初期状態は次のようになっている。
各ファイルの説明は公式ドキュメントでされているのでそちらを参照するのがいい。
ファイル名を見るとわかると思うが、mastra の初期プロジェクトは天気予報の情報を取得し、天気について回答するか、天気に応じてアクティビティを提案するようなエージェントとそのためのツールが定義されている。ワークフローでは、都市名を入力として受け取り、天気を取得してからそれに基づくアクティビティの提案を行うフローが定義されている。
エージェントやワークフローが具体的にどのようなものであるかは次の記事で紹介する。
ここでは、まずはサンプルをローカル LLM を使って動かすことを目的に次に進もう。
LM Studio を使うための変更
サンプルプロジェクトを生成した後は、LLM のプロバイダごとに設定をしないといけない。今回の場合は LM Studio で OpenAI Compatible API サーバを立てて利用するための設定を行う。
公式ドキュメントだと モデルプロバイダー | はじめに | Mastra ドキュメント が該当する。
それでは、パッケージのインストールとコード修正に進もう。
package.json
最初に LM Studio で立てた API サーバを使うために @ai-sdk/openai-compatible
をインストールする。インストールは次のコマンドを実行すればよい。
もし、インストールされた他のパッケージのバージョンが古い場合は npx npm-check-updates -u
を実行し、パッケージを一通り最新にする。私の環境では、package.json
に次のような差分が出た(license
を MIT
に変更していますがそのままで問題ない)。
ここの差分は一例であって、同じ手順を踏んだとしても新しいバージョンがリリースされていれば数字は変わってくるので差があっても基本的には気にする必要はない。
src/mastra/agents/weather-agent.ts
次に src/mastra/agents/weather-agent.ts
ファイルで LM Studio で立てたサーバを使うための設定を追加する。先ほどインストールした @ai-sdk/openai-compatible
から createOpenAICompatible
をインポートして name
、baseURL
、apiKey
を持つオブジェクトを引数に渡した結果を変数 (lmstudio
) に束縛しておく。
name
と apiKey
はどんな値でも問題ないはずなのでそれらしい値を設定する。
次に weatherAgent
の作成で指定されている model
を openapi
から新しく定義した lmstudio
を使い、引数は openai/gpt-oss-20b
を指定する。
openai/gpt-oss-20b
は LM Studio の GUI アプリケーション上で確認できる値だ。

.env
最後に LM Studio を使う場合は環境変数に LMSTUDIO_API_KEY
が設定されていないといけないようなので .env
ファイルをプロジェクトのルートに作成して値を設定する。
待たせたな
準備は整った。あとは実行するだけだ。
npm run dev
コマンドを実行すると次のような出力がされ、localhost
の 4111
でアプリケーションが立ち上がる。
ウェブブラウザでアクセスすると次のような画面が表示されるはずだ。

今回は動作確認をするのが目的なので Weather Agent
をクリックしてチャット UI を表示し、適当なプロンプトを投げてみよう。すると回答は英語になってしまっているが、画像のように天気に関する情報が返される。

これでめでたく TypeScript で AI エージェントを開発するための初期環境が整った。
まとめ
この記事では、Ollama、LM Studio をインストールし、LM Studio で API サーバを立てて mastra のサンプルを動かすところまでを解説した。次の記事では Ollama の場合の設定、サンプルコードの内容を解説しようと思う。
ローカル LLM を利用した AI エージェントがどこまでやれるのか試していきたい。
AI エージェント開発では、現場で活用するためのAIエージェント実践入門 (KS情報科学専門書) を参考に進めていく予定だ。
Footnotes
-
NVIDIA、OpenAI にとってのツルハシは GPU、AI を使ったサービスを提供する企業にとってのツルハシは LLM になる。 ↩
-
Introducing Claude Haiku 4.5 \ Anthropic によると既存の低コストではないバージョンのモデル (Claude Sonnet 4.0) よりも高性能なモデルとして Claude Haiku 4.5 は 1/3 のコストで 2 倍の速度だという。 ↩