本稿は AI エージェント(AI Agent) に関する記事です。
| この記事の要点 |
- AI エージェント = LLM が自分でツールを選び、複数手順を実行する自律システム
- 従来のチャット (1 ターン質問応答) と違い、計画 → 実行 → 観察 → 修正のループを回す
- 主要 3 構成要素: LLM(頭脳)/ ツール (Tool / Function)(手足)/ メモリ(状態)
- 業界の進化形: ChatGPT Agent / Claude Computer Use / Claude Code / Devin / Manus / Codex Cloud
- 定番フレームワーク: LangChain / LangGraph / LlamaIndex / AutoGen / CrewAI
- 業務上の難所: 暴走防止 / コスト管理 / セキュリティ / 監査ログ / 失敗時のリカバリ
|
AI エージェントとは?
AI エージェント は、LLM が単発の質問応答にとどまらず、目的達成のために自分でツールを選び、複数のステップを自律実行するシステムです。「考えて」「道具を使って」「結果を見て」「次の手を決める」というループ(ReAct パターン)を回す点が、ただのチャットと決定的に違います。
2024〜2026 年に「エージェンティック AI (Agentic AI)」と呼ばれるブームが起き、開発支援・業務自動化・ブラウザ操作・データ分析などの実用領域で急速に普及しました。
3 つの構成要素
| 要素 | 役割 | 例 |
| LLM(頭脳) | 意思決定・推論・計画 | GPT-4o / Claude / Gemini |
| ツール (Tool / Function) | 外部世界に作用する手段 | Web 検索・コード実行・ファイル操作・DB 問合せ・API 呼出 |
| メモリ / 状態 | 過去の行動と結果を保持 | 会話履歴・スクラッチパッド・ベクトルDB |
動作パターン(ReAct)
| ループ | LLM の役割 |
| 1. Thought(思考) | 「次に何をすべきか」を考える |
| 2. Action(行動) | 適切なツールと引数を選ぶ |
| 3. Observation(観察) | ツール実行結果を読む |
| 4. 繰り返し | 目的達成まで 1〜3 を繰り返す |
| 5. Final Answer | 結果をまとめてユーザに返す |
エージェントの種類
| 種類 | 特徴 | 代表例 |
| Tool-Use Agent | 関数呼び出し / API 連携 | OpenAI Function Calling、Anthropic Tool Use |
| Coding Agent | コード生成・編集・実行 | Claude Code、OpenAI Codex、Devin、Aider |
| Browser-Use Agent | ブラウザ操作で Web タスクを実行 | Claude Computer Use、ChatGPT Agent、Project Mariner |
| Computer-Use Agent | OS 全体を操作 | Claude Computer Use、Anthropic 公開 |
| Multi-Agent | 複数エージェントが役割分担 | CrewAI、AutoGen、MetaGPT |
| Research Agent | 調査・要約・レポート生成 | OpenAI Deep Research、Gemini Deep Research、Perplexity Deep Research |
| Workflow Agent | 定型業務の自動化 | Zapier AI、Make、n8n + AI |
主要フレームワーク
| フレームワーク | 特徴 |
| LangGraph | LangChain 系。状態機械でエージェント設計。本番運用に強い |
| LangChain(旧 AgentExecutor) | プロト用。複雑化すると LangGraph に移行 |
| LlamaIndex AgentWorkflow | RAG と統合しやすい |
| AutoGen (Microsoft) | マルチエージェント対話特化 |
| CrewAI | 役割を持ったエージェント編成 (PM・Dev・Tester 等) |
| smolagents (Hugging Face) | 小さく書ける軽量エージェント |
| OpenAI Agents SDK | OpenAI 公式のエージェント実装支援 |
| Anthropic SDK + MCP | Claude + Model Context Protocol で道具接続 |
| Vercel AI SDK | Web フロントエンド統合 |
Tool Use (Function Calling) の最小サンプル
|
from openai import OpenAI
import json
client = OpenAI()
# 1) 利用可能ツールを宣言
tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "指定都市の天気を取得",
"parameters": {"type": "object",
"properties": {"city": {"type": "string"}}, "required": ["city"]}
}
}]
# 2) LLM 呼び出し
messages = [{"role": "user", "content": "東京の天気を教えて"}]
res = client.chat.completions.create(model="gpt-4o", messages=messages, tools=tools)
# 3) LLM がツール選択 → 実行
call = res.choices[0].message.tool_calls[0]
args = json.loads(call.function.arguments)
result = {"city": args["city"], "weather": "晴れ"}
# 4) 結果を LLM に返して最終回答
messages.append(res.choices[0].message)
messages.append({"role": "tool", "tool_call_id": call.id, "content": json.dumps(result)})
final = client.chat.completions.create(model="gpt-4o", messages=messages, tools=tools)
print(final.choices[0].message.content)
|
MCP(Model Context Protocol)
| 補足: 道具をプラグイン化する標準 |
| Anthropic が 2024 年末に提唱し、業界標準化が進むModel Context Protocol (MCP) は、AI と外部ツール・データソースを接続するための共通プロトコルです。MCP サーバを実装すれば、Claude Desktop / Claude Code / Cursor / OpenAI ChatGPT などの対応クライアントから一律に呼び出せます。USB のように「道具を差し替え可能」にする仕組みで、エージェント連携の事実上の標準になりつつあります。 |
本格的なエージェント設計のポイント
| 設計観点 | 押さえどころ |
| 状態管理 | LangGraph 等で状態機械を明示。隠れ状態を持たない |
| ステップ上限 | ループ無限化防止。max_iterations |
| タイムアウト | 各ツール実行の時間制限 |
| 承認制 (Human-in-the-loop) | 危険操作(ファイル削除・送金・メール送信)は人間が承認 |
| 並列化 | 独立タスクは並列実行 |
| 計画分離 | 「計画」専門エージェントと「実行」専門エージェントを分ける |
| 失敗時のリトライ / フォールバック | ツール失敗時の代替経路 |
| 監査ログ | 全ステップ(思考・ツール呼出・結果)を記録 |
| コスト監視 | 1 回のエージェント実行で消費トークン・API 費用を集計 |
主な応用
- コーディング: バグ修正・テスト生成・リファクタ(Claude Code 等)
- ブラウザ操作: フォーム入力・予約・情報収集
- カスタマーサポート: チケット分類・回答案・エスカレ判定
- データ分析: Python 実行で集計・グラフ生成
- 研究調査: 複数情報源を巡回し要約レポート
- マーケティング: コンテンツ生成・配信スケジューリング
- 運用 DevOps: ログ調査・障害対応の初動
- 金融: 取引・与信判定・コンプラチェック
運用上のヒント
| Tips |
- 小さく始める: ツール 1〜2 個から。多すぎると LLM が選択を誤る
- ツール説明文の質がエージェント精度を支配する。曖昧な説明は誤呼出の原因
- 本番ではサンドボックス / 専用ユーザで隔離(root 権限・rm -rf 等を防ぐ)
- 長時間タスクはチェックポイントで中断・再開可能に
- 失敗ログを定期分析。同じ失敗を繰り返すならプロンプト改良 + ツール改良
- マルチエージェントは見栄えはするが過剰な複雑性を生む。単一エージェントで足りるなら避ける
- 定量評価セット(ベンチマーク)を作る。改善判断の根拠に
|
注意点(リスクと限界)
| よくある落とし穴・リスク |
- 暴走: ループに陥り高コスト・予期せぬ操作。ステップ上限 / タイムアウト必須
- プロンプトインジェクション: 検索結果やメール本文に「これまでの指示を無視せよ」が混入
- 権限過大: ファイル削除・送金・メール送信のような不可逆操作は必ず人間承認
- 幻覚行為: 存在しないツール・関数を呼ぶ / 存在しない引数を渡す
- コスト爆発: 1 タスクで数百〜数千リクエストになることがある
- ブラウザ操作では認証情報・Cookie の漏洩リスクが大きい
- 監査困難: 何をしたか後追いできないと運用に乗せにくい
- 過剰期待: 複雑タスクほど失敗率が掛け算で上がる。タスクを分解する
|
関連