Contents
Mastra の概要と 2026 年時点のリリース情報
Mastra は、Gatsby と Vercel のエンジニアが中心となって開発した TypeScript 製 AI エージェントフレームワークです。型安全なコードで LLM(大規模言語モデル)を組み合わせられるため、フロントエンド開発者がサーバーレス環境へ自然言語機能を簡単に導入できます。本稿では、2026 年 5‑6 月時点の公式リリース情報と、利用開始までに必要な手順・主要コンポーネントを体系的に解説します。
開発背景と目的
- 背景:Gatsby のプラグイン駆動アーキテクチャと Vercel の Edge/Serverless 基盤を統合し、LLM を「プラグイン」として扱える設計が求められました。
- 目的:React エコシステムに自然言語処理機能をシームレスに組み込み、フロントエンドチームでも安全に AI アプリケーションを構築できるようにすることです。
公式リリース情報(2026 年 5 月)
| 項目 | 内容 | 出典 |
|---|---|---|
| バージョン | v1.0.0(安定版) | 【公式リリースノート】(https://docs.mastra.ai/release/v1) |
| GitHub リポジトリ | https://github.com/mastra-ai/mastra (2026‑05‑15 時点で 22 k ★) | npm & GitHub API 取得 |
| npm ダウンロード数(週次) | 約 300 k ダウンロード/週(npm registry の公開統計) | 【npm stats】(https://www.npmjs.com/package/@mastra/core) |
| ライセンス | MIT | リポジトリ LICENSE |
※上記数値は 2026 年 5 月末までに公式が公開したメトリクスを元にしています。
公式サイト: https://mastra.ai
ドキュメント: https://docs.mastra.ai
環境構築とプロジェクト雛形の作成
このセクションでは、Node.js(≥18)環境で Mastra をインストールし、CLI が自動生成するテンプレートから最小実装を起動するまでの流れを示します。各手順は npm / yarn / pnpm のいずれでも同等に利用できます。
パッケージマネージャ別インストール手順
前提:Node.js がインストール済みであることを確認してください(
node -v≥ 18)。
| マネージャ | コマンド例 |
|---|---|
| npm | bash<br># グローバルに CLI をインストール<br>npm install -g @mastra/cli<br># プロジェクト雛形を生成<br>mastra init my-agent-app<br> |
| yarn | bash<br>yarn global add @mastra/cli<br>mastra init my-agent-app<br> |
| pnpm | bash<br>pnpm add -g @mastra/cli<br>mastra init my-agent-app<br> |
mastra init は package.json、tsconfig.json、そして必須パッケージ(@mastra/core, @mastra/providers)を自動で配置します。
雛形生成後の確認手順
- ディレクトリに移動し依存関係をインストール
bash
cd my-agent-app
npm ci # または yarn, pnpm install - 開発サーバー起動
bash
npm run dev - ブラウザで
http://localhost:3000/api/agentにアクセスし、JSON 形式の応答が返ることを確認します。
最小実装例(src/api/agent.ts)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import { createAgent } from '@mastra/core'; // 基本的なエージェント定義 const agent = createAgent({ name: 'HelloAgent', provider: 'openai', // 後でマルチプロバイダーに差し替え可能 }); export default async function handler(req: any, res: any) { const { prompt } = req.body ?? {}; if (!prompt) { res.status(400).json({ error: 'Prompt is required.' }); return; } const answer = await agent.run(prompt); res.json({ answer }); } |
上記コードを src/api/agent.ts に保存し、npm run dev 後に POST リクエストで { "prompt": "Hello" } を送信すると、OpenAI のモデルが返すテキストが JSON で取得できます。
核心コンポーネントの役割と実装パターン
Mastra が提供する主要クラスは Agent, Workflow, RAG, Memory の4つです。ここではそれぞれの責務を解説し、典型的な利用シーンをコード例で示します。
Agent と Workflow
- Agent は単一 LLM 呼び出しを抽象化したオブジェクトです。
- Workflow は複数ステップ(前処理 → LLM 呼び出し → 後処理)を組み合わせ、エージェントの実行ロジックを構築します。
実装例(src/workflows/echo.ts)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import { Agent, Workflow } from '@mastra/core'; // 1. Echo 用エージェント const echoAgent = new Agent({ name: 'Echo', provider: 'openai', }); // 2. シンプルなワークフロー定義 export const echoWorkflow = new Workflow({ steps: [ // 前処理:ユーザー入力にプレフィックスを付与 (input: string) => `[User] ${input}`, // LLM 呼び出し(Agent の run メソッドをそのまま利用) echoAgent.run.bind(echoAgent), // 後処理:余分な改行を除去 (output: string) => output.trim(), ], }); |
echoWorkflow.execute('Hello') と呼び出すだけで、前後処理が自動的に適用された結果が得られます。
RAG(Retrieval‑Augmented Generation)と Memory
- RAG は外部知識ベースから情報を取得し、プロンプトへ組み込むことで「最新情報」や「社内ドキュメント」を活用します。
- Memory は会話コンテキストやキャッシュを保持し、連続対話を可能にします。
実装例(src/rag-memory.ts)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
import { RAG, Memory } from '@mastra/core'; import { PineconeClient } from '@pinecone-database/pinecone'; import { echoAgent } from './workflows/echo'; // 1. ベクトル検索クライアント(Pinecone)設定 const pinecone = new PineconeClient({ apiKey: process.env.PINECONE_KEY }); // 2. RAG コンポーネント const docRag = new RAG({ retriever: async (query: string) => { const result = await pinecone.query({ vector: query, topK: 5, namespace: 'knowledge-base', }); return result.matches.map(m => m.metadata?.text ?? '').join('\n'); }, }); // 3. 会話メモリ(最大10ターン、1日で自動削除) const convoMemory = new Memory({ maxTurns: 10, ttlSeconds: 86_400, }); export async function runRagWorkflow(userPrompt: string) { // 外部ドキュメント取得 const retrieved = await docRag.retrieve(userPrompt); const enrichedPrompt = `${retrieved}\n---\n${userPrompt}`; // LLM 呼び出し const answer = await echoAgent.run(enrichedPrompt); // メモリに履歴を保存 convoMemory.store({ role: 'user', content: userPrompt }); convoMemory.store({ role: 'assistant', content: answer }); return answer; } |
このパターンは、検索結果とユーザー入力を統合したプロンプトで LLM を呼び出すため、情報の正確性が向上します。
Supervisor パターンとマルチプロバイダー構成
本番環境では長時間稼働や突発的な例外に備えてプロセス監視が必須です。Mastra が提供する Supervisor はエージェントインスタンスをラップし、クラッシュ時の自動再起動やリトライバックオフを実装します。
Supervisor の基本設定
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import { Supervisor } from '@mastra/core'; import { createAgent } from './workflows/echo'; const prodAgent = createAgent({ name: 'ProdAgent', provider: 'openai', }); const supervisor = new Supervisor({ target: prodAgent, restartOnCrash: true, // クラッシュ時に自動再起動 maxRestarts: 5, // 再起動上限回数 backoffMs: 2000, // 再起動までの待機時間(ミリ秒) }); supervisor.start(); // アプリ起動時に呼び出すだけで監視開始 |
このコードをエントリーポイント (src/index.ts) に組み込むことで、例外がスローされても数秒以内に復旧し、サービスの可用性が保たれます。
マルチプロバイダーと認証管理
Mastra は ProviderRegistry を通じて複数ベンダー(OpenAI, Anthropic Claude, Google Gemini)を同時に利用できます。以下は安全なシークレット取得とランタイムでのプロバイダー選択例です。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import { ProviderRegistry } from '@mastra/core'; import { createAgent } from '@mastra/core'; // 環境変数またはシークレットマネージャーからキーを取得 const registry = new ProviderRegistry({ openai: { apiKey: process.env.OPENAI_API_KEY! }, claude: { apiKey: process.env.CLAUDE_API_KEY! }, gemini: { apiKey: process.env.GEMINI_API_KEY! }, }); // ランタイムで利用したいプロバイダーを配列で指定 const selectedProvider = registry.select(['openai', 'claude', 'gemini']); export const multiAgent = createAgent({ name: 'MultiLLM', provider: selectedProvider, }); |
認証情報のベストプラクティス
| 環境 | 推奨手法 |
|---|---|
| CI/CD(GitHub Actions) | secrets に格納し、process.env 経由で注入 |
| 本番サーバー(Vercel / Cloudflare Workers) | HashiCorp Vault または AWS Secrets Manager からランタイム取得 |
| ローカル開発 | .env.local ファイルに記述し、.gitignore に追加 |
デプロイ・運用ガイドと主要フレームワーク比較
Mastra は Vercel と Cloudflare Workers の両プラットフォームへシームレスにデプロイでき、CI/CD・モニタリングも標準ツールで構築可能です。
Vercel へのデプロイ手順
- 設定ファイル (
vercel.json) をルートに配置
json
{
"functions": {
"api/**/*.ts": { "runtime": "nodejs18.x" }
},
"builds": [{ "src": "next.config.js", "use": "@vercel/next" }]
} - GitHub リポジトリを Vercel に接続 → プッシュ時に自動ビルド&プレビューが作成されます。
- 本番環境へは
vercel --prodコマンドまたは GitHub Actions からデプロイします。
Cloudflare Workers へのデプロイ手順
wrangler.tomlを作成
toml
name = "mastra-worker"
type = "javascript"
account_id = ""
compatibility_date = "2024-01-01"
[vars]
OPENAI_API_KEY = "$OPENAI_API_KEY"
wrangler publish
2. **** でデプロイ。Memory コンポーネントの永続化が可能です。
3. Workers KV を利用すれば
CI/CD パイプライン(GitHub Actions)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
name: Deploy Mastra on: push: branches: [main] jobs: vercel: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Install dependencies run: npm ci - name: Build run: npm run build - uses: amondnet/vercel-action@v20 with: vercel-token: ${{ secrets.VERCEL_TOKEN }} github-token: ${{ secrets.GITHUB_TOKEN }} workers: runs-on: ubuntu-latest needs: vercel steps: - uses: actions/checkout@v3 - name: Install dependencies run: npm ci - name: Publish to Cloudflare Workers run: npx wrangler publish env: CF_API_TOKEN: ${{ secrets.CF_TOKEN }} |
監視・ロギングのベストプラクティス
| 項目 | 推奨ツール | 設定ポイント |
|---|---|---|
| ログ収集 | Vercel Analytics / Datadog Logs | console.error が標準出力へ流れるので自動転送 |
| メトリクス | Prometheus + Grafana(Workers)/Vercel Insights | エンドポイント latency、エラー率を可視化 |
| 永続メモリ | Vercel Edge Config、Cloudflare KV、外部 Redis | Memory コンストラクタで store: 'kv' を指定 |
他フレームワークとの比較と選定指針
Mastra(TypeScript) と代表的な Python 系フレームワーク(LangGraph)・Claude の公式 SDK を対比し、導入判断のポイントを整理します。
| 項目 | Mastra (TS) | LangGraph (Python) | Claude Agent SDK |
|---|---|---|---|
| 言語基盤 | TypeScript → フロントエンド開発者に最適 | Python → データサイエンス・研究領域で主流 | JavaScript/TS 版はベータ |
| Vercel / Workers 統合 | ネイティブプラグインでシームレス | カスタムスクリプトが必要 | 現状限定的 |
| マルチプロバイダー | OpenAI・Claude・Gemini を同時利用可能 | 主に OpenAI に特化 | Claude のみサポート |
| 型安全 / 開発体験 | TypeScript の型チェックでコンパイル時エラー防止 | ランタイム型付けが中心 | 型情報は限定的 |
| コミュニティ規模(2026) | ★22k、週次 DL 300k | ★5k、DL 約100k/週 | ★3k、DL 非公開 |
選定指針
- フロントエンド中心のチームは、Vercel との統合と TypeScript の型安全性が大きな利点になるため Mastra が最適。
- データサイエンティストや研究開発者は、既存の Python エコシステム(pandas, scikit‑learn 等)を活かせる LangGraph を選ぶと学習コストが低い。
- Claude に特化したユースケース(例:コードレビュー支援)は Claude SDK が軽量だが、他モデルも併用したい場合は Mastra のマルチプロバイダー機能を検討。
まとめ
- Mastra は TypeScript 製 AI エージェントフレームワークで、2026 年 v1.0 リリース以降、GitHub ★22k・npm 週次 DL 300k 超という実績があります(公式メトリクスに基づく)。
- 環境構築は
@mastra/cliが提供するテンプレートで数分。最小コードをローカルで動作させ、すぐに API エンドポイントを確認できます。 - 四大コンポーネント(Agent・Workflow・RAG・Memory)はそれぞれ単一責務に従い設計されており、型安全なコードで高度な対話や外部知識取得が実装可能です。
- Supervisor パターンとマルチプロバイダー設定により、本番環境でも安定稼働とベンダーロックイン回避を同時に達成できます。認証はシークレットマネージャー経由で安全に管理してください。
- Vercel と Cloudflare Workers へのデプロイは公式テンプレートだけで完結し、GitHub Actions による CI/CD・モニタリングも標準ツールと統合可能です。
- 他フレームワークとの比較表を参考に、自チームの技術スタックや要件(マルチLLM、サーバーレス、型安全性)に合わせて最適な選択肢を決定してください。
上記手順とベストプラクティスに沿って実装すれば、2026 年最新版 Mastra を用いた AI エージェントの開発・本番運用まで、一貫したフローで完結できます。