1. なぜ今、AIエージェントを整理したいのか
最近、AIの会話でこういう場面が増えました。
A「それ、エージェントでできますよ」
B「うちもエージェント使ってます」
C「次はエージェントの時代ですよね」
一見、通じているように見える。
でも数分後、だいたいこうなります。
「で、その“エージェント”って何?」
ここが本質です。
人によって、指しているものが違う。
そして前提が揃わないまま議論が始まって、最後は「声が大きい人の定義」が勝つ。
エージェントはタスク・環境・評価方法が多様すぎて、単一の定義に固定しづらい。
この先は「唯一の正解」を押し付ける話ではなく、
少なくとも“この前提で話せば、設計の会話が進む”状態
を作る話です。
今回はエージェントのメリット・デメリット、評価方法などざっくり触れていますが、あくまで目的は上記ですので、網羅できていない点をご了承ください。
2. AIエージェントとは何か
2.1 まず結論:エージェントは「モデル」ではなく「仕事の進め方(設計)」
Google Cloud は AIエージェントを、ざっくりこう説明します。
- 目標を与えられ
- 状況を見て
- 推論・計画し
- 必要ならツールを使い
- 結果を受けて次の行動を変える
つまり“賢い答え”ではなく、“賢い進め方(ループ)”の話。
「システム設計」の話です。
- Google Cloud: AI agents
https://cloud.google.com/ai/docs/agents
2.2 その他の公式情報が示す「エージェント=システム設計」という立場
Anthropic や OpenAI の公式記事では、
AIエージェントは「モデルそのもの」ではなく、
モデルを中核に据えた システム設計 として明確に扱われています。
Anthropic の立場
Anthropic は、自社のマルチエージェント研究システムについて、次のような前提で説明しています。
- 複数のエージェントに役割を分け
- 明示的にやり取りさせ
- 全体として一つのタスクを解かせる
重要なのは、
「新しい特別なモデルを作った」話ではなく、
既存モデルをどう“構成要素として使ったか”に焦点がある点です。
- Anthropic: How we built our multi-agent research system
https://www.anthropic.com/engineering/how-we-built-our-multi-agent-research-system
OpenAI の立場
OpenAI も同様に、エージェントを
ツール呼び出し・状態管理・制御を含む設計問題として扱っています。
OpenAI の Function Calling ガイドは、
「モデルがいつ・どのツールを・どんな引数で呼ぶか」を
システム側がどう制御・設計するかを主眼に置いています。
- OpenAI: Function calling / tool use guide
https://platform.openai.com/docs/guides/function-calling
ここまでの公式情報を踏まえると、
AIエージェントとは「賢いモデル」ではなく、
「賢く振る舞わせるための設計」
という整理が、最も事実に忠実です。
2.3 ChatGPT / Gemini / Claude はエージェント?
ここで、多くの人が抱く疑問があります。
「それって、ChatGPTにちゃんと指示を書けばいいだけでは?」
半分は正解で、半分は違います。
ChatGPT / Gemini / Claude (汎用 AIツール)は、
- 入力を受け取り
- その場で推論し
- 1回の出力を返す
という意味では、そのままではエージェントではありません。
しかし、次の条件が揃った瞬間に話は変わります。
- 役割を固定し
- 目的(ゴール)を与え
- 状態(途中経過)を引き継ぎ
- 外部ツールを使わせ
- 成果に応じて次の行動を変える
この瞬間に、
モデルは「単発応答」から「継続的に行動する存在」へ変わります。
ここからが「エージェント的振る舞い」です。
そして、この状態は次のようにも言い換えられます。
これは「シングルエージェント」として捉えることが可能な状態
です。
つまり、
- 単一のLLMであっても
- 状態・目的・ツール・行動更新を持てば
- エージェント的に振る舞う
逆に言えば、シングルエージェントなら汎用 AIツールで十分と言えるかもしれません。
2.4 本記事の立場:「エージェント=マルチエージェント」で行く
本記事では
あえて「エージェント=マルチエージェント」 として話を進めます。
理由は実務的です。
- 日本で「AIエージェント」と呼ばれている多くの事例は
実質的に 複数の役割・複数の判断主体を前提としている - 単一エージェントまで含めると
「プロンプト工夫」との境界が曖昧になり、議論が止まる - 設計・評価・オーケストレーションの話を前に進めるには
マルチエージェント前提で整理した方が実用的
LangChain の公式整理でも、
議論の中心はすでに「協調」「役割分担」「指揮」に移っています。
- LangChain Blog: How and when to build multi-agent systems
https://blog.langchain.dev/how-and-when-to-build-multi-agent-systems/
そのため本記事では、
“エージェント”という言葉を
「マルチエージェント前提の設計」に限定して使います。
2.5 いつ汎用AIで十分で、いつマルチエージェントが効くのか
判断軸はシンプルに ステップ数 × 環境変化 です。
| 観点 | 汎用AIツール(ChatGPT等) | エージェント(本記事) |
|---|---|---|
| ステップ数 | 少ない | 多い |
| 環境変化 | ほぼ無い | しょっちゅうある |
| 自己修正 | ほぼいらない | 必要 |
| 役割分担 | ほぼいらない | 必要 |
ここで言う「環境変化」とは、
エージェントがタスクを進めている途中で、
前提条件・取得方法・判断基準が変わってしまう状況を指します。
たとえば、APIエラー、Webページ構造の変更、データ形式の変更、利用可能なツールや権限の変化などです。
そして、表には含めませんでしたが、忘れてはいけないのがROI(投資対効果)です。
「GPT-4oを1回叩いて終わるタスク」にエージェントは不要です。しかし、「人間が1時間かけて、調べ物とコピペを繰り返すタスク」 であれば、APIに数ドル払って10分待たせても、圧倒的なROIが生まれます。
3. エージェントの強みと弱み
3.1 強み:長い仕事を「分解して」「やり直しながら」進められる
エージェントは「長い仕事」ができます。
でもこれは「知能が上がった」より、「失敗と修正を許す器を作った」結果です。
現実のWeb環境に寄せた評価(WebArenaなど)でも、長いタスクは難易度が跳ねることが示されています。
“面倒なWeb雑務”に寄せたWebChoreArenaも同じ方向性です。
エージェントの強みは“長い仕事を解ける”というより、
“長い仕事を解くための試行錯誤を回せる”こと。
-
arXiv: WebArena: A Realistic Web Environment for Building Autonomous Agents
https://arxiv.org/abs/2307.13854 -
arXiv: WebChoreArena: Evaluating Web Browsing Agents on Realistic Tedious Web Tasks
https://arxiv.org/abs/2506.01952
3.2 弱み:ズレが雪だるま式に増える
ここが最大の落とし穴です。
エージェントが長く動けば動くほど、事故確率は増えます。
BrowseComp(OpenAI)は「見つけにくい情報を探す」ベンチマークですが、示唆的なのはこれです。
-
探索には試行錯誤が必要
-
試行錯誤には計算資源(=トークンや時間)が必要
-
OpenAI / arXiv: BrowseComp: a benchmark for browsing agents
https://arxiv.org/abs/2504.12516
AgentBenchも、長期推論・意思決定・指示追従がボトルネックになりやすいことを分析します。
- arXiv: AgentBench: Evaluating LLMs as Agents
https://arxiv.org/abs/2308.03688
現場の言葉にするとこうです。
- 調査役が誤解する
- 要約役が誤解を“文章として整える”
- レビュー役が“それっぽさ”に騙される
- 綺麗な間違いが完成する
だから「マルチエージェント=強い」ではなく、
マルチエージェント=ズレを止める設計ができて初めて強い
という順番で考えるのが安全です。
4. RPAとの違い
4.1 RPAは「決めた手順を、決めた通りにやる」職人
RPAが強いのは、こういう世界です。
- 手順が固定
- 入力が安定
- 例外が少ない
- 失敗が許されない(=確実性が大事)
UIが変われば止まります。
でもそれは裏返すと 想定外のことをしないという強みです。
4.2 エージェントは「手順を持てるが、逸脱もする」万能新人
エージェントはワークフローを持てます。
ただし その場で判断して逸脱もする。だから柔軟。だけど危うい。
ツール利用に関しては、Toolformerのように「いつツールを呼ぶか」まで学習させる方向性もあります。
- arXiv: Toolformer: Language Models Can Teach Themselves to Use Tools
https://arxiv.org/abs/2302.04761
まとめると、
- RPA:確実性の技術(範囲が狭い)
- エージェント:柔軟性の技術(範囲が広いぶんミスも増える)
5. アーキテクチャ5種類を紹介
“5種類”に絞って メリット/デメリット/向いている事例を書きます。
5.1 Planner–Executor型(考える人/動く人を分ける)
ざっくり: 計画を立てる(Planner)→実行する(Executor)
ReAct(Reason+Act)の発想とも相性が良いです。
- arXiv: ReAct: Synergizing Reasoning and Acting in Language Models
https://arxiv.org/abs/2210.03629
メリット
- 複雑な仕事を「見える化」できる(計画がログに残る)
- 分業しやすい(Executorを複数にできる)
デメリット
- 計画がズレると、その後が全部ズレる
- 計画が細かすぎても粗すぎても迷子になる
向いている例(3つ)
- 技術調査(調べる→比較→根拠整理→結論)
- 提案書の骨子作り(構造が先にあると暴走しにくい)
- 社内申請の自動化(手順はあるが例外が多い)
5.2 Tool-Centric型(ツール中心=検索・取得・実行が主役)
ざっくり: モデルの“賢さ”より「ツールを正しく使う」ことに賭ける
RAGは外部知識を引いて答える枠組みとして重要です
- arXiv: Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
https://arxiv.org/abs/2005.11401
Toolformerはツール呼び出しの学習という方向性です。
- arXiv: Toolformer: Language Models Can Teach Themselves to Use Tools
https://arxiv.org/abs/2302.04761
メリット
- 事実性を上げやすい(根拠が外部にある)
- 実務で価値が出やすい(DB/API/検索に繋げやすい)
デメリット
- ツール選択ミスが致命傷(誤DB、誤検索、権限ミス)
- 取得結果の解釈ミスで“綺麗な誤答”が出る
向いている例(3つ)
- 社内ナレッジ検索(RAG系)
- 集計レポート(API→整形→報告)
- 価格・在庫調査(取得→正規化→比較)
5.3 Reflection / Feedback型(反省して強くなる)
ズレが連鎖する問題に正面から向き合うのがこの系統です。
Reflexionは「反省(言語フィードバック)を持ち越して改善する」枠組みです。
- arXiv: Reflexion: Language Agents with Verbal Reinforcement Learning
https://arxiv.org/abs/2303.11366
Tree of Thoughtsは推論を一本道ではなく探索として扱います。
メリット
- “失敗の再発”を減らしやすい
- 探索系タスクで成功率を上げやすい
デメリット
- 計算資源(トークン/時間)が増える
- 反省が的外れだと悪化する(反省っぽい作文問題)
向いている例(3つ)
- 失敗が高コストな業務(誤送信・誤発注など)
- デバッグ(試行錯誤が本質)
- Web探索(正解に辿り着くまで探索が必要)
5.4 Orchestrator–Worker型(司令塔+作業員:スケールさせる)
ざっくり: オーケストレーターが分解して投げ、回収して統合する
Microsoft AutoGenが代表例です。
- Microsoft Research: AutoGen
https://microsoft.github.io/autogen/
メリット
- 役割分担が明確で改善点が見えやすい
- 権限分離・監査ログに寄せやすい(運用の現実に強い)
デメリット
- 設計が甘いと司令塔が“何でも屋”になって破綻する
- やり取り回数(通信コスト)が増えやすい
向いている例(3つ)
- リサーチ→要約→ファクトチェック→執筆のパイプライン
- 営業支援(企業調査→仮説→メール案→CRM入力) 3. 問い合わせ一次対応(分類→検索→回答案→エスカレーション)
5.5 Human-in-the-loop型(人が入る:最後に強いのはこれ)
プロダクトとして最後にぶつかるのは「信頼」です。
信頼は精度だけで作れません。
IUI 2024の研究(Qian & Wexler)は、人間がAIの提案を「採用/捨てる/直す」現実の行動の中で、生産性や信頼がどう変わるかを扱います。
- ACM IUI 2024: Take it, Leave it, or Fix it: Measuring Productivity and Trust in Human-AI Collaboration
https://dl.acm.org/doi/10.1145/3640543.3645187
メリット
- 事故が致命傷になりにくい
- 導入障壁が下がる(現場が受け入れやすい)
デメリット
- 人がボトルネックになりスケールしづらい
- 介入ポイント設計をミスると、逆に作業が増える
向いている例(3つ)
- 法務・規程・人事など誤りが重い文章
- 顧客対応(誤回答のコストが高い)
- 意思決定支援(最終判断は人が持つべき領域)
5.6 技術調査エージェントのサンプルコード
6.1(Planner-Executor)と6.2(Tool-Centric)と6.4 Orchestrator–Worker型のハイブリッド型
import operator
from typing import Annotated, List, TypedDict
from langchain_openai import ChatOpenAI
from langchain_community.tools.tavily_search import TavilySearchResults
# 1. 状態(State)の定義:エージェント間で何を引き継ぐか
class AgentState(TypedDict):
task: str # ユーザーからの依頼
plan: List[str] # Plannerが作った実行計画
past_steps: Annotated[List[str], operator.add] # 実行済みの結果ログ
final_report: str # 最終成果物
# 2. Planner(考える人):タスクを分解する
def planner(state: AgentState):
llm = ChatOpenAI(model="gpt-4o")
# 「タスクを3ステップ程度の調査計画に分解して」とプロンプトで指示
response = llm.invoke(f"計画を立てて: {state['task']}")
return {"plan": response.content.split("\n")}
# 3. Executor(動く人):ツールを使って調査する
def executor(state: AgentState):
search = TavilySearchResults(k=3)
current_step = state["plan"][len(state["past_steps"])]
# 検索ツールを実行
res = search.invoke(current_step)
return {"past_steps": [f"調査結果: {res}"]}
# 4. Reporter(まとめる人):結果を統合して執筆する
def reporter(state: AgentState):
llm = ChatOpenAI(model="gpt-4o")
# 全ての調査ログを元に最終回答を作成
response = llm.invoke(f"以下の結果をレポートにまとめて: {state['past_steps']}")
return {"final_report": response.content}
# 5. グラフの構築(オーケストレーション)
from langgraph.graph import StateGraph, START, END
workflow = StateGraph(AgentState)
workflow.add_node("planner", planner)
workflow.add_node("executor", executor)
workflow.add_node("reporter", reporter)
workflow.add_edge(START, "planner")
workflow.add_edge("planner", "executor")
# 条件分岐:計画が残っていればexecutorへ、終わればreporterへ
workflow.add_conditional_edges(
"executor",
lambda x: "executor" if len(x["past_steps"]) < len(x["plan"]) else "reporter"
)
workflow.add_edge("reporter", END)
app = workflow.compile()
LangGraphを用いらエージェント構築の参考↓
6. 評価:エージェントは「作る」より「測る」が難しい
エージェントで一番怖いのは「精度が悪い」ことではありません。
“うまくいってる気がする”のに、どこが良くてどこが悪いか分からないこと。
AgentBenchは、複数環境でLLM-as-agentを評価し、失敗要因を分析します。
評価を体系化しようとするサーベイも出ています。
-
arXiv: AgentBench: Evaluating LLMs as Agents
https://arxiv.org/abs/2308.03688 -
arXiv: Survey on Evaluation of LLM-based Agents
https://arxiv.org/abs/2503.16416
評価は2軸で考えると良いです。
6.1 軸①:各エージェント単体の評価
- テストケース(入力→期待出力)
- ツール選択/利用精度
- 自己修正率
- 貢献度
6.2 軸②:システム全体の評価
- タスク成功率
- ステップ数
- コスト(時間・API・人手)
- ユーザ満足度
SWE-benchは「実世界のGitHub issueを直せるか」を測る枠組みで、実務に寄せると評価が難しいことを示す代表例です。
- arXiv: SWE-bench: Can Language Models Resolve Real-World GitHub Issues?
https://arxiv.org/abs/2310.06770
おわりに
AIエージェントは確かに面白い。
でも面白いからこそバズって、バズるからこそ言葉が壊れる。
だから、まずはこう言い換えるのが良いと思っています。
AIエージェントとは“賢いAI”ではない。
“賢く働かせる設計”である。
最後は必ずここに戻ってきます。
- どんなアーキテクチャで作るか
- どんな評価で測るか
- どんな失敗を許し、どこで止めるか
これからのエンジニアの仕事は、AIという『不確実な部下』をどう配置し、どう評価し、どう信頼の連鎖(Orchestration)を作るかという、オーケストラの指揮者や組織設計者のような役割へとシフトしていくのかもしれません。」
おわりに2
本記事では一貫して、エージェントは設計と主張してきました。基本的には今後もこの考えがベースになると思っています。
しかし、「ネイティブなエージェント」の時代が来つつあることも事実です。
これまでは「モデルをどう設計するか」が議論の中心でしたが、2026年現在は「モデル自体がエージェントとして振る舞う能力」を最初から持っています。これを Agentic LLM と呼びます。
Agentic LLMは、モデル自身が思考のループを回し、自律的にツールを選定します。
OpenAIの o1/o2シリーズ や Claudeの Extended Thinking モードが代表例です。これらは「出す前に考える」というプロセスがモデルの訓練段階(強化学習)で組み込まれており、「自己修正」や「多段階推論」を自律的に行います。また、最新モデルは最初から何万ものAPIリファレンスを学習しており、「どのツールをどの順番で呼ぶのが最適か」をゼロから判断する能力を備えています。
「モデルが賢いから設計はいらない」わけではありません。Agentic LLMも堅牢なシステム設計に組み込むことで、さらに優れたエージェントが完成します。