Claude Agent SDK 入門|AI エージェントを業務システムに組み込む実装ガイド

公開: 2026-05-09

この記事でわかること

  • Claude Agent SDK が解決する問題: Anthropic API 直叩き / LangChain と何が違うか
  • 最小実装: 30 行で動く CLI Agent (TypeScript / Python)
  • Tool Use と MCP の組み合わせ方: 自社ツールを Agent に持たせる手順
  • 本番運用での注意: タイムアウト・コスト・無限ループ対策
  • 似た仕組み (LangGraph, Semantic Kernel) との設計思想の違い

なぜ Claude Agent SDK が必要だったのか

Claude を「エージェント」(自律的にツールを使ってタスクを完遂する AI) として動かすには、Anthropic API の messages.create何度も往復 する必要があります。具体的には:

  1. ユーザー質問を投げる
  2. Claude が「Tool X を使いたい」と返す
  3. Tool X を実行して結果を得る
  4. 結果を Claude に渡す
  5. Claude が次の Tool または最終回答を返す
  6. 4-5 を繰り返す

この ループ・ツール定義・エラーハンドリング・コンテキスト管理・無限ループ防止 を全て自分で書くのは大変。Anthropic は 2025-26 年に Claude Agent SDK をリリースし、これを SDK 標準で提供するようにしました。

30 行 Hello Agent (TypeScript)

npm i @anthropic-ai/agent-sdk
import { Agent, defineTool } from "@anthropic-ai/agent-sdk";

const calc = defineTool({
  name: "calculator",
  description: "数式を計算する。例: 2 + 2 * 3",
  inputSchema: {
    type: "object",
    properties: { expr: { type: "string" } },
    required: ["expr"],
  },
  execute: async ({ expr }) => ({ result: eval(expr) }),  // demo only
});

const agent = new Agent({
  model: "claude-sonnet-4-6",
  systemPrompt: "あなたは計算アシスタント。calculator tool を使って答える。",
  tools: [calc],
  maxIterations: 5,
});

const response = await agent.run("100 + 200 * 3 はいくつ?");
console.log(response.finalText);

これで動くエージェントが完成。agent.run() 内部で:

  1. messages.create で Claude に質問送信
  2. Claude が「calculator を使う」と返す
  3. SDK が calc.execute を自動呼出
  4. 結果を Claude に返す
  5. Claude が「答えは 700 です」と返す
  6. 終了

Tool Use と MCP の組み合わせ

局所 tool は SDK の defineTool

シンプルな関数 (上記 calculator のような) は SDK 内で defineTool するのが早い。

社内ツールは MCP として実装

社内 DB / Slack / GitHub などは MCP サーバーとして書いて、Agent SDK から接続するのが再利用性高い設計です:

import { Agent, addMcpServer } from "@anthropic-ai/agent-sdk";

const agent = new Agent({
  model: "claude-sonnet-4-6",
  systemPrompt: "あなたは社内データ分析アシスタント。",
  mcpServers: [
    {
      name: "company-db",
      command: "npx",
      args: ["tsx", "/srv/mcp/company-db-server.ts"],
    },
    {
      name: "slack",
      command: "npx",
      args: ["-y", "@modelcontextprotocol/server-slack"],
      env: { SLACK_BOT_TOKEN: process.env.SLACK_TOKEN! },
    },
  ],
  maxIterations: 10,
});

await agent.run("先週の売上を集計して #sales-report に投稿して");

MCP 入門 で MCP サーバー実装を扱っています。Agent SDK と組み合わせて初めて Agent SDK の真価が出ます。

LangChain / LangGraph との違い

観点Anthropic API 直叩きClaude Agent SDKLangChainLangGraph
ベンダーClaude 専用Claude 専用マルチモデルLangChain 系
Tool ループ自前実装標準提供抽象化ありDAG / state machine
MCP 統合自前標準コミュニティ拡張コミュニティ拡張
Prompt Caching自前で TTL 管理SDK 自動一部対応対応
複雑なワークフロー自前maxIterations のみチェーングラフ DSL
マルチエージェント自前単純な並列はありサブエージェント標準サポート

選び方の指針:

  • Claude 中心 + シンプルな tool 利用: Agent SDK が最短
  • 複数モデル混在 (Claude + GPT + Gemini): LangChain
  • 複雑なワークフロー (条件分岐・人間レビュー挟む): LangGraph
  • 本格的なマルチエージェント協調: LangGraph or 自前

本番運用の落とし穴

1. タイムアウト

Tool 呼出を含む 1 ループは 5-15 秒、最大 60 秒以上になることも。HTTP API として公開するなら fastify / express の timeout を 120s 以上 に設定。Cloudflare Workers (30s 制限) には収まらないので注意。

2. コスト

Claude Sonnet で 1 セッション $0.1-$1。社内エージェントなら問題ないが、エンドユーザー向けに開放するなら maxIterations + max_tokens で上限管理 が必須。月額予算 ÷ 想定セッション数 で 1 セッションの予算を逆算するのが定石。

3. 無限ループ

maxIterations を必ず設定 (デフォルト 10 だが、本番は 5-7 に絞ることが多い)。Tool が常に同じ結果を返すと Claude が「もう一回 Tool を使う」を繰り返します。Tool 結果に「変わらないよ」シグナルを返す設計も併用。

4. ロギング

各ループの user / assistant / tool_use / tool_result を全て記録。本番障害時の調査に必須。SDK には built-in logger があるが、構造化ログ (JSON) で外部に流すのが推奨。

5. プロンプトキャッシュ

enablePromptCaching: true でシステムプロンプト + tool 定義をキャッシュ。同じ Agent を多数のリクエストで使うなら 50-90% コスト削減。

どこから手を動かすか

公式チュートリアル (docs.claude.com/agent-sdk) で概念を読む → 30 行 Hello Agent → 簡単な Tool 1 つ → MCP 接続 → ループ制御、の順で手を動かすのが効率的。

次の手を動かす: 本サイトの「AIエージェント活用実践編」で Claude Agent SDK + MCP の組み合わせを 10 章 46 レッスンで解説しています (有料 Pro プラン)。LP 公開前のため近日中の公開予定。 先に試したい場合は バイブコーディング実践編 で MCP の章を 4 週間限定無料で受講できます。

関連ガイド:

まとめ

  • Claude Agent SDK は Claude 専用に Tool ループ / MCP / ロギングを標準化
  • 30 行で動く Hello Agent、defineTool で関数を tool 化
  • 社内ツールは MCP サーバーで実装、Agent SDK から接続が再利用性高い
  • LangChain は多モデル対応、LangGraph は複雑ワークフロー、Agent SDK は Claude 専用最短
  • 本番運用は timeout / コスト上限 / maxIterations / ロギング / prompt caching の 5 点を必ず設定