AIエージェント活用実践編 / Workflow と Agent の使い分け — 何を自動化するかの判断
Workflow か Agent か の判断フレーム
無料公開レッスン / 読了目安 7 分
学習のねらい
前レッスンで6つのパターンを学びました。しかし、実際の業務課題に直面したとき、「どのパターンを選べばいいのか?」と迷うこともあるでしょう。 このレッスンでは、課題の特性をいくつかの軸で評価し、最適なパターンを選ぶための判断フレームを身につけます。 特に重要なのは、Anthropic が推奨する「シンプルから始め、必要になってから複雑にする」という原則です。
「シンプルから始め、必要になってから複雑にする」原則
Anthropic は、LLM アプリケーションを構築する際に、以下の原則を強く推奨しています。
"When building applications with LLMs, we recommend finding the simplest solution possible, and only increasing complexity when needed." (LLMを使ったアプリ構築では、可能な限りシンプルな解を選び、必要になってから複雑さを増すことを推奨します)
これは、最初から完璧なシステムを目指すのではなく、まず最もシンプルな方法で価値を届け、その後に課題が見つかったら段階的に複雑なパターンへと移行していく考え方です。 シンプルなパターンほど実装が早く、デバッグも容易で、コストも抑えられます。
判断フレーム — 3つの軸
課題に最適なパターンを選ぶために、以下の3つの軸でタスクの性質を評価しましょう。
1. タスクの固定性 — 固定タスク vs 動的判断
- 固定タスク: 処理のステップや順序が常に一定で、例外が少ないタスクです。例えば「メールを受信したら、件名を要約して、Slack に通知する」といったものです。
- 推奨パターン: Prompt Chaining, Routing, Parallelization (Workflow に近いパターン)
- 動的判断: 入力内容や途中の結果によって、次に取るべき行動や処理の順序が変わるタスクです。例えば「ユーザーからの複雑な質問に対し、最適な情報源を複数検索し、その結果を統合して回答を生成する」といったものです。
- 推奨パターン: Orchestrator-Workers, Evaluator-Optimizer, Autonomous Agents (Agent に近いパターン)
2. ゴールの明確さ — 明確なゴール vs オープンエンド
- 明確なゴール: 達成すべき結果がはっきりしており、途中のステップ数が事前に予測できるタスクです。
- 推奨パターン: Prompt Chaining, Routing, Parallelization
- オープンエンド: ゴールは明確でも、そこにたどり着くまでのステップ数が事前に定まらない、あるいは多くの試行錯誤が必要なタスクです。例えば「新しいプログラミング言語で、特定の機能を持つライブラリを開発する」といったものです。
- 推奨パターン: Evaluator-Optimizer, Autonomous Agents
3. 反復の必要性 — 単発 vs 反復改善
- 単発: 一度実行すれば完了する、あるいは反復的な改善が不要なタスクです。
- 推奨パターン: Prompt Chaining, Routing, Parallelization, Orchestrator-Workers
- 反復改善: 結果の品質を高めるために、何度も生成と評価を繰り返すことで精度が向上するタスクです。
- 推奨パターン: Evaluator-Optimizer, Autonomous Agents
実装スピードのトレードオフ
各パターンには、おおよその実装期間目安があります。シンプルなパターンほど早く実装でき、複雑なパターンほど時間と労力がかかります。
| パターン | 実装期間目安 | 主なリスク |
|---|---|---|
| Single LLM call | 1日〜1週 | 過小機能 |
| Prompt Chaining | 1〜2週 | 失敗時の再開が難しい |
| Routing | 2〜3週 | 分類ミス |
| Parallelization | 2〜4週 | コスト |
| Orchestrator-Workers | 4週〜 | 複雑度・デバッグ難 |
| Evaluator-Optimizer | 4週〜 | ループ無限化、コスト |
| Autonomous Agent | 8〜12週 | 暴走、コスト、安全性 |
この表を見ると、Autonomous Agent は最も多くの時間とリスクを伴うことが分かります。 まずは最もシンプルな「Single LLM call」や「Prompt Chaining」から試してみて、それで解決できない場合にのみ、より複雑なパターンを検討する姿勢が大切です。
まとめ
「タスクの固定性」「ゴールの明確さ」「反復の必要性」の3つの軸で課題を評価し、実装スピードのトレードオフを考慮しながら、最適なパターンを選びましょう。 そして何よりも「シンプルから始め、必要になってから複雑にする」という原則を忘れないでください。