近年、AI開発の現場では効率的なエージェント構築のためのフレームワークが不可欠となっています。その中でも**Mastra(マストラ)**は、TypeScript製のオープンソースAIエージェント開発フレームワークとして注目を集めています。本記事では、Gatsbyの開発元が手掛けるこの次世代フレームワークの特徴や使い方、既存Python製フレームワークとの違いなどを徹底解説します。
Mastraとは?基本情報と背景
Mastra(マストラ)は、「プロダクション向けAIアプリケーションを最も簡単に構築する方法」を標榜するオープンソースのTypeScript製AIエージェント開発フレームワークです。
基本情報
- 公式サイト: mastra.ai
- GitHub: mastra-ai/mastra
- 開発元: Gatsby(React静的サイトジェネレータ)の開発チームが2024年に創業
- 共同創業者: Sam Bhagwat氏(Gatsby共同創業者)、Abhi Aiyer氏、Shane Thomas氏
- Y Combinator: 2025年冬季バッチ(YC W25)に採択
- ライセンス: オープンソース(MIT)
背景と特徴
Mastraは、AI開発に必要な基本要素(エージェント、ワークフロー、RAG、評価など)を一式提供するSDKとして開発されました。クラウド環境を問わずにデプロイできる柔軟性と、Web開発者にとって親しみやすいTypeScriptベースという特徴を持っています。
創業チームはReactベースの静的サイトジェネレータ「Gatsby」の開発経験を活かし、「AIエージェント開発のDX(開発者体験)改善」をテーマに掲げています。YC公式ページでも「Gatsbyを生んだチームによるJavaScriptエージェントフレームワーク」として紹介されるなど、その技術力への期待は高いものがあります。
主要機能と技術的特徴
Mastraは、AIアプリケーション構築に必要な様々なプリミティブを提供し、それらを組み合わせて高度なAI機能を実装できるよう設計されています。主要機能を詳しく見ていきましょう。
エージェント (Agents)
Mastraのエージェントは、自律的にタスク実行や意思決定を行うLLM(大規模言語モデル)ベースのコンポーネントです。
主な特徴:
- 統一API: OpenAI、Anthropicなど各種LLMプロバイダに対応した統一API(Vercel社のAI SDKを活用)
- 柔軟なモデル切替: 一行のコード変更でモデルを差し替え可能
- ツール呼び出し: エージェントが関数やAPIをツールとして実行可能
- 長期メモリ: 対話履歴や知識をメモリに保持し、会話の文脈を長期間維持(MemGPT論文の手法を参考に実装)
エージェントは名前、プロンプト指示(指令)、利用するモデル、メモリ設定、使用可能なツールなどを柔軟に構成でき、様々なタスクに対応可能です。
ワークフロー (Workflows)
Mastraのワークフローは、複数のLLM呼び出しや処理ステップをグラフベースの状態機械として定義できる機能です。
主な特徴:
- XStateベース: JavaScriptの状態管理ライブラリXState上に構築
- 直感的API:
.step()
,.then()
,.after()
などの直感的なAPIで分岐・直列実行・並列処理などを記述 - 自動ロギング: 各ステップの入出力を自動的に記録
- 分散トレーシング: OpenTelemetryによる実行経路の可視化
- ヒューマンインザループ:
.suspend()/.resume()
で処理を一時停止して人間の介入を待つ機能 - 実時間監視:
.watch()
によるリアルタイム進捗監視
ワークフローはエージェントと柔軟に組み合わせ可能で、エージェント内部でワークフローを呼び出したり、逆にワークフローの中からエージェントを組み込むこともできます。
RAG(Retrieval-Augmented Generation)
Mastraは、エージェントに外部知識を提供するための検索統合機能(RAG)を内蔵しています。
主な特徴:
- 統合ETLパイプライン: 文書(テキスト、HTML、Markdown、JSON等)を自動でチャンク分割し、ベクトル埋め込みを生成
- 複数ベクターストア対応: PineconeやPostgreSQL(pgvector)など複数のベクターDBをサポート
- 統一インターフェース: 埋め込みモデル(OpenAI、Cohereなど)を統一APIで選択可能
- コンテキスト最適化: 関連ドキュメントをLLMで再ランクして重要度順に提示
- 自律検索: エージェントに検索ツールを与え、対話中に自律的に知識ベースを検索させることが可能
ツールと外部統合 (Tools & Integrations)
Mastraでは、エージェントやワークフローから呼び出せるツールを簡単に作成できます。
主な特徴:
- 型安全なツール定義: 関数に入力スキーマ(引数の定義)と実装を与えるだけでツール化
- 外部サービス統合: OpenAIの関数呼び出しAPIや独自のプラグインと同様の仕組み
- 自動APIクライアント生成: サードパーティサービス向けのAPIクライアントを自動生成
- 型によるバリデーション: パラメータのバリデーションをビルド時にチェック、実行エラーを未然に防止
評価と観測性 (Evals & Observability)
Mastraはエージェントやモデル出力の品質評価と監視を行う機能を内蔵しています。
主な特徴:
- 自動評価指標: バイアス検知、応答の関連性/事実性チェックなど
- 複数評価方法: モデル自身による採点、ルールベース評価、統計的評価
- 正規化スコア: 0〜1の正規化スコアでログ記録や比較が可能
- カスタム評価: 独自の評価関数やプロンプトを用意して拡張可能
- トレーシング: OpenTelemetry形式のトレース情報出力
- 実行ログ可視化: ワークフロー実行ステップやツール使用履歴の記録
TypeScript製である強み
Mastraの大きな特徴の一つは、TypeScript(JavaScript)ベースであることです。これにより、従来Pythonで構築されることが多かったAIエージェント開発をWeb開発者になじみのある技術スタックで完結できる利点があります。
フロントエンド/バックエンドの統一
- 同一言語での開発: Node.js上で動作するため、React/Next.jsなどフロントエンドと同じ言語でAIロジックを実装
- Vercel AI SDK連携: VercelのAI SDKをベースとし、Next.jsのAPIルートに直接組み込み可能
- シームレスな統合: Webアプリケーション内にAIエージェントを内包し、フロントエンドと連携
- コード共有: データ型やコードをフロントエンドと共有でき、言語間変換やAPI通信の手間を削減
型安全性と開発者体験
- 静的型検証: TypeScriptの静的型付けにより、エージェントやワークフローの構成要素をコンパイル時に検証
- 早期エラー検出: ビルドエラーでランタイムでのクラッシュを未然に防止
- コード補完: 状態遷移やツールI/Oの型定義による開発効率向上
- リファクタリング: 大規模ワークフローでもリファクタリングが容易
学習コストの低減
- 既存スキル活用: JavaScript/TypeScript習熟者は新たにPythonを学ぶ必要なし
- 最新ランタイム活用: Vercel、Cloudflare WorkersなどのJavaScriptランタイム上でAI機能を提供
- 親しみやすさ: 既存のフロントエンド開発の延長でAIエージェントを開発可能
デプロイと実行環境の柔軟性
- 多様な環境: Node.js 20以降が動作するあらゆる環境にデプロイ可能
- サーバーレス対応: Vercel、Cloudflare Workers、Netlifyなどに設定変更なしでデプロイ
- インフラ簡素化: Python製フレームワークに比べ、インフラ構築が容易
- Hono対応: 高速WebフレームワークHonoを用いたサーバエンドポイント化
ローカル開発環境の充実
- 簡単セットアップ:
npm create mastra
でプロジェクト作成、mastra dev
で開発環境起動 - プレイグラウンドUI: ブラウザ上でエージェントと対話しながらメモリ状態やトレースログを確認
- シンプルな起動: Docker不要で
npm run dev
だけで開発サーバを起動
Python系フレームワークとの比較
Mastraは、従来主流だったPython製エージェントフレームワーク(LangChainやLlamaIndexなど)に対する有力な代替として注目されています。Y Combinatorの紹介でも「LangChainが嫌いならMastraを気に入るはず」と語られるほど、既存フレームワークへの不満点を解消する意図が示されています。
主要な違い
観点 | Mastra (TypeScript) | Python系フレームワーク (LangChain) |
---|---|---|
開発言語・実行環境 | TypeScript(Node.js/Deno) Web/サーバレス環境で動作 | Python(サーバ/コンテナ上で実行) Webスタックと分離した環境が必要 |
ワークフロー構築 | XStateベースの明示的な状態機械 step()・then()・after()で分岐や並列処理 | 手続き的なチェーン(if/loopで制御) 明示的な状態遷移グラフは弱い |
エージェントのメモリ | MemGPT論文由来の長期記憶を内蔵 会話履歴をキーにベクトル検索 | 外部ベクトルDBや独自Memoryクラスで対応 統一的なメモリ管理は弱い |
ツール/プラグイン統合 | 関数に型定義するだけでツール化 型安全な外部サービスAPI自動生成 | ツールクラスを手動実装 プラグイン統合は個別対応が必要 |
開発用UI・デバッグ | 対話UI付きプレイグラウンド標準提供 トレース/評価のリアルタイム可視化 | 専用UIなし(コンソールログ/Gradioなど併用) LangSmithなど専用サービスが必要 |
知識統合 (RAG) | 一体化したRAGパイプライン 統一APIによる実装 | 別ライブラリ併用で実現 実装負担が大きい |
出力評価 (Evals) | 内蔵の自動評価フレームワーク 品質スコア比較・ログ保存 | 評価機能は限定的 機能拡張性は低い |
デプロイ容易性 | サーバレス展開が容易 そのままデプロイ可能 | サーバ構築/Dockerが必要<br>スケーリング/ホスティングに追加コスト |
こうした違いから、MastraはWeb技術との親和性と開発体験の良さを武器に、「抽象化が複雑すぎる」「デバッグが困難」といった既存フレームワークの不満点に応えた設計となっています。実際、「MastraはLangChainが本来あるべき姿を体現している」という開発者の声もあり、評価が高まっているようです。
一方で、LangChain(Python版)は多種多様なツールやモデル連携の実績が豊富であり、LlamaIndexはドキュメント指向のRAGに特化するなど各自の強みもあるため、プロジェクトの目的に応じた使い分けが検討されています。
導入事例とユースケース
Mastraは公開以来、スタートアップや開発者コミュニティで様々なユースケースに活用され始めています。
企業導入事例
- Fireworks AI: マルチエージェントによるワークフロー自動化
- YC参加企業での活用例:
- ソフトウェア製品のカスタマーサポート自動化
- CAD図面の自動生成(PDF文書から図面を作成)
- Web上の連絡先情報収集(リード獲得支援)
- 医療分野の音声書き起こし(医療記録の自動転記)
- 財務書類の自動生成(帳票やレポート作成)
- コード生成プロダクト構築(プログラミング支援AI)
これらはいずれも複数のLLMツールを組み合わせた、人間の専門作業を代替・効率化するエージェント的ワークフローであり、Mastraのワークフロー構築力やツール統合力が評価されています。
コミュニティプロジェクト
公式サイトのShowcaseでは、以下のようなデモプロジェクトが公開されています:
- AI Beat Laboratory: 複数の音楽生成エージェントによる楽曲プロデュース
- 旅行プランニングAI: ユーザの要望に応じて観光プランを作成するマルチエージェント
- ブラウザ操作エージェント: Webブラウザを自動操作するAI
- NotebookLMクローン: GoogleのNotebookLMに触発されたノートブック補助AI
特にNotebookLMクローンの事例では、複数の専門エージェントをオーケストレータが呼び出し、音声ポッドキャストを自動生成する高度なワークフローが実装されており、マルチエージェント機能の可能性を示しています。
コミュニティの反応も良好で、GitHubスター数は1万を超え(2025年5月時点で約12.6k)、Discordコミュニティにも多くの開発者が参加するなど、オープンソースプロジェクトとして大きな盛り上がりを見せています。
環境構築手順と始め方
Mastraのセットアップは非常に簡単で、Node.jsさえインストールされていれば(推奨バージョン20以上)すぐに始められます。以下に基本的な環境構築手順を示します。
プロジェクト作成
ターミナルで任意のディレクトリに移動し、次のコマンドを実行します:
bashnpm create mastra@latest
npmの代わりにpnpm、yarn、bunなども使用可能です(例: pnpm create mastra
)。
コマンド実行後、以下のような対話式の質問に答えます:
- プロジェクト名
- 使用するLLMプロバイダ(OpenAI、Anthropicなど)
- APIキーの入力
- サンプルコード追加の有無
これらに答えると、src/mastra/index.ts
にエージェントやワークフローのひな型が用意されたプロジェクトが生成されます。
開発サーバの起動
プロジェクト作成後、ディレクトリに移動して開発サーバを起動します:
cd <プロジェクト名>
npm run dev # または mastra dev
すると、Mastra開発用プレイグラウンドが起動し、ブラウザでhttp://localhost:4111
にアクセスすると専用UIからエージェントと対話できるようになります。
このプレイグラウンドでは:
- 作成したエージェントやワークフローの一覧表示
- エージェントへのプロンプト入力と応答テスト
- 各ステップのログ確認
- OpenAPIエンドポイント確認(/openapi.jsonやSwagger UI)
- エージェントの内部状態(メモリ内容やツール使用履歴)の確認
などが可能です。
APIキーの設定
OpenAIやAnthropicなど外部LLM APIを利用する場合、それぞれのAPIキーを環境変数に設定します。例えば:
# .envファイル
OPENAI_API_KEY=sk-xxxxx # OpenAIの場合
ANTHROPIC_API_KEY=sk-ant-xxxxx # Anthropicの場合
GOOGLE_GENERATIVE_AI_API_KEY=xxxxx # Google Geminiの場合
プロジェクト作成時に入力したAPIキーは自動で.env
に書き込まれますが、後から変更することも可能です。
まとめ:Mastraが選ばれる理由
Mastraは、以下の理由から多くの開発者に選ばれるフレームワークになりつつあります:
- Web開発者フレンドリー: TypeScriptベースで既存Webスキルをそのまま活かせる
- 統合された機能セット: エージェント、ワークフロー、RAG、評価などを一体提供
- 優れた開発体験: 直感的なAPI、強力な型システム、充実したプレイグラウンドUI
- 柔軟なデプロイ: サーバーレス環境を含む多様な環境に容易にデプロイ可能
- オープンソース: 活発なコミュニティとGatsbyチームの技術基盤
- 実践志向: 実運用での課題(メモリ管理、ヒューマンインザループ、評価など)に対応
Gatsbyの開発元がAI分野に踏み出し、Web開発者の視点からAIエージェント開発のDXを再定義しようというMastraの試みは、AIとWeb技術の融合をさらに加速させる可能性を秘めています。
TypeScriptを使ったAIエージェント開発にチャレンジしたい方は、ぜひMastraを試してみてはいかがでしょうか。シンプルなコマンド一つで始められる手軽さと、ブラウザ上でエージェントが対話・動作する様子を確認できる開発体験は、Mastraならではの魅力です。