← Templates
Model-4
AIエージェントの設計パターンについて教えてください。特にReActパターンとPlan-and-Executeパターンの違いを知りたいです。
AI

AIエージェントの設計パターンには主要なものがいくつかあります。ご質問のReActとPlan-and-Executeを比較しましょう。

ReAct パターン

Reasoning + Acting の略で、思考と行動を交互に繰り返します。各ステップで「考える -> 行動する -> 観察する」のサイクルを回し、逐次的に問題を解決します。柔軟性が高く、途中で方向転換が容易です。

Plan-and-Execute パターン

最初に全体計画を立て、その後に各ステップを実行します。複雑なタスクでは計画の修正も行います。事前に全体像を把握できるため、リソース効率が良い傾向があります。

主な違い

ReActは「走りながら考える」、Plan-and-Executeは「考えてから走る」アプローチです。単純なタスクにはReAct、複雑な多段階タスクにはPlan-and-Executeが適しています。

コードで実装例を見せてもらえますか?
AI

ReActパターンの簡略化した実装例です:

python
class ReActAgent:
  def __init__(self, tools, llm):
    self.tools = tools
    self.llm = llm
    self.history = []
  def run(self, query: str) -> str:
    # 思考-行動-観察ループ
    while not self.is_done():
      thought = self.llm.think(
        query, self.history
      )
      action = self.select_tool(thought)
      observation = action.execute()
      self.history.append({
        "thought": thought,
        "action": action.name,
        "observation": observation
      })
    return self.synthesize()

Plan-and-Execute パターンはこのようになります:

python
class PlanExecuteAgent:
  def run(self, query: str) -> str:
    # Step 1: 計画立案
    plan = self.llm.create_plan(query)
    
    # Step 2: 各ステップを実行
    for step in plan.steps:
      result = self.execute(step)
      # 必要に応じて計画を修正
      plan = self.replan_if_needed(
        plan, result
      )
    return self.final_answer()

両パターンとも、LLMをコアエンジンとして使用しますが、制御フローが根本的に異なります。実際のプロダクションでは、両方を組み合わせたハイブリッドアプローチも有効です。

Model-4 は間違いを犯す可能性があります。重要な情報は確認してください。