AIエージェントとは

AIエージェントは、環境を自律的に認識し、計画を立て、ツールを使用し、行動を実行できるインテリジェントシステムです。従来の「一問一答」モードとは異なり、エージェントは多段階の推論を行い、外部ツールをいつ呼び出すか、複数の操作をどのように組み合わせて複雑なタスクを完了するかを自律的に決定できます。

ReActアーキテクチャ

ReAct(Reasoning + Acting)は最も古典的なエージェントアーキテクチャであり、推論と行動を交互に行います:

from langchain.agents import initialize_agent, AgentType
from langchain.tools import Tool

# ツールを定義
tools = [
    Tool(name="検索", func=search_func, description="インターネット情報を検索"),
    Tool(name="計算機", func=calculator_func, description="数学的計算を実行"),
    Tool(name="データベース照会", func=db_query, description="データベースを照会")
]

# ReActエージェントを作成
agent = initialize_agent(
    tools=tools,
    llm=llm,
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    verbose=True
)

# エージェントが自律的に推論し実行
result = agent.run("過去1週間の売上データを照会し、総売上を計算し、業界平均成長率を検索して比較する")

ReActのワークフロー:Thought(思考)→ Action(行動)→ Observation(観察)→ Thought...最終的な答えが得られるまでループします。

Plan-and-Executeアーキテクチャ

Plan-and-Executeアーキテクチャは、計画と実行を分離し、最初に完全な計画を立て、その後段階的に実行します:

from langchain.experimental.plan_and_execute import (
    PlanAndExecute, load_agent_executor, load_chat_planner
)

planner = load_chat_planner(llm)
executor = load_agent_executor(llm, tools, verbose=True)

agent = PlanAndExecute(
    planner=planner,
    executor=executor,
    verbose=True
)

result = agent.run("会社のQ3財務報告を分析し、投資分析レポートを書く")

Plan-and-Executeの利点:

  • 全体像の把握:先に計画してから実行し、短期的な判断を避ける
  • 追跡可能性:各ステップに明確な計画が対応している
  • 中断・再開可能:実行プロセスを一時停止および再開できる

ReWOOアーキテクチャ

ReWOO(Reasoning WithOut Observation)は、推論とツール呼び出しを分離し、LLM呼び出し回数を削減します。最初に完全なツール呼び出し計画を生成し、次にすべてのツール呼び出しを一括実行し、最後に最終的な答えを統一的に生成します。この方法はReActと比較してAPI呼び出しを50%以上削減できます。

アーキテクチャ選択ガイド

シナリオ推奨アーキテクチャ
単純なツール呼び出しReAct
複雑な多段階タスクPlan-and-Execute
レイテンシーに敏感ReWOO
複数役割の協調が必要Multi-Agent

エージェント設計原則

  • ツールの原子性:各ツールは1つのことだけを行い、それをうまく行う
  • エラー処理:エージェントはツール呼び出しの失敗を処理できる必要がある
  • 安全境界:機密操作(削除、支払いなど)には人間の確認が必要
  • 可観測性:エージェントの推論と行動の各ステップを記録し、デバッグを容易にする