Mastra 完全ガイド|TypeScript で構築する AI エージェントフレームワーク・Claude/OpenAI連携【2026】

この記事の結論

Mastra (TypeScript ベース AI エージェントフレームワーク) の Agents/Workflows/RAG/Memory 4機能を実装例で完全解説。Next.js連携・Claude/OpenAI/Gemini マルチプロバイダー・LangGraph(Python)との棲み分け・Production移行パターン網羅。

AI エージェント開発の主流が Python に集中する中、「TypeScript で AI エージェントを書きたい」というニーズに応える形で登場したのが Mastra です。Vercel・Next.js エコシステムで開発する企業や、フロントエンドとバックエンドを TypeScript で統一したい開発組織にとって、Mastra は LangGraph(Python)の TypeScript 版に近い位置づけを担います。

本記事では、Mastra の Agents/Workflows/RAG/Memory の 4 機能を実装例とともに整理し、Claude/OpenAI/Gemini マルチプロバイダー対応の方法、LangGraph(Python)との棲み分け、Production 移行パターンまで解説します。掲載するコード例は2026年6月初頭時点のものですが、Mastra は急速に進化しているため、最新仕様は 公式サイト でご確認ください。

Mastra とは何か:TypeScript ベースのAIエージェント基盤

Mastra は TypeScript で構築するための AI エージェントフレームワークで、Vercel チームのメンバーが立ち上げた新興プロジェクトです。OpenAI / Anthropic / Google などのマルチプロバイダー対応、Next.js / Cloudflare Workers との統合、TypeScript の型安全性を最大限活用した設計が特徴です。

4つのコア機能

機能 役割 類似
Agents タスクを実行するエージェント定義 LangGraph Node
Workflows 複数エージェントの連携フロー LangGraph Graph
RAG 外部データ検索+応答生成 LangChain Retrieval
Memory 会話履歴・長期記憶管理 LangGraph Checkpointer

Mastra のセットアップ手順

  1. Node.js 18以上 + pnpm のインストール:Mastra は最新の TypeScript 環境が必要
  2. 新規プロジェクト作成pnpm create mastra@latest
  3. 環境変数設定:.env に ANTHROPIC_API_KEY または OPENAI_API_KEY
  4. 初期 Agent 定義src/mastra/agents/ に TypeScript ファイル作成
  5. 開発サーバー起動pnpm run dev で playground 起動
  6. API エンドポイント確認:localhost:4111 でブラウザから動作確認
  7. Production ビルドpnpm run build で本番ビルド
  8. Vercel/Cloudflare へデプロイ:Mastra は Edge Runtime 対応

Agent 定義の基本例(Claude 連携)

// src/mastra/agents/sales-assistant.ts
import { Agent } from '@mastra/core/agent';
import { anthropic } from '@ai-sdk/anthropic';

export const salesAssistant = new Agent({
  name: 'Sales Assistant',
  instructions: `
    あなたは中小企業の営業担当者向けの AI アシスタントです。
    顧客情報を整理し、提案書のドラフトを作成します。
    日本語で丁寧に応答してください。
  `,
  model: anthropic('claude-opus-4-7'),
  tools: {
    // ツール定義は後述
  },
});

これだけで Claude モデルを使った AI エージェントの基本骨格ができます。

Tool(ツール)の定義例

// src/mastra/tools/crm-lookup.ts
import { createTool } from '@mastra/core/tools';
import { z } from 'zod';

export const crmLookup = createTool({
  id: 'crm-lookup',
  description: 'CRM から顧客情報を取得します',
  inputSchema: z.object({
    customerId: z.string().describe('顧客ID'),
  }),
  execute: async ({ context: { customerId } }) => {
    // CRM API を呼び出す(実装例)
    const response = await fetch(`/api/crm/${customerId}`);
    return await response.json();
  },
});

Zod スキーマで型安全なツール入出力が定義できるのが Mastra の強みです。LangGraph(Python)の Pydantic と同じ思想ですが、TypeScript エコシステムでは Zod が一般的。

Workflow(複数エージェント連携)の実装例

