8.

AIエージェントとは?Tool Use・LangGraph・MCP・実装例

編集

本稿は 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 CodeOpenAI Codex、Devin、Aider
Browser-Use Agentブラウザ操作で Web タスクを実行Claude Computer Use、ChatGPT Agent、Project Mariner
Computer-Use AgentOS 全体を操作Claude Computer Use、Anthropic 公開
Multi-Agent複数エージェントが役割分担CrewAI、AutoGen、MetaGPT
Research Agent調査・要約・レポート生成OpenAI Deep Research、Gemini Deep Research、Perplexity Spaces
Workflow Agent定型業務の自動化Zapier AI、Make、n8n + AI

主要フレームワーク

フレームワーク特徴
LangGraphLangChain 系。状態機械でエージェント設計。本番運用に強い
LangChain(旧 AgentExecutor)プロト用。複雑化すると LangGraph に移行
LlamaIndex AgentWorkflowRAG と統合しやすい
AutoGen (Microsoft)マルチエージェント対話特化
CrewAI役割を持ったエージェント編成 (PM・Dev・Tester 等)
smolagents (Hugging Face)小さく書ける軽量エージェント
OpenAI Agents SDKOpenAI 公式のエージェント実装支援
Anthropic SDK + MCPClaude + Model Context Protocol で道具接続
Vercel AI SDKWeb フロントエンド統合

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 の漏洩リスクが大きい
  • 監査困難: 何をしたか後追いできないと運用に乗せにくい
  • 過剰期待: 複雑タスクほど失敗率が掛け算で上がる。タスクを分解する

関連

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. LLM (大規模言語モデル)
  2. Transformer
  3. Attention (注意機構)
  4. Embedding (埋め込み)
  5. Prompt Engineering
  6. RAG (検索拡張生成)
  7. ファインチューニング
  8. AIエージェント
  9. マルチモーダルAI
  10. トークンとコンテキストウィンドウ
  11. Diffusion Model (拡散モデル)

最近更新/作成されたページ