AgenticWorkerz
記事一覧に戻る
2026年版:AIエージェント設計パターン5選
基礎知識11 min read2026-03-05

2026年版:AIエージェント設計パターン5選

ReAct・Plan-and-Execute・Reflection・Tool Use・Multi-Agentの各パターンを実装例とともに整理。どのパターンをいつ使うかの判断基準も解説します。

S
Shintaku
AI Architect

パターン 1: ReAct(推論 + 行動)

思考(Thought)→ 行動(Action)→ 観察(Observation)を繰り返す最も基本的なエージェントパターンです。短期タスクや汎用エージェントの基盤として最適です。

// ReActループの擬似コード
while (!done) {
  const thought = await llm.think(context);
  const action = await llm.act(thought);
  const observation = await tools.execute(action);
  context.push({ thought, action, observation });
  done = llm.isTaskComplete(context);
}

パターン 2: Plan-and-Execute

まず全体計画を立て、それに従って順次実行します。長期タスクや複数ステップが確定している場合に向いています。

// Plan-and-Execute
const plan = await planner.createPlan(goal);
// plan = ["Step 1: ...", "Step 2: ...", "Step 3: ..."]

for (const step of plan) {
  const result = await executor.run(step);
  if (!result.success) {
    const revisedPlan = await planner.revisePlan(plan, step, result.error);
    // 失敗したら計画を修正して続行
  }
}

パターン 3: Reflection(自己評価)

生成した出力を自己評価し、品質が基準を下回る場合は再生成します。コンテンツ品質担保・幻覚検出に有効です。

// Reflectionループ
const MAX_RETRIES = 3;
for (let i = 0; i < MAX_RETRIES; i++) {
  const output = await generator.generate(prompt);
  const evaluation = await critic.evaluate(output, criteria);
  if (evaluation.score >= threshold) return output;
  prompt = await refiner.refine(prompt, evaluation.feedback);
}
return output; // max retries に達したら現在の出力を返す

パターン 4: Tool Use(外部ツール呼び出し)

外部ツール(Web検索・コード実行・DB参照)を呼び出して情報を補完します。Claude の function calling(MCP)が基盤です。

const tools = [
  {
    name: "web_search",
    description: "現在の情報を取得する",
    input_schema: { query: "string" }
  },
  {
    name: "execute_code",
    description: "コードを実行して結果を取得する",
    input_schema: { code: "string", language: "string" }
  }
];

const response = await claude.messages.create({
  model: "claude-sonnet-4-6",
  tools,
  messages: [{ role: "user", content: "最新のNode.jsバージョンを調べて実行確認して" }]
});

パターン 5: Multi-Agent(専門化 + 並列処理)

専門エージェントを並列実行してオーケストレーターが統合します。複雑タスクの高速化に最適です。このプロジェクト(9体チーム)が採用しているパターンです。

// オーケストレーターが複数ワーカーに並列委譲
const [searchResult, codeResult, docsResult] = await Promise.all([
  soraAgent.search(query),
  rikulAgent.ingest(sources),
  nikoAgent.draft(context)
]);

const finalAnswer = await haruAgent.rerank([
  ...searchResult, ...codeResult
]);
return tomoAgent.validate(finalAnswer);

パターン選択の判断基準

状況推奨パターン理由
短期・汎用タスクReAct最もシンプル。デバッグしやすい
長期・複数ステップPlan-and-Execute全体最適化。ステップの追跡が容易
品質担保が必要Reflection自己修正で精度向上
外部情報が必要Tool Use最新情報・計算結果を取得
専門化・大規模Multi-Agent並列処理・専門性の最大化

実際の本番システムでは、これらを組み合わせて使うことがほとんどです。例えば「Multi-Agent + Reflection + Tool Use」という構成が一般的です。

#エージェント#設計パターン#ReAct#Multi-Agent#MCP