// src/mastra/workflows/proposal-flow.ts
import { createWorkflow, createStep } from '@mastra/core/workflows';
import { z } from 'zod';
import { salesAssistant, proposalDrafter } from '../agents';

const researchStep = createStep({
  id: 'research',
  inputSchema: z.object({ customerId: z.string() }),
  outputSchema: z.object({ customerProfile: z.string() }),
  execute: async ({ inputData }) => {
    const result = await salesAssistant.generate(
      `顧客 ${inputData.customerId} を調査して`
    );
    return { customerProfile: result.text };
  },
});

const draftStep = createStep({
  id: 'draft',
  inputSchema: z.object({ customerProfile: z.string() }),
  outputSchema: z.object({ proposal: z.string() }),
  execute: async ({ inputData }) => {
    const result = await proposalDrafter.generate(
      `この顧客向けに提案書を作って: ${inputData.customerProfile}`
    );
    return { proposal: result.text };
  },
});

export const proposalFlow = createWorkflow({
  id: 'proposal-flow',
  inputSchema: z.object({ customerId: z.string() }),
  outputSchema: z.object({ proposal: z.string() }),
})
  .then(researchStep)
  .then(draftStep)
  .commit();

2つのエージェントを直列に繋いだフロー。各ステップの型は Zod で保証されるため、エラーが実行前に発見できます。

RAG(外部データ参照)の実装

// src/mastra/rag/knowledge-base.ts
import { MDocument } from '@mastra/rag';
import { embedMany } from 'ai';
import { openai } from '@ai-sdk/openai';

const doc = MDocument.fromText(socialKnowledgeText);

const chunks = await doc.chunk({
  strategy: 'recursive',
  size: 512,
  overlap: 50,
});

const { embeddings } = await embedMany({
  model: openai.embedding('text-embedding-3-small'),
  values: chunks.map(c => c.text),
});

// PgVector / Pinecone / Chroma などのベクトルDBに保存
await vectorStore.upsert({ vectors: embeddings, ... });

Mastra の RAG は LangChain の Retrieval よりシンプルな API。チャンク分割・埋め込み・検索の3ステップが直感的に書けます。

Memory(会話履歴管理)の実装

// src/mastra/agents/customer-support.ts
import { Memory } from '@mastra/memory';

const memory = new Memory({
  storage: new LibSQLStore({ url: 'file:./memory.db' }),
  options: {
    lastMessages: 10,
    semanticRecall: { topK: 3, messageRange: 2 },
  },
});

export const customerSupport = new Agent({
  name: 'Customer Support',
  instructions: 'ユーザーとの過去のやり取りを覚えています',
  model: anthropic('claude-opus-4-7'),
  memory,
});

会話履歴を SQLite/Postgres/Redis に保存。過去の会話を踏まえた応答が可能になります。

LangGraph(Python)との棲み分け

観点 Mastra LangGraph
言語 TypeScript Python
エコシステム Vercel/Next.js FastAPI/Django
対象開発者 フロントエンド・Webエンジニア データサイエンティスト・MLE
学習コスト 低(型ヒントで補完) 中(State 設計)
Edge デプロイ 標準対応 非対応
企業内採用 急速に拡大中 既に標準

使い分けの目安

Mastra を選ぶケース:

  • フロントエンドが Next.js / React で、バックエンドも TypeScript で統一したい
  • Vercel / Cloudflare Workers で Edge デプロイしたい
  • 開発チームがフロントエンドエンジニア中心
  • 型安全性を最優先したい

LangGraph を選ぶケース:

  • 機械学習・データ分析パイプラインと統合する
  • 開発チームが Python ベース
  • 科学計算ライブラリ(pandas/numpy)との連携が必要
  • 既存の LangChain 資産を活用したい

マルチプロバイダー対応の実装

// 用途別にモデルを切り替える例
import { anthropic } from '@ai-sdk/anthropic';
import { openai } from '@ai-sdk/openai';
import { google } from '@ai-sdk/google';

// コード生成は Claude
const coder = new Agent({
  model: anthropic('claude-opus-4-7'),
  // ...
});

// 創造的文章は GPT
const writer = new Agent({
  model: openai('gpt-5-3'),
  // ...
});

