基礎知識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