Skip to content
記事一覧に戻る
AI/AGI13 min

Claude Agent SDK 本番運用パターン: subagent・hook・MCP の実戦設計

Claude Agent SDK in Production: Subagent, Hook and MCP Patterns

Shota TanakaLead AI Engineer
2026-04-2513 min
Claude Agent SDKSubagentHooksMCPProduction

なぜ Agent SDK か

  • 年に入り、Anthropic は Claude Agent SDK(旧 Claude Code SDK)を正式に「エージェント基盤」として位置付け直した。`@anthropic-ai/agent-sdk` (TS) と `anthropic-agent` (Python) の両言語で提供され、subagent / tool / hook / MCP の 4 概念で構築する。Claude Code が内部的に使っているのと同じ仕組みを、自社プロダクトに組み込めるのが要点である。

ベース構成

```ts import { query } from "@anthropic-ai/agent-sdk";

const result = await query({ prompt: "顧客の最新請求を要約して", model: "claude-opus-4-7", systemPrompt: "あなたは経理アシスタント。日本語で答えること。", mcpServers: { db: { command: "node", args: ["./mcp/db-readonly.js"] } }, hooks: { PreToolUse: ["./hooks/audit.sh"], Stop: ["./hooks/notify-slack.sh"] } }); ```

Subagent 分割

主エージェント(プランナー)と子エージェント(実装担当)を分けると、コンテキスト汚染を防ぎつつ並列性を出せる。子エージェントは独立したコンテキストで起動するため、トークン使用量も予測しやすい。社内 R&D ではコードレビュー系のエージェントを「セキュリティ」「パフォーマンス」「保守性」の 3 並列に分けて統合する構成で安定運用している。

Hook の使い方

PreToolUse, PostToolUse, Stop, Notification, UserPromptSubmit などのライフサイクルフックがある。本番運用では:

  • PreToolUse: 監査ログ記録、危険なコマンドの拒否
  • PostToolUse: 出力ファイルの自動 lint / format
  • Stop: 未完了タスクの検出(get-shit-done パターン)
  • Notification: Slack 通知(許可待ちなど)

MCP の役割

社内 DB、社内ナレッジ、特定 SaaS への接続を MCP サーバとして外出しすることで、エージェント本体は薄く保てる。MCP サーバは別プロセスのため、再起動・差し替えが容易で、複数エージェントから共有もできる。

ガードレール

  • Tool 単位の allowlist
  • 出力前の Llama Guard 3 / Claude Guard でのフィルタ
  • ツール呼び出し回数の上限と暴走検出
  • センシティブなツール(DB 書き込み、メール送信)はヒト承認をフックでブロッキング

観測

OpenTelemetry の `agent.run`、`agent.tool_call`、`agent.subagent` という 3 種の span をデフォルトで吐かせ、Langfuse / Honeycomb で可視化。失敗パターンの統計が取りやすくなる。

まとめ

Claude Agent SDK は「Claude Code の中身を自社プロダクトに移植する」ことを楽にする SDK で、subagent + hook + MCP の組み合わせが本番運用の安定性を決める。テンプレ的な構成を社内で標準化し、各案件はそれをカスタマイズする方針が早い立ち上げにつながる。

まずは無料相談から

お客様のIT課題をお聞かせください。最適なソリューションをご提案いたします。

お問い合わせはこちら