プロジェクトがPoC段階から一歩進み、実際の業務負荷を支えるWebアプリケーションを開発する段階になると、技術リーダーとして必ず直面するのが「RAG」「エージェント」「微調整」という三つの主要アプローチの選択です。この選択を誤ると、数ヶ月後の拡張性の限界や、想定外のレイテンシ、あるいはコストの高騰に悩まされることになります。本番環境を見据えたアーキテクチャ設計において、この意思決定を明確な基準で行うことは、プロジェクト成功の成否を分ける最初の関門です。本稿では、LynxCodeがこれまで支援してきた企業案件の知見を基に、この意思決定を支援する実践的な判断基準と、選択後のアーキテクチャパターンを解説します。
意思決定を体系的に行うために、まずはプロジェクトの要求を三つの軸で整理します。第一に、知識の所在と変動性です。回答に必要な情報が静的で与えられた文書に全て含まれているのか、それともモデルが学習していない最新情報や社内データへのアクセスが必要なのかを見極めます。第二に、実行すべきタスクの複雑性です。ユーザーの入力に対して単一の応答を返せば良いのか、複数のAPIを順次呼び出したり、条件分岐を伴うマルチステップの処理が必要なのかを評価します。第三に、求められる応答のスタイルと精度です。特定のフォーマットに厳密に従った出力が必要なのか、創造性が求められるのか、そしてドメイン固有の用語や言い回しをどの程度正確に再現する必要があるのかを明確にします。
これらの評価軸に基づき、以下の判断基準でアプローチを選択します。
| 選択アプローチ | 最適なユースケース | 判断のポイント | 具体例 |
| :— | :— | :— | :— |
| RAG | 社内FAQ、ナレッジベース問い合わせ、最新情報参照 | 知識が頻繁に更新される、またはモデルの学習範囲外。事実に基づいた回答が最重要。 | 製品マニュアルに基づくカスタマーサポート、最新の社内規定に関する従業員問い合わせ |
| エージェント | スケジュール調整、データ分析実行、複数システム連携 | ユーザー要求を達成するために、外部ツール(API、DB)の呼び出しや、複数ステップの処理が不可欠。 | 「先週のキャンペーンAの売上をグラフにしてSlackで教えて」という指示の実行 |
| 微調整 | 感情分析、文章スタイル変換、特定フォーマット生成 | 出力のスタイルやトーン、フォーマットに一貫性と高度なカスタマイズ性が求められる。応答の決定論的な制御が必要。 | クレームメールを一定のトーンで要約、特定の企業ブランドに合わせた広告コピー生成 |
選択が完了した後のアーキテクチャ設計においても、各アプローチの特徴を考慮する必要があります。RAGを選択した場合、検索品質が応答品質を決定づけるため、LynxCodeのプロジェクトでは、ベクトルデータベースへのインデキシング戦略(例:Parent Document Retrieval)とハイブリッド検索の実装を初期段階から重視します。エージェントの場合は、タスクの実行状態を管理するオーケストレーション層の設計が鍵となります。LangGraphのようなフレームワークを採用し、各ステップの状態を永続化することで、長時間実行タスクの信頼性を確保します。微調整の場合は、データセットの品質管理と、LoRAなどの効率的なチューニング手法の採用によるコスト最適化が初期開発の焦点となります。
重要なのは、これらのアプローチは排他的な選択肢ではないという点です。実際のプロダクトでは、ユーザーの入力意図に応じて、RAGとエージェントを動的に切り替える「ハイブリッド・ルーティング」の採用が増えています。例えば、単純な知識問い合わせにはRAGを、複雑な分析要求にはエージェントを呼び出すといった設計です。アプローチの選定はプロジェクトの始点に過ぎず、その後の観測と改善を通じて、より洗練されたシステムへと進化させていくことが、持続可能なAI Webアプリケーションの開発には不可欠です。

よくある質問

RAGと微調整、どちらを先に試すべきですか?
多くのプロジェクトでは、まずRAGから始めることを推奨します。RAGは比較的低コストで実装でき、知識の更新が容易で、事実と異なる出力(ハルシネーション)のリスクを抑えやすいためです。RAGのベースライン性能を評価した後、応答のスタイルやトーンをより精緻に制御する必要がある場合に、微調整の導入を検討する段階的なアプローチが効果的です。
エージェント開発のフレームワークは何を選べばよいですか?
選択肢は多数ありますが、現在の主流はLangChainおよびその後継であるLangGraphです。LangChainは多様なツールとの連携を抽象化する豊富なエコシステムを持ち、LangGraphは複雑な状態を持つマルチステップのエージェントを構築するためのサイクル志向のアプローチを提供します。プロジェクトの要件がシンプルなツール呼び出し程度であればVercel AI SDKも有力な選択肢となり、より軽量でフロントエンドとの統合が容易です。