この記事は、Anthropic が多くの企業と協働した経験から得た「AIエージェントを効果的に構築するためのベストプラクティス」をまとめたものです。
核心メッセージ:成功しているプロジェクトは、複雑なフレームワークではなく、シンプルで組み合わせ可能なパターンを使っている。
「エージェント」という言葉は曖昧に使われがちですが、Anthropicは明確に2つに分類しています。
| 種類 | 説明 | 例え |
|---|---|---|
| ワークフロー | あらかじめ決められた手順でLLMとツールを動かす | レシピ通りに料理を作る |
| エージェント | LLM自身がどう進めるか判断しながらタスクを実行する | シェフが状況を見ながら即興で料理を作る |
ポイント:ワークフローは「決まった道筋」、エージェントは「自分で道を決める」という違いがあります。
シンプル ←―――――――――――――――→ 複雑
単一の LLM 呼び出し → ワークフロー → エージェント
エージェントのトレードオフ:
判断基準:
「まずは LLM API を直接使うことから始めてください」
理由:
フレームワークを使う場合の注意:内部で何が起きているかを理解しておくこと。
拡張 LLM から始め、シンプルな構成ワークフローから自律エージェントへと、段階的に複雑さを増していきます。
すべてのエージェントシステムの基本となる構成要素です。

3つの拡張機能:
| 機能 | 説明 | 具体例 |
|---|---|---|
| 検索(Retrieval) | 外部データを参照する | 社内文書を検索して回答 |
| ツール(Tools) | 外部システムと連携する | カレンダーに予定を追加 |
| メモリ(Memory) | 過去の情報を記憶する | 前回の会話内容を覚えている |
概念:タスクを順番に処理していく直列のパイプライン

具体例:
使いどき:
メリット:各 LLM の仕事が簡単になり、全体の精度が上がる
イメージ:工場の組み立てライン。各工程で専門の作業を行う。
概念:入力を分類して、適切な処理に振り分ける

┌→ [一般的な質問用LLM]
入力 → [分類器] ────┼→ [返金処理用LLM]
└→ [技術サポート用LLM]
具体例:
使いどき:
イメージ:病院の受付。症状に応じて適切な診療科に案内する。
概念:複数のLLMを同時に動かして、結果を統合する

2つのバリエーションがあります。
タスクを独立した部分に分けて同時処理。
┌→ [LLM: セクション1] ─┐
入力 ────┼→ [LLM: セクション2] ─┼→ 結果統合 → 出力
└→ [LLM: セクション3] ─┘
具体例:
同じタスクを複数回実行して、多数決や合議で決定。
┌→ [LLM: 評価1] ─┐
入力 ────┼→ [LLM: 評価2] ─┼→ 投票/合議 → 出力
└→ [LLM: 評価3] ─┘
具体例:
使いどき:
イメージ:裁判の陪審員制度。複数人の意見を集約して判断。
概念:指揮者(オーケストレーター)がタスクを分解し、作業者(ワーカー)に割り振る
┌→ [ワーカーLLM①] ─┐
入力 → [指揮者LLM] ─┼→ [ワーカーLLM②] ─┼→ [指揮者が統合] → 出力
└→ [ワーカーLLM③] ─┘
並列化との違い:
具体例:
使いどき:
イメージ:オーケストラの指揮者。曲に応じて各パートへの指示を変える。
概念:生成と評価を繰り返して品質を高めるループ
入力 → [生成LLM] → 出力 → [評価LLM] → フィードバック
↑ │
└──────────── 改善 ────────────┘
具体例:
使いどき:
イメージ:編集者と作家の関係。作家が書き、編集者がフィードバックし、作家が直す。
概念:LLMが自分で計画を立て、ツールを使い、結果を見て次のアクションを決める
┌────────────────────────────────────────────────┐
│ エージェントのループ │
│ │
│ [人間の指示] → [計画] → [ツール実行] → [結果確認] │
│ ↑ │ │
│ └───── 次のアクション ──┘ │
│ │
│ ※必要に応じて人間に確認を取る │
│ ※終了条件(完了 or 最大試行回数)で停止 │
└────────────────────────────────────────────────┘
重要な特徴:
使いどき:
注意点:
具体例:
これらのパターンは独立したものではなく、組み合わせて使うことができます。
例:高度なカスタマーサポートシステム
[ルーティング] でカテゴリ分類
↓
[プロンプトチェーン] で段階的に回答作成
↓
[評価者・最適化] で回答品質を改善
↓
[並列化] で安全性チェックを同時実行
重要:複雑さは必要な時だけ追加する。性能向上が測定できる場合のみ複雑にする。
複雑なシステムは保守が難しく、デバッグも困難。
エージェントが「何を考えているか」を明示的に見せる。