Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AndroidアプリとCopilot Studioの統合

AndroidアプリとCopilot Studioの統合

2026/4/25(土)に開催された .NETラボ 勉強会 2026年4月( https://dotnetlab.connpass.com/event/383200/ ) に参加した時に当日受付LTで発表した資料です。 #dotnetlab

Avatar for なかしょ

なかしょ

April 25, 2026

More Decks by なかしょ

Other Decks in Technology

Transcript

  1. 自己紹介 • なかしょ(中島進也) @nakasho_dev • 所属:NTTテクノクロス株式会社 デジタルトランスフォーメーション事業部 • 業務:MaaS関連のスマートフォンアプリ開発担当 •

    趣味: ➢妻とモンハンデート ➢AI+モバイル+地理空間情報システム ➢IT関連の勉強会(主にモバイル系 or アジャイル系 or Microsoft系) ➢技術コミュニティの運営スタッフ ✓eXtreme Programming Japan User Group(XPJUG) 2019〜 ✓TDD BootCamp Online (TDDBC) 2020~ ※本資料は私個人の意見であり、所属企業・部門見解を代表するものではありません。
  2. Agent Client SDK for Android Agents Client SDK for Android

    Direct Line API 3.0 [4] Adaptive Cards • Microsoft提供のAgents Client SDK for Androidを使用し、Copilot StudioまたはMicrosoft Agent SDKで作成し たエージェントと通信 • Direct Line APIを介したWebSocketまたはRESTベースの通信により、リアルタイムなチャット体験を提供 • AdaptiveCardsのUIとシームレスに連携 • 現在プライベートプレビュー段階で、今後Maven等のパッケージマネージャーでの提供を予定 • 現在は認証なしのエージェントのみ対応なので、URLの漏洩に注意 https://github.com/microsoft/AgentsClientSDK.Android
  3. Androidアプリ UI層とナビゲーション制御 Direct Line API WebSocket/HTTPによる通信レイヤー Copilot Studio エージェントロジックとレスポンス生成 アーキテクチャ構成

    3層構造でエージェントとの通信、データ解析、UI更新 を分離 • Androidアプリ層ではユーザー体験を最適化 • Direct Line API 3.0を使用してエージェントとの双 方向通信を確立し、テキスト、AdaptiveCardsな どのリッチメッセージをサポート • Copilot Studio側で作成されたエージェントは、 ユーザーのクエリに応じて適切な応答と画面遷 移指示を返す
  4. Direct Line通信フロー ステップ 1 トークン生成 Direct Lineシークレットで認証トークンを取得(30分有効) ステップ 2 アクティビティ受信

    WebSocket/HTTP GETでメッセージ・カード・アクションを受信 ステップ 3 メッセージ送信 HTTP POSTでユーザーメッセージを送信し会話を維持 ステップ 4 タイムアウト処理 15秒以内に応答なしの場合502エラー、最大2回再送信 Direct Line API統合 WebSocketまたはHTTP通信 認証後30分有効なトークン • トークン生成エンドポイントから会話トークンを取 得し、30分間有効な認証を確立 • WebSocketまたはHTTP GETでエージェントからアクテ ィビティを受信 • HTTP POSTでメッセージを送信し、conversationIdで会 話コンテキストを維持 • 15秒以内に応答がない場合、502エラーを返し最大2 回再送信を試行
  5. 応答データの解析 アクティビティ型 message [4] アダプティブカード対応 対応[2] • メッセージ型アクティビティ: APIから受信したtype属 性を確認し、テキストを抽出

    • アダプティブカードのJSONを解析し、ボタンアクシ ョンやカルーセルアイテムを識別 • メタデータから画面遷移情報を取得し、Kotlinのデー タクラスにマッピング • カルーセル表示: attachments配列を処理し、画像、タ イトル、説明、ボタンを解析 • replyToId属性で会話フローを正確に追跡 リッチメッセージでは customViewが渡される
  6. 実装したかったもの(時間なくて断念) • TYPEに含まれる識別子でアプリ内の画面に 遷移するボタンを表示。会話の中からパラ メータを選定 • SEARCH_ROUTE:経路検索 • destination:目的地 •

    priority: 優先条件 • SHOW_STATION_FACILITIES:設備情報 • station:対象駅 • SHOW_NEARBY_SPOTS:周辺案内 • area:エリア • category:カテゴリ 経路検索 画面 設備案内 画面 周辺案内 画面
  7. まとめ 10 • Agent Client SDK for Android ➢モバイルネイティブアプリとAI Agentをシームレスに

    統合するSDK ➢Android、iOS版ともにPrivate Preview ➢iOS版の方が安定しているように見える ✓https://github.com/microsoft/AgentsClientSDK.iOS • AdaptiveCardsによるリッチな表現も可能 ➢Android, iOSで共通に使用できる • 役割を分割して、効率よく開発をおこなおう