🦙

【第3回 AI Agent Hackathon with Google Cloud】SmartMeet Agent:あなたの「AI秘書」

に公開

ターゲットユーザーと課題

SmartMeet Agentは、以下のような方々を対象としています。

  • 複数のチームやクライアントと連携するプロジェクトマネージャー営業担当者
  • 日常的に多くのオンライン会議を行うすべてのビジネスパーソン

私たちは、彼らが直面する「会議の三大苦行」を解決すべき課題として定義しました。

  1. 会議前の苦行:日程調整のためのコミュニケーションコストが非常に高い。
  2. 会議中の苦行:アジェンダや資料の準備が煩雑で、会議の効率が上がらない。
  3. 会議後の苦行:議事録の作成とタスクの割り振りが遅れ、決定事項が実行されない。

ソリューションと特徴

SmartMeet Agentは、「Gmailとカレンダーを監視し、会議の全プロセスを自律的に実行するAI秘書」をコンセプトとしています。その主な特徴は以下の通りです。

  • 完全自動化された会議設定フロー
    AIがメール文面から「会議を開きたい」という意図を汲み取り、自動で候補日時を提案します。
  • ワンクリックでの日程確定
    参加者は、エージェントから送られてくるメール内の確認リンクをクリックするだけで、日程調整が完了します。
  • シームレスなGoogle Workspace連携
    日程が確定すると、自動でGoogleカレンダーにイベントが登録され、アジェンダ用のGoogleドキュメントも生成・添付されます。普段お使いのツール上で、すべての体験が完結します。

SmartMeet Agentデモ動画

SmartMeet Agentが実際にどのように動くのかを動画でご覧ください。動画では、会議の依頼メールの受信から、エージェントによる候補日時の送信、そして参加者のクリックによってカレンダーにアジェンダ付きのイベントが作成されるまでの一連の流れをご確認いただけます。

https://youtu.be/EDoG21AbLjQ

システムアーキテクチャ

本プロジェクトは、Google Cloudの各種サービスを連携させたサーバーレスアーキテクチャで構築されています。フロントエンドはVercel、バックエンドはCloud Runでホスティング。GmailからのイベントはPub/Sub経由で、カレンダーの更新はWebhookで受け取るイベント駆動型アーキテクチャです。ユーザーの認証情報やタスクキューといった状態管理はFirestoreに集約。そして、意思決定の核となるVertex AIの呼び出しは、独立したCloud Functionsとして実装しています。

プロジェクトの現在地:完成した機能と今後の課題

本プロジェクトはハッカソンという限られた期間で開発したプロトタイプであり、コア機能の実装を優先しました。現在の完成状況と、今後の課題は以下の通りです。

完成したこと

  • コア機能のE2E(エンドツーエンド)実装:メールでの会議意図の検知 → Vertex AIによる候補時間の提案 → メールでの「ワンクリック確認」リンクの送付 → Googleカレンダーへのイベント登録と議事録ドキュメント生成、という一連の基本フローは、プロトタイプとして動作する段階まで完成しています。
  • サーバーレスアーキテクチャの構築:Vercel、Cloud Run、Cloud Functions、Firestoreを用いた基本的なインフラが構築済みです。

今後の課題 (TODO)

  • イベント購読機能の作り込み:Gmail Push通知の購読設定や、障害発生に備えたメールボックスのポーリングといったバックアップ機構は構想段階であり、コード上ではTODOとして残っています。
  • 会後プロセスの自動化:会議録音の取得からCloud Speech-to-Textでの文字起こし、Vertex AIでの要約・タスク抽出というフローは、現状API経由でテキストを投入して議事録を生成する形でシミュレートしており、完全な自動化は未実装です。
  • 堅牢性の強化:OAuthトークンの有効期限切れへの対応、複数ユーザー環境(マルチテナント)のサポート、詳細なエラーハンドリングといった、プロダクトとして運用する上で不可欠な堅牢性の作り込みが今後の課題です。
  • フロントエンドの機能拡充:現状のダッシュボードは基本的な表示機能が中心であり、より高度な対話機能や可視化は未実装です。

開発の裏側:AI秘書を育てるための技術的な挑戦

挑戦1:非同期イベントの渋滞整理
このシステムの心臓部は、Gmail (Pub/Sub) と Calendar (Webhook) からリアルタイムに送られてくる通知を、いかに正確に処理するかという点にあります。同じイベント通知が複数回届いてしまう可能性も考慮し、Firestoreを用いて各イベントに「冪等キー」を生成。これにより、万が一同じリクエストが来ても処理は一度しか実行されない仕組みを構築し、システムの信頼性を担保しました。

挑戦2:Vertex AIとの対話 〜AIはどこまで賢いのか?〜
開発過程は、まさにAIとの二人三脚でした。

  • AIに任せたこと:メール文面から「会議を開きたい」という曖昧な意図を読み取ること。そして、複数の参加者のカレンダー情報という複雑なデータから、全員が参加可能な候補日時をリストアップすること。これは、まさに生成AIの得意分野です。
  • 人間がやるべきだったこと:しかし、AIは単に空いている時間を提示するだけです。それを「より良い時間」にするためのポリシー設計は人間の役割でした。例えば、「コアタイムを優先する」「移動時間を考慮する」といったルールをBigQueryに持たせ、AIの提案に重み付けをしました。的確なアウトプットを得るためのプロンプトエンジニアリングと、ビジネスルールの設計こそが、このエージェントの「知性」を左右する鍵でした。

挑戦3:Google Workspace API連携のオーケストレーション
「ワンクリック確定」というシンプルな体験の裏側では、Gmail API、Calendar API、Docs APIが連携する複雑なオーケストレーションが実行されています。ユーザーのクリックをトリガーに、バックエンドでこれらのAPIを正しい順序で、かつエラーなく実行させる処理は、まさに綱渡りのような実装でした。特に、ユーザーの代理で各APIを操作するためのOAuth認証トークンの管理は、セキュリティと安定性の両立が求められる挑戦でした。

コストについての考察

本プロジェクトでは、Cloud RunやCloud Functionsといったサーバーレスサービスを全面的に採用しました。これにより、リクエストがない平常時にはコストがほとんど発生せず、利用量に応じてスケールする経済的な構成を実現しています。

主な変動費はVertex AIのAPIコールですが、会議の意図分析や日程提案といった、本当にAIの高度な判断が必要な瞬間にのみ呼び出すよう設計することで、コストを最適化しています。

今後の展望

SmartMeet Agentはまだプロトタイプ段階ですが、私たちの日常から「調整さん」業務をなくし、より創造的な仕事に集中できる未来の一端を示せたと信じています。

今後の改良点

  • 会後プロセスの完全自動化:会議の録音データから、Cloud Speech-to-TextとVertex AIを用いて議事録とToDoリストを自動生成する機能の完成。
  • ナレッジの活用:過去の議事録をRAGで検索し、「あの会議で何が決まったんだっけ?」を即座に思い出せる機能の追加。
  • より高度な自律性:例えば、重要なメールのスレッドが長引いている場合に、AIが「会議を設定しますか?」と能動的に提案してくるような機能。

AIが私たちの仕事を奪うのではなく、最高のパートナーになる。そんな未来に向けて、これからも開発を続けていきます。

最後に、このような素晴らしい挑戦の機会を提供してくださった主催のZenn様、協賛のGoogle Cloud Japan様に心より感謝申し上げます。ありがとうございました。

Discussion