0.概要
ollama(gpt-oss:20b)のローカルLLMを使用してmastaraを動かす
1.mastraとは
- 「Mastra(マストラ)」とは、大規模言語モデル(LLM)を活用したAIエージェントやAIアプリケーションを構築するための、TypeScriptベースのオープンソースフレームワークです。
主な特徴
- TypeScript/JavaScript中心: 多くのAIツールがPythonベースであるのに対し、MastraはJavaScript/TypeScript開発者向けに設計されています。これにより、既存のモダンなウェブ開発スタック(Next.jsなど)とシームレスに統合できます。
- AIエージェント開発: AIエージェント(特定のタスクを自律的に実行するAI)の開発を効率化するために必要な機能(エージェント定義、ツール呼び出し、ワークフロー、メモリ管理、RAGなど)を包括的に提供しています。
- フルスタック対応: プロトタイプ作成から本番環境での運用までをカバーし、評価(Evals)やモニタリング、ログ管理といった品質管理機能も備えています。
- オープンソース: Gatsbyの開発チームによって開発され、GitHub上で活発に開発が進められています。
- 簡単に言えば、MastraはTypeScriptを使ってAIを活用したアプリケーションを開発するための「オールインワンの土台」を提供するツールです。
2.ollamaの導入
## インストーラーを起動
## バージョン確認
ollama --version
>> ollama version is 0.12.11
## gpt-oss:20bモデルをダウンロード
ollama pull gpt-oss:20b
## gpt-oss:20bモデルを実行
ollama run gpt-oss:20b
## 実行状況の確認
ollama ps
3.mastraの導入
npm create mastra@latest
> npx
> create-mastra
┌ Mastra Create
│ ## プロジェクト名
◇ What do you want to name your project?
│ mastra_local
│ ## srcディレクトリの設定
◇ Where should we create the Mastra files? (default: src/)
│ src/
│ ## LLMプロバイダーの設定(localなのでとりあえず)
◇ Select a default provider:
│ OpenAI
│ ## APIkey設定(localでKey発行していない場合はskip)
◇ Enter your OpenAI API key?
│ Skip for now
│ ## IDEにMastraを入れるか?
◇ Make your IDE into a Mastra expert? (Installs Mastra's MCP server)
│ Skip for now
│
◇ Project structure created
◇ npm dependencies installed
◇ Mastra CLI installed
◇ Mastra dependencies installed
◇ .gitignore added
└ Project created successfully
4.プロジェクト作成後
- 必要なモジュールを導入
cd mastra_local/
## 必要なモジュールを入れる
## 導入中「warn」はpeerDependencies のバージョン衝突を “適切に解決した” の通知
## エラー(ERROR)がなければOK
npm install ollama-ai-provider-v2 @mastra/mcp @mastra/core dotenv
- tsconfig.jsonの作成
{
"compilerOptions": {
"target": "ES2022",
"module": "ES2022",
"moduleResolution": "bundler",
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"skipLibCheck": true,
"noEmit": true,
"outDir": "dist"
},
"include": ["src/**/*"]
}
- 環境ファイルの作成
cp .env.example .env
ollama(gpt-oss:20b)のローカルLLMを使用したエージェントファイルを作成
- 作成場所: src\mastra\agentsの配下
- ファイル名: mcpAgent.ts
import { Agent } from '@mastra/core/agent';
import { Memory } from '@mastra/memory';
import { LibSQLStore } from '@mastra/libsql';
import { MCPClient } from "@mastra/mcp";
import { createOllama } from 'ollama-ai-provider-v2';
import 'dotenv/config';
import path from 'path';
const ollama = createOllama({
baseURL: process.env.OLLAMA_BASE_URL || 'http://localhost:11434/api',
});
const mcp = new MCPClient({
servers: {
"dice-roller": {
"command": "npx",
"args": [
"-y", "@mastra/mcp-docs-server"
],
},
},
});
export const OllamaAgent = new Agent({
name: 'Ollama Agent',
instructions: `
あなたはプログラミングが得意なAIエージェントです。
`,
model: ollama(process.env.OLLAMA_MODEL || 'gpt-oss:20b'),
tools: await mcp.getTools(),
memory: new Memory({
storage: new LibSQLStore({
// パスは.mastra/outputディレクトリからの相対パス
url: `file:${path.resolve(process.cwd(), 'mastra.db')}`,
}),
}),
});
作成したエージェントファイルの使用
-
修正ファイル: src\mastra\index.ts
-
追加するコード
// ### {省略} ###
// 下記を追加
import { OllamaAgent } from './agents/mcpAgent';
export const mastra = new Mastra({
workflows: { weatherWorkflow },
// 下記の様にOllamaAgentを追加
agents: { weatherAgent, OllamaAgent },
// ### {省略} ###
},
});
mastraのサーバーを立ち上げる
# 開発サーバーの起動
npm run dev
# アプリケーションのビルド
npm run build
# プロダクション環境での起動
npm run start
ブラウザ画面
localhost:4111/agents
作成したエージェントの使用例
天気エージェント例(gpt-oss:20bモデル様に改変)
【ソース公開】GitHub
後記
- ローカルだけでなくOpenAIやGminiなどのプロバイダがあるのでAPIを通して使用可能になります。
- 最後まで読んで下さりありがとうございます。



