※この記事にはアフィリエイトリンクが含まれる場合があります。

「AIエージェント」という言葉は2025年あたりから一気に広まり、2026年5月時点では実務での利用も当たり前になってきました。一方で、チャットボットとの違いや「結局なにが新しいのか」がはっきりせず、入門の段階でつまずく方も多い分野です。
本記事では、AIエージェントの定義と仕組みを整理した上で、2026年5月時点での開発の現実、Claude Sonnet 4.6を使った最小実装、そして主要フレームワークの選び方までを通しで解説します。コード例はPythonで、AnthropicのClaude APIを前提にしています。
AIエージェントとは:ひとことで言うと
AIエージェントとは、ひとことで言えば「LLMがツールを使い、目標達成までループで動き続けるソフトウェア」です。従来のチャット型AIが「質問1回に対して答え1回」のやり取りを前提としていたのに対し、エージェントは目標を満たすまで自分で考え、外部ツールを呼び出し、結果を観察して次の行動を選びます。
たとえば「先週分の売上CSVを集計してレポート用のPDFを作って」と頼んだとき、エージェントは(1)ファイルを探す、(2)pandasで集計する、(3)グラフを描く、(4)PDF化する、といった一連のステップを自分で計画し、必要なツールを順番に呼び出しながら最後まで動き切ります。チャット型AIなら「コードを返す」で終わるところを、エージェントは「実際に成果物を出す」ところまで持っていく点が大きな違いです。
チャットボット・エージェント・自律エージェントの3段階
「エージェント」という言葉は広く使われすぎて、人によって指す意味が違います。実務では次の3段階に分けて捉えると整理しやすくなります。
- チャットボット:ユーザーの入力に対して1ターンで応答するだけ。ツール利用なし、状態保持はあっても1スレッド内に限られる。
- エージェント:明示的なツール(関数、API、コード実行)を持ち、複数ターンのループで目標達成まで動く。人手の確認ポイントが入ることが多い。
- 自律エージェント:人手の介入なしに、計画立案・実行・自己評価まで完結する。Claude Codeのbackground modeや、長時間バックグラウンドで動くタスクランナーなどが該当する。
「AIエージェント」と言うときは、たいてい真ん中の「エージェント」を指します。完全自律はまだ事故が多く、2026年5月時点でも本番運用では人手承認ステップを残すのが主流です。
AIエージェントの4要素

どんなエージェントも、突き詰めると次の4つの要素から成り立っています。フレームワークの違いは、この4要素をどう実装しているかの違いとも言えます。
- LLM(頭脳):判断・推論・自然言語処理を担う。Claude Sonnet 4.6、Claude Opus 4.7、GPT-5系、Geminiなど。
- ツール:関数、API、コード実行、Web検索、ファイル操作など、現実世界に作用するための手段。
- メモリ:会話履歴、スクラッチパッド、ベクトルDB、ファイルシステムなど、過去の文脈を蓄える仕組み。
- ループ(オーケストレーション):思考→行動→観察を繰り返し、目標達成まで動かす制御部分。
このうち最も誤解されやすいのが「ループ」です。エージェントは魔法のように動くわけではなく、アプリ側で「モデル呼び出し→ツール実行→結果を次のメッセージに追加→再度モデル呼び出し」を素朴に回しているだけです。仕組みが分かれば、フレームワーク無しでも作れます。
ReActパターン:思考→行動→観察ループ
エージェント実装の基本形が、2022年に提案されたReAct(Reasoning + Acting)パターンです。Claude Sonnet 4.6やOpus 4.7のtool useも、内部的にはこの考え方をなぞった形になっています。擬似コードで書くと次のような構造です。
messages = [user_request]
while True:
response = llm.call(messages, tools=TOOLS)
if response.has_tool_use:
for tool_call in response.tool_uses:
result = run_tool(tool_call.name, tool_call.input)
messages.append(tool_result(tool_call.id, result))
continue
return response.text # stop_reason == "end_turn"
ポイントは、ループの終了条件がモデル側のstop_reasonであることです。Claude APIで言えば、stop_reasonがtool_useのうちはアプリがツールを実行して結果を返す、end_turnになったら最終応答として返す、という流れになります。
2026年5月時点のエージェント開発の現実
2025年から2026年にかけて、エージェント開発の現場は大きく変わりました。2026年5月時点で押さえておきたいトピックは次のとおりです。
- Claude Codeがエージェントプラットフォーム化:単なるCLIではなく、サブエージェント、スキル、フック、MCP対応を備えた汎用エージェント基盤に。
- Anthropic Managed Agents:自前でループ実装やインフラを持たずに、Claude APIにエージェント実行を任せる選択肢が登場。
- MCP (Model Context Protocol):ツール・データソースとLLMをつなぐ標準プロトコルとして定着。MCPサーバを書けば、ClaudeにもCursorにも同時に対応できる。
- 1Mコンテキスト:Claude Sonnet 4.6 / Opus 4.7 が1Mトークンに対応し、長時間タスクでも会話を畳まずに済むケースが増えた。
これらの結果、2024年頃と比べて「ゼロから自作する」必然性は薄れています。一方で、内部の仕組みを理解せずにフレームワークだけ触ると、エラー時のデバッグや費用最適化で詰みやすいので、最初の1〜2本は素のSDKで書いてみることを強くおすすめします。
Claude Sonnet 4.6で作る最小エージェント

