【ITニュース解説】Build a Production Multi-Agent System with LangGraph and LaunchDarkly in 20 Minutes
2025年09月20日に「Dev.to」が公開したITニュース「Build a Production Multi-Agent System with LangGraph and LaunchDarkly in 20 Minutes」について初心者にもわかりやすく解説しています。
ITニュース概要
LangGraphとRAGを使い、動的に振る舞いを変えられるマルチエージェントAIシステムを構築できる。LaunchDarklyでAIモデルやツール、動作設定をコード変更なしでリアルタイムに制御し、変化する要件に柔軟に対応しながらコストも削減する。
ITニュース解説
AIチャットボットのような人工知能システムは、テスト環境ではうまく機能しても、実際のユーザーが利用する本番環境では、予想外の課題に直面することがよくある。例えば、最新のAIモデルを使うことで運用コストが急増したり、ヨーロッパのユーザーには特定のプライバシー規制を適用する必要が生じたりする場合がある。このような変更のたびにコードを修正し、デプロイし、再テストするという手間は、開発チームにとって大きな負担となり、システムのリリースを遅らせる原因にもなる。本記事では、このような本番環境での課題を解決し、AIの挙動をコード変更なしでリアルタイムに制御できる、プロダクションレベルのマルチエージェントシステムを構築する方法について解説する。LangGraphというフレームワークとLaunchDarkly AI Configsというツールを組み合わせることで、開発者はより迅速に、より柔軟にAIシステムを運用できる。
このシステムは、「マルチエージェント」という考え方に基づいている。これは、一つの大きなAIが全てのタスクをこなすのではなく、それぞれに特化した複数のAIエージェントが連携して複雑なタスクを処理する構造を指す。各エージェントは特定の役割を担当し、互いに協力しながら最終的な目標を達成する。このようなエージェント間の連携と状態管理をスムーズに行うために、LangGraphが利用される。LangGraphは、エージェントが会話の文脈を維持しながら相互に情報をやり取りし、一連のワークフローを実行するための強力なフレームワークである。
このシステムでは、主に三つの専門エージェントが登場する。まず「Supervisor Agent(監督エージェント)」は、ユーザーからのリクエストを最初に受け取り、その内容を分析して、次にどのエージェントにタスクを割り当てるべきかを判断し、ワークフロー全体を調整する役割を担う。次に「Security Agent(セキュリティエージェント)」は、個人を特定できる情報(PII: Personally Identifiable Information)を検出・秘匿化する専門家である。ユーザーからの入力にメールアドレスや電話番号、氏名などの機密情報が含まれていないかをチェックし、もし発見した場合は、プライバシー保護のためにそれらの情報を自動的に匿名化する。これにより、機密情報が不必要に扱われるリスクを低減し、コンプライアンス要件への対応を助ける。最後に「Support Agent(サポートエージェント)」は、ユーザーの質問に回答する役割を担う。このエージェントは、後述するRAG(検索拡張生成)システムを活用し、ビジネスドキュメントの中から関連情報を探し出し、その情報に基づいて正確な回答を生成する。エージェントがそれぞれの専門性を活かして連携することで、より堅牢で信頼性の高いAIシステムが実現できる。
Support Agentがユーザーの質問に答える際、ただ一般的な知識に基づいて回答するだけでなく、特定のビジネスドキュメントや社内資料に基づいた、より正確で専門的な情報を提供することが求められる。これを可能にするのが「RAG(Retrieval-Augmented Generation)」システムである。RAGは、AIが外部の知識源(ここでは企業が持つドキュメント)を検索し、その情報を基に回答を生成する技術である。RAGシステムの構築プロセスは次のようになる。まず、PDF形式のビジネスドキュメント群をシステムに取り込む。次に、これらのドキュメントの内容を「ベクトル埋め込み(vector embeddings)」と呼ばれる数値の列に変換する。このベクトル埋め込みは、文書の意味的な内容を数学的に表現したもので、OpenAIのテキスト埋め込みモデルのようなAIモデルが生成する。同じような意味を持つ単語や文章は、ベクトル空間内で近い位置に配置されるため、意味に基づいた高度な検索が可能になる。これらのベクトルデータはFAISSというベクトルデータベースに保存される。ユーザーが質問すると、まずその質問もベクトル埋め込みに変換され、FAISSデータベース内で最も意味的に近いドキュメントの部分が高速に検索される。これが「search_v2」というツールで行われるセマンティック検索である。検索結果は多くの場合、関連性が高いものの完璧ではないこともあるため、さらに「reranking(再ランキング)」というプロセスが適用される。これはBM25アルゴリズムのような手法を用いて、検索結果の関連性を再度評価し、最も適切な情報を上位に並べ替える処理である。このハイブリッドなアプローチにより、キーワードの一致だけでなく、文脈の理解に基づいた高精度な検索が可能となり、Support Agentは信頼性の高い情報に基づいて回答を生成できる。
AIシステムを本番環境で運用する上で最も重要な課題の一つが、その挙動をいかに柔軟に変更・最適化するかという点である。LaunchDarkly AI Configsは、この課題に対する強力なソリューションを提供する。これは、AIモデルの種類、その挙動を指示するプロンプト、利用可能なツール、さらにはエージェントの動作パラメータなどを、コードのデプロイやシステムのリスタートなしに、リアルタイムで変更できる仕組みである。LaunchDarklyのダッシュボードを通じて、開発者はSupervisor Agent、Security Agent、Support Agentそれぞれの設定を個別に管理できる。例えば、Support Agentが使用するAIモデルをGPT-4からClaudeに変更したい場合、LaunchDarklyのインターフェース上で簡単な設定変更を行うだけで、すぐにシステムに反映される。また、各エージェントの「Goal or task(目標またはタスク)」、つまりそのエージェントに与える具体的な指示(プロンプト)も動的に調整できる。これにより、「より慎重に回答する」「より徹底的に検索する」といった、エージェントの性格や振る舞いを状況に応じて変更できる。この動的制御の最大のメリットは、運用コストの最適化や、新しい機能の迅速な実験(A/Bテスト)が可能になる点にある。例えば、あるAIモデルの方が応答品質は高いがコストも高い場合、特定のユーザー層には高品質モデルを、別のユーザー層にはコスト効率の良いモデルを提供するといった、きめ細やかな制御が可能となる。また、新しい応答ロジックやAIモデルを一部のユーザーにだけ先行して試し、その効果を検証するといったA/Bテストも容易に行えるため、データに基づいた改善サイクルを高速化できる。このように、LaunchDarkly AI Configsは、AIシステムの運用における柔軟性と効率性を大幅に向上させる。
実際にこのシステムを構築するには、まず提供されているコードをクローンし、必要なライブラリをインストールすることから始める。次に、LaunchDarklyのアカウントをセットアップし、プロジェクトを作成してSDKキーを取得する。さらに、OpenAIやAnthropicなどのAIモデルを利用するためのAPIキーも設定ファイルに記述する。その後、社内規定や製品マニュアルなどのPDFドキュメントをシステムの知識ベースとして追加し、これらをRAG検索に利用できるよう、前述のベクトル埋め込み処理を実行する。LaunchDarklyのダッシュボード上で、Support Agentが利用する「search_v2」と「reranking」という二つの検索ツールを定義する。そして、LaunchDarkly AI Configsを使って、Supervisor Agent、Security Agent、Support Agentの三つのエージェントをそれぞれ作成し、モデルの種類、役割、カスタムパラメータ、利用するツールなどを設定する。特に、Security AgentにはPII検出のための具体的な指示を与え、Support AgentにはRAG検索ツールを割り当てる。全てのエージェントが作成され、LaunchDarkly上で有効化されたら、バックエンドとUIを起動し、ウェブブラウザからチャットインターフェースにアクセスしてシステムをテストできる。テストでは、「私のメールアドレスはjohn.doe@example.comです。助けてください」のような質問を投げかけ、Security AgentがPIIを検出し、その情報が秘匿化される様子を確認できる。その後、Support AgentがRAGシステムを利用して質問に回答する一連のワークフローも確認できる。
本記事で解説したシステムは、LangGraphによるマルチエージェントの協調、RAGシステムによる専門知識の活用、そしてLaunchDarkly AI Configsによる動的な制御という、三つの主要な要素が組み合わさっている。これにより、AIの挙動をコード変更なしにリアルタイムで調整し、コストを最適化し、プライバシー保護を強化し、ユーザーのニーズに合わせてAIを迅速に進化させることが可能となる。各エージェントが特定の役割を持つことで、システム全体の信頼性と管理性が向上し、動的な設定変更によって、新しいAIモデルや異なる振る舞いを素早く試せるようになる。これは、本番環境でAIシステムを運用する上で直面する多くの課題を解決し、より柔軟で、かつ強力なAIアプリケーションを構築するための基盤を提供する。