// コスト最優先は Gemini
const summarizer = new Agent({
  model: google('gemini-3-5-flash'),
  // ...
});

同じ Agent インターフェースで複数モデルを並行運用可能。本記事「OpenRouter完全ガイド」のように OpenRouter 経由で集約することもできます。

Production 移行のベストプラクティス

  1. 環境変数の Secret 管理:API キーは Vercel/Cloudflare の Environment Variables に保存
  2. レート制限の実装:API キー使用量を per-user/per-IP で制限
  3. エラーハンドリング:try/catch で各エージェント呼び出しを囲む
  4. ロギング:構造化ログで全実行を記録(jsonl 推奨)
  5. ヘルスチェック:定期的に Agent の応答性能を確認するエンドポイント
  6. コスト監視:月次の API 使用量を Slack 通知
  7. 段階的ロールアウト:5% → 25% → 50% → 100% でフィーチャーフラグ展開

よくある質問

Q1. Mastra は本番運用に耐えますか?

2026年6月時点で stable版がリリース済。Vercel・複数の中規模スタートアップで本番運用実績あり。エンタープライズ採用も増加中です。

Q2. LangChain の TypeScript 版(LangChain.js)との違いは?

Mastra はエージェント特化で軽量、LangChain.js は LangChain Python の機能完全移植。LangChain.js は重い・複雑な分、機能網羅性が高い。新規開発なら Mastra、既存 LangChain 資産があれば LangChain.js。

Q3. 学習コストはどれくらい?

TypeScript 経験者なら 1-2日で基本機能、1週間で本番運用レベルに到達可能。Python 経験のみの開発者は + 1週間で TypeScript 習得が必要。

Q4. 日本語対応は?

Mastra フレームワーク自体は言語非依存。日本語の AI 応答は使用する LLM(Claude/GPT/Gemini)の日本語能力に依存。Claude Opus 4.7+ なら高品質な日本語応答が可能。

Q5. データ保護はどうなっていますか?

Mastra はオープンソース、自社サーバーで完結する設計が可能。Memory・RAG のデータも自社管理。LLM プロバイダー(Claude/GPT/Gemini)のデータ保護ポリシーは各社準拠。

Q6. 中小企業の Web 開発チームでも導入できますか?

Next.js / TypeScript 経験のある開発者がいれば導入可能。社内に開発リソースが無い場合は外部 SI 経由の構築が現実的です。

Q7. コスト感は?

Mastra フレームワーク自体は無料(オープンソース)。コストは LLM API 利用料のみ(月数千〜数万円〜数十万円、利用量次第)。Vercel デプロイなら追加で月$20-200程度。

Q8. ChatGPT に組み込まれた AI エージェントを使えば良いのでは?

ChatGPT 内エージェントは ChatGPT の中だけで動作。自社プロダクトに組み込むには Mastra のようなフレームワークが必要です。社内ツール・顧客向けアプリで動かすなら別実装が前提。

まとめ:TypeScript エコシステムの AI エージェント新標準

Mastra は、これまで Python に偏っていた AI エージェント開発を TypeScript エコシステムに開いた、重要なフレームワークです。Next.js・Vercel・Cloudflare Workers で開発する企業にとって、Mastra は LangGraph と並ぶ第一選択肢になります。型安全性・Edge デプロイ・マルチプロバイダー対応の3軸で、2026年下半期の AI 開発で大きく存在感を増す見込みです。

本記事の情報は2026年6月初頭時点のものです。Mastra は急速進化中のため、最新の API 仕様・ベストプラクティスは 公式ドキュメント で必ずご確認ください。


佐藤傑(さとう・すぐる)
株式会社Uravation代表取締役。X(@SuguruKun_ai)フォロワー約10万人。100社以上の企業向けAI研修・導入支援。

📚 関連記事

参考・出典

Need help moving from reading to rollout?

この記事を読んで導入イメージが固まってきた方へ

Uravationでは、AIエージェントの要件整理、PoC設計、社内導入、研修まで一気通貫で支援しています。

この記事をシェア

X Facebook LINE

※ 本記事の情報は2026年6月時点のものです。サービスの料金・仕様は変更される可能性があります。最新情報は各サービスの公式サイトをご確認ください。

関連記事