フレームワーク

Vercel AI SDK / LangChain / LlamaIndex / Mastra / Claude Agent SDK / MCP。 どれをいつ使うか、選び方と特徴。

選定の指針

Vercel AI SDK

Next.js / Nuxt / SvelteKit などでチャット UI を最速で作るライブラリ。React Hooks も提供。

import { generateText, tool } from "ai"
import { anthropic } from "@ai-sdk/anthropic"
import { z } from "zod"

const { text } = await generateText({
  model: anthropic("claude-sonnet-4-6"),
  tools: {
    getWeather: tool({
      description: "天気取得",
      parameters: z.object({ city: z.string() }),
      execute: async ({ city }) => await fetchWeather(city)
    })
  },
  prompt: "東京の天気は?"
})

Claude Agent SDK

Anthropic 公式のエージェント SDK。Claude Code が依存している中身を切り出したもの。

import { ClaudeAgent } from "@anthropic-ai/agent-sdk"

const agent = new ClaudeAgent({
  model: "claude-sonnet-4-6",
  systemPrompt: "あなたはサポートエージェントです。",
  tools: [searchTool, ticketTool]
})

const result = await agent.run("ユーザー A の最新のチケットを要約して")

LangChain / LangGraph

LLM アプリのデファクト。Python 版が成熟、TypeScript 版も追従。 最近はLangGraph(グラフ的なエージェントフロー)が中心。

入門コストと抽象化

機能は多いが抽象化が深いため、シンプルな用途では生 SDK の方が早いことがある。 複雑度が要件を超えたら導入を検討する程度で良い。

LlamaIndex

RAG に特化したフレームワーク。ドキュメント取り込み → インデックス → クエリのパイプラインが作りやすい。

Mastra

TypeScript ファースト・Workflow + Agent + RAG + Eval の統合フレームワーク。

TypeScript 1 つで本番グレードのエージェントが組める設計。Vercel AI SDK と組合せるパターンが多い。

MCP(Model Context Protocol)

Anthropic が標準化した「LLM クライアント ↔ ツール」プロトコル

MCP サーバーの最小例

import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
import { z } from "zod"

const server = new McpServer({ name: "weather", version: "1.0.0" })

server.tool(
  "get_weather",
  { city: z.string() },
  async ({ city }) => ({
    content: [{ type: "text", text: `${city} は晴れ` }]
  })
)

await server.connect(new StdioServerTransport())

主要 MCP サーバー

その他

OpenAI Agents SDK

OpenAI が公式に出した Agent フレームワーク(旧 Swarm)。OpenAI モデル特化だが Anthropic にも対応。

CrewAI

Python 製、マルチエージェント協調に特化。役割を持った複数エージェントが協力するパターンに強い。

AutoGen

Microsoft 製。エージェント同士の会話によるタスク遂行

Pydantic AI

Python の Pydantic ベースで型安全な LLM 呼び出し。シンプル志向。

使い分け表

ニーズ第 1 候補
Next.js でチャット UI を出したいVercel AI SDK
RAG パイプラインLlamaIndex / Mastra
複雑な分岐エージェントLangGraph
Claude エージェントを正攻法でClaude Agent SDK
TypeScript で全部入りMastra
ツールを横展開したいMCP サーバー化
マルチエージェントCrewAI / LangGraph
Edge / Cloudflare WorkersVercel AI SDK / Mastra / Hono + 生 SDK

フレームワークを使わないという選択

Anthropic SDK の messages.stream + Tool Use ループだけで意外と何でも書ける。 フレームワークの抽象化が要件と合わないなら、自前ループの方が小さく早い。

学習順序

まず生 SDK で素直に書き、痛みを感じたところに合わせてフレームワークを足す。 先にフレームワークから入るとその抽象化の中で困りごとを解決するクセがついて応用が効かなくなる。