208 Views
June 30, 25
スライド概要
クラウド×AI 勉強会 〜プロバイダー別最新動向・LINE Bot・アーキテクチャ実装事例集〜 登壇資料
C#やAzureなどMS関連技術とLINE関連技術が好きです。
Azure AI&サーバーレスで構築する マルチエージェント LINE Bot クラウド×AI 勉強会 〜プロバイダー別最新動向・LINE Bot・アーキテクチャ実装事例集〜 2025/6/30 平林 拓将(ひらりん) himarin269 / himanago
About me ✓ name: 平林 拓将(ひらりん) ✓ work: テクニカルトレーナー&開発 ✓ award/title: - Microsoft MVP for Azure(2019.11~) - LINE API Expert(2020.3~) ✓ like: - C# / Azure PaaS / serverless ✓ social: - X:@himarin269 GitHub:himanago Blog:https://himanago.hatenablog.com/
本セッションのゴール ✓ Azure における AI 関連サービスとエージェン ト/マルチエージェントの対応状況を知る ✓ Azure の開発者向けサービスの利点とそれを活 かしたマルチエージェント LINE Bot 構築方法 を知る ✓ 開発者が真に注力すべきことに集中するための 「PaaS 型アプローチ」を選択肢のひとつに
Azure と AI
Azure の特徴 ✓ 開発者フレンドリーな PaaS & サーバーレス • Azure Functions • Azure Logic Apps • Azure Web Apps • Azure Container Apps • Azure Static Web Apps • Azure Cosmos DB • Azure Storage など
Azure における生成 AI ✓ Azure OpenAI • OpenAI とのパートナーシップ ✓ Azure AI Foundry • OpenAI に限らずさまざまなモデルが使用可能 ✓ 各種 Azure サービスとの統合 • マネージド ID によるセキュアな接続
Azure AI Foundry Agent Service Announcing General Availability of Azure AI Foundry Agent Service | Microsoft Community Hub
Azure AI Foundry Agent Service ✓ マルチエージェント・オーケストレーション • エージェント同士を接続して使用可能
Azure AI Foundry Agent Service ✓ 各種ツールの統合
Azure AI Foundry Agent Service ✓ ナレッジの統合 • ファイル/AI Search/Fabric/SharePoint/Bing等
エージェント機能を持ったシステムの実現方法 サーバーを 用意する場合… マシン/OSは提供するから 必要なものは 自分でインストールしてね すぐにサーバーが 使える状態! すぐにアプリが 使える状態! すぐにエージェントが 使える状態! すぐに自律型エージェントや チャットボットが使える状態! エージェントに 当てはめると… AI モデルは提供するから 必要なものは 自分で開発してね https://build.microsoft.com/en-US/sessions/BRK149
IaaS 型 vs PaaS 型 ✓ 自分で全部作る「IaaS 型」はフレームワークを 使って自由に複雑なフローがコードで書ける 反面… • 変化が速い、破壊的変更が珍しくない • ドキュメントやサンプルが少ないことも多く、 AI にコーディングさせるのが困難な場面も プラットフォームが提供するエージェント機能を 積極的に使う「PaaS 型」で、 開発者が本来注力すべき価値に集中できる!
Azure AI × LINE Bot
LINE Botをどう作る? 応答に時間がかかる! LINE (Messaging API) Webhook エンドポイント (Azure Functions) エージェント Durable Functions で 工夫する!
Durable Functions とは ✓ "Durable"な(=持続性のある/丈夫な)処理を コードの組み合わせだけで作れる Azure Functions の拡張機能 関数チェーン ファンアウト/ファンイン 監視 非同期 HTTP API 人による操作 複雑&ステートフルなワークフローをシンプルに実装可能
Durable Functionsによる工夫① 時間がかかる&複雑なワークフローを ステートフルにコントロール! LINE (Messaging API) オーケストレーター Webhook エンドポイント エージェント対話 アクティビティ LINE 返信 アクティビティ エージェント
Durable Functionsによる工夫② LINE (Messaging API) オーケストレーター Webhook エンドポイント スレッドID エンティティを介して 対話に必要な情報を管理! リプライ トークン エージェント対話 アクティビティ エンティティ (ID:LINEユーザーID) LINE 返信 アクティビティ エージェント
Durable Functionsによる工夫② LINE (Messaging API) Webhook エンドポイント オーケス トレーター エージェント対話 アクティビティ LINE 返信 アクティビティ エージェント リプライトークンを保存 初回のみ:スレッドIDを登録 一意なIDを持って単独で状態を保持できる エンティティ関数がLINE ユーザー ID と エージェントのスレッド ID を保持し、 トークルームと会話履歴を一致させる (リプライトークンの受け渡しにも使用) メッセージ配列(JSON)を生成 リプライトークンを取得 リプライ処理 エンティティ
Durable Functionsによる工夫② LINE (Messaging API) Webhook エンドポイント オーケス トレーター エージェント対話 アクティビティ LINE 返信 アクティビティ エージェント リプライトークンを保存 初回のみ:スレッドIDを登録 回答前に別メッセージ メッセージ配列(JSON)を生成 リプライトークンを交換 リプライトークンを取得 古いトークンで 定型文を返信 新しいトークンを使用 エージェントの思考中にユーザーからの 新たなメッセージを受け取ると リプライ処理 リプライトークンを交換し、 古いトークンで「まってね」と返す エンティティ
実装例:「イタリア」に関する PaaS 型マルチエージェント ✓ 各エージェントの動作はすべてプロンプトで制御 “Lingua”(語学関係) “Coordinator” (オーケストレーター) 専門的なタスクを各専門家に割り振り、 結果をLINE Messaging API の メッセージ配列 JSON として出力 “Cucina”(料理関係) “Ristoranti”(レストラン関係) “Viaggio”(旅行関係) 各専門家。 必要に応じて “Cultura”(文化関係) ツールやナレッジも 使用する想定 (今回は割愛)
Demo
Demo
その他の工夫① ✓ 「マルチエージェント」であることを活かして、 アイコン・表示名カスタマイズでエッセンス的に 複数キャラクターの存在をユーザーに知らせる アイコン画像は Azure Storage に保存
その他の工夫② ✓ 画像+テキストのマルチモーダルな質問にも Durable Functions による待機で対応
まとめ ✓ Azure AI Foundry を活用すれば マルチエージェントシステムを構築できる! ✓ Azure PaaS & サーバーレスを活用しながら、 エージェント開発も「PaaS 型」を採用可能! ✓ LINE の API・UI/UX にあわせた応用で 楽しい Bot 開発を!