実際にClaude Sonnet 4.6のtool useで、簡単な計算エージェントを書いてみます。anthropic 0.100.0以降と、環境変数ANTHROPIC_API_KEYを前提にしています。
from anthropic import Anthropic
client = Anthropic()
tools = [{
"name": "calc",
"description": "Pythonの式を評価して数値を返します。",
"input_schema": {
"type": "object",
"properties": {"expr": {"type": "string"}},
"required": ["expr"],
},
}]
def run_tool(name, input):
if name == "calc":
return str(eval(input["expr"], {"__builtins__": {}}))
raise ValueError(name)
messages = [{"role": "user",
"content": "123 * 456 + 789 を計算して、結果を日本語で説明して。"}]
while True:
resp = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
tools=tools,
messages=messages,
)
if resp.stop_reason == "tool_use":
tool_results = []
for block in resp.content:
if block.type == "tool_use":
out = run_tool(block.name, block.input)
tool_results.append({
"type": "tool_result",
"tool_use_id": block.id,
"content": out,
})
messages.append({"role": "assistant", "content": resp.content})
messages.append({"role": "user", "content": tool_results})
continue
print(resp.content[0].text)
break
50行に満たないコードですが、これだけで「Claudeが必要なときにcalcを呼び出し、結果を踏まえて最終応答を返す」というエージェントの最小形が動きます。ツールを「Webページ取得」「DB検索」「メール送信」に差し替えれば、業務エージェントの骨格はそのまま流用できます。
注意点は3つあります。第一に、ツール実行は必ずアプリ側で行うこと。Claudeは「呼び出し指示」を返すだけで、実行はあなたのコードの責任です。第二に、evalのような実装はサンプル用で、本番では絶対に使わないこと。第三に、無限ループ防止として最大ターン数や時間制限を必ず外側で持たせることです。
主要フレームワーク比較
2026年5月時点でよく使われるエージェントフレームワークと、それぞれの向き不向きを整理します。
| フレームワーク | 提供元 | 得意な領域 | 向いている人 |
|---|---|---|---|
| Claude Agent SDK | Anthropic | Claudeネイティブ、サブエージェント、MCP統合 | Claude中心でエージェントを組みたい人 |
| LangGraph | LangChain | 状態遷移グラフでの複雑なフロー制御 | 明示的なステートマシンを書きたい人 |
| AutoGen | Microsoft | エージェント同士の会話、研究寄りの実装 | マルチエージェントの実験 |
| CrewAI | OSS | 役割ベースのエージェントチーム編成 | 「役割」で設計したい人 |
最初の1本は素のClaude SDK、複数エージェントや複雑なフローが必要になったらClaude Agent SDKかLangGraph、という順序で進めるとつまずきにくいです。CrewAIやAutoGenは概念学習用としては優秀ですが、本番運用では細かい制御がやや難しい場面もあります。
安全に運用するための最低ライン
エージェントは「自分でAPIを叩いて行動する」性質上、放置すると簡単に事故ります。本格運用前に、最低でも次の対策は入れておきましょう。
- 最大ターン数とタイムアウト:ループの外側でハードリミットをかけ、暴走を物理的に止める。
- ツールのallowlist:呼び出せるツールを明示的に列挙し、危険な操作(rm、SQL DELETE、外部送金など)は人手承認を挟む。
- サンドボックス実行:コード実行系のツールは、Docker、専用VM、Modal、E2Bなどで隔離する。
- 費用上限:Claude Console側で月次上限を設定し、ログには
usage.input_tokensとoutput_tokensを必ず残す。 - 監査ログ:どのプロンプトでどのツールが呼ばれたかを追跡できるようにしておく。
詳細なセキュリティリスクと対策は、別記事「AIエージェントのセキュリティリスクと対策」にまとめています。本番運用に進む前に必ず一読してください。
これから学ぶ順序
未経験から実用レベルまで進むなら、次のステップが現実的です。
- Python基礎とAPI呼び出しの感覚をつかむ(環境変数、SDK、エラー処理)。
- 素のClaude APIでtool useを1本書く(本記事のサンプルが出発点)。
- 2〜3個のツールを持つReActループを自作する。
- Claude Agent SDKまたはLangGraphで複雑なフローに拡張する。
- マルチエージェント設計と本番運用の安全策を学ぶ。
マルチエージェント設計に興味が出てきたら「マルチエージェントシステム設計パターン」、Claude CodeをIDEとして使いこなしたいなら「Claude Code完全ガイド」に進むのがおすすめです。
まとめ
AIエージェントは「LLM+ツール+メモリ+ループ」というシンプルな構成で動いており、Claude Sonnet 4.6のtool useがあれば50行ほどで最小形が書けます。2026年5月時点では、Claude Agent SDKやMCPなど周辺エコシステムも整い、入門のハードルは大きく下がりました。一方で、暴走や情報漏洩への備えは依然として必須です。仕組みを理解した上で、小さなエージェントから一歩ずつ運用経験を積んでいきましょう。
AIエージェント開発を体系的に学ぶ
Claude APIとAIエージェント開発を実践形式で学べる、筆者のUdemy講座一覧です。