Claude Agent SDK とは、Anthropic が提供する AI エージェント構築用の開発キットであり、Claude の Tool Use やマルチターン会話を活用したエージェントを Python・TypeScript のコードで実装するためのフレームワークである。
Claude の API を直接叩いてエージェントを組むことは可能だが、ツール呼び出しの結果をモデルに返すループ処理、エラーハンドリング、ガードレールの設定といった定型的な実装が毎回必要になる。Claude Agent SDK はこの「エージェントループ」を抽象化し、開発者がビジネスロジックに集中できるようにした公式フレームワークである。
エージェント開発では、LLM への指示(システムプロンプト)・外部ツールの定義・実行結果の判定を1つのループに統合する必要がある。素朴に実装すると、ツールの戻り値をメッセージ履歴に追加し、再度モデルを呼び、終了条件を判定し……という処理が数百行に膨れ上がる。
SDK はこのループを Agent クラスに凝縮している。開発者はツールを関数として定義し、Agent に渡すだけでよい。ループ制御・トークン管理・ツール実行の直列/並列切り替えは SDK 側が処理する。
SDK の中心は Agent オブジェクト。name・instructions(システムプロンプト)・tools(ツール一覧)を渡してインスタンス化し、Runner.run() で実行する。
1from agents import Agent, Runner, function_tool
2
3@function_tool
4def get_weather(city: str) -> str:
5 return f"{city}の天気は晴れです"
6
7agent = Agent(
8 name="weather-bot",
9 instructions="天気を聞かれたらツールで取得して回答してください。",
10 tools=[get_weather],
11)
12
13result = Runner.run_sync(agent, "東京の天気は?")ツールの入出力は型アノテーションから自動的に JSON Schema に変換されるため、スキーマを手書きする必要がない。筆者が最初に触ったとき、この自動変換だけで従来のボイラープレートが半分以下になった印象だった。
エージェントが意図しない動作をした場合に備えて、入力・出力に対するガードレールを宣言的に設定できる。たとえば「個人情報を含む入力は拒否する」「回答が特定のフォーマットに従わなければリトライする」といった制約を、エージェント定義の一部として組み込める。
また、複数のエージェントを連携させる「ハンドオフ」機能がある。1 つのエージェントが処理の途中で別のエージェントに制御を渡す仕組みで、たとえばカスタマーサポートの一次対応エージェントが、技術的な質問を検知したら専門エージェントに引き継ぐ——といったマルチエージェント構成を、明示的なオーケストレーションコードなしで実現できる。
SDK は MCP(Model Context Protocol)サーバーへの接続をネイティブにサポートしている。MCP サーバーが公開するツール群を Agent のツール一覧に動的に追加できるため、データベース操作やファイルシステムアクセスといった外部機能を、SDK のエージェントループにそのまま組み込める。Claude Code が MCP サーバー経由で Supabase を操作するのと同じ仕組みを、自前のエージェントでも再現可能ということになる。
Claude Code は Anthropic が公式に提供する CLI ベースのコーディングエージェントだが、その内部実装に Claude Agent SDK が使われている。つまり SDK は「Claude Code のようなエージェントを自分で作るためのビルディングブロック」という位置づけ。Agent Skills の定義やツール実行のフローも、SDK のアーキテクチャに準拠している。
ただし、SDK 自体は汎用フレームワークであり、コーディング以外の用途——営業支援、データ分析パイプライン、社内チャットボットなど——にも同じ設計パターンで対応できる。


AIエージェントプロトコル(MCP・A2A)とは?マルチエージェント連携の仕組みを解説
AIエージェントとは、与えられた目標に対して自律的に計画を立て、外部ツールを呼び出しながらタスクを遂行するAIシステムのことである。