Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

コミューンのデータ分析AIエージェント「Community Sage」の紹介

コミューンのデータ分析AIエージェント「Community Sage」の紹介

コミューン株式会社ではコミュニティ支援を行う上で必要なデータ分析業務を手伝ってくれるデータ分析エージェント「community sage」が存在します。
こちらのスライドではモチベーション、経緯を話しつつ、どのような機能を持っているのかを紹介します。

at https://datatech-jp.connpass.com/event/374285/

Avatar for Yusuke Fukasawa

Yusuke Fukasawa

December 09, 2025
Tweet

More Decks by Yusuke Fukasawa

Other Decks in Technology

Transcript

  1. © Commune Inc. All rights reserved ⾃⼰紹介 2 深澤祐援 (Yusuke

    Fukasawa) @fukkaa1225 機械学習エンジニア 趣味: テニス‧ポケモン対戦(シング ル)のゲーム理論的解析
  2. プロダクト紹介 コミューンは、単なる場作りを越えて活性化し、 事業成果が出るコミュニティサクセスプラットフォーム © Commune Inc. All rights reserved ロイヤルユーザー育成のためのUXを⼀気通貫で提供

    プロジェクトを成功に導く運⽤サポート体制 ⽀援と実績で培ったノウハウ提供 コミューンの3つのポイント 1.プロダクト 2.運⽤サポート 3.ノウハウ提供 6
  3. © Commune Inc. All rights reserved 10 コミューンにおけるデータ分析の課題1 • 数百以上のコミュニティが存在

    • コミューンからコミュニティマネージャーがついてるコミュニティが数多く 存在する • 担当者によっては数⼗以上のコミュニティ運営に関わっていることがある コミュニティA コミュニティB コミュニティC コミュニティD コミュニティE コミュニティF
  4. © Commune Inc. All rights reserved 11 コミューンにおけるデータ分析の課題2 • 忙しい担当者が全てのコミュニティの数字を詳細に集計‧分析する時間が

    なかなかない • そもそも SQL を書いたりするスキルが全員に備わっているわけではない • データ集計‧分析が運営上必須だが、それを⾏うための時間や能⼒がない 悪循環にあった コミュニティAの報告のために MAU‧DAU を調べて傾向を まとめつつ、コミュニティ B の 施策提案のために最近の投稿を 全部チェックして...
  5. © Commune Inc. All rights reserved 14 ⾃分たちでもやってみよう! • 2パターンの実装⽅法を検討

    • 1. LangChain DataFrame Agent を⽤いる⽅法 • 2. google-adk による実装: 先⾏事例と同じ
  6. © Commune Inc. All rights reserved 15 LangChain DataFrame Agent

    による⽅法 https://docs.langchain.com/oss/python/integrations/tools/pandas
  7. © Commune Inc. All rights reserved 16 LangChain DataFrame Agent

    による⽅法: 良かったところと問題点 良かったところ • 与えたデータに対する質問応答は期待通りの性能を⽰した • データさえ与えれば動くので、簡単に実装でき、社内展開ができた 問題になったところ • フィードバックとして、当初想定していた以外にも数多くのデータにアクセス できる必要があった • 新しいデータを追加するには都度、エージェントをホストしている API のメモ リを増やさないといけない + データのスナップショットを取るジョブの実装が 必要、で⼤変だった
  8. © Commune Inc. All rights reserved 17 先⾏事例同様に Google-ADK を⽤いた⽅式に移⾏

    • google-adk でエージェントを定義して、 Google Cloud Agent Engine にデプロイする ⽅式に変更 • サービスアカウント設定で権限を絞る エージェント定義 # Agent definition root_agent = Agent( model=MODEL_NAME, name=AGENT_NAME, instruction=build_root_instruction, tools=[ bq_toolset, ], ) app = build_adk_app() # Check if the agent is already deployed deployed_agent_resource = find_deployed_agent_resource() if deployed_agent_resource: LOGGER.info(f"Agent already deployed: {deployed_agent_resource}") LOGGER.info("Update the agent.") # Update the existing agent agent_engines.update( resource_name=deployed_agent_resource, agent_engine=app, display_name=DISPLAY_NAME, extra_packages=extra_packages, service_account=SERVICE_ACCOUNT, requirements=requirements, env_vars={"CUSTOM_AUDIENCE": CUSTOM_AUDIENCE}, ) LOGGER.info("Agent updated successfully.") else: LOGGER.info("Deploying a new agent.") (省略) デプロイ
  9. © Commune Inc. All rights reserved 18 google-adk → BigQuery

    https://cloud.google.com/blog/ja/products/ai-machine-learning/bigquery-meets-google-adk-and-mcp
  10. © Commune Inc. All rights reserved 19 Slack と WebUI

    の両⽅を⽤意して提供 Slack だけだと⾮常に⻑い SQL などの出 ⼒を求められた際にブロック内の⽂字数 制限に引っかかり出⼒できないケースが あったため Slack Web(next.js)
  11. © Commune Inc. All rights reserved 22 Community Sage の全体像

    BigQuery Toolset Read-only access Community Sage Root Agent Community Name Resolver Agent Find Similar Community Agent Graph Plotter Agent
  12. © Commune Inc. All rights reserved 24 Community Sage を⽤いた会話による集計‧分析

    コミュニティ名 から SQL に 必要な brand_id を 解決するサブ エージェント
  13. © Commune Inc. All rights reserved 25 brand_id → Community

    Name の正解率は 100サンプル選んで確認
  14. © Commune Inc. All rights reserved 26 似ているコミュニティを返す 投稿データのサマリーから ベクトルインデックスで検索できる

    エンドポイントを別で⽤意 ↓ このエンドポイントをツールとして 叩くsub agent を⽤意して紐づけ
  15. © Commune Inc. All rights reserved 27 リクエストされたデータに対してグラフを描画する Gemini の

    Code Execution ツールにデータを渡して描画 してもらう 描画してもらったデータは adk の Artifact 機能で GCS に 送り、フロントエンド側は GCS の署名URL を取得して 画⾯に表⽰する
  16. © Commune Inc. All rights reserved まとめ 30 • データ分析エージェント「Community

    Sage」を紹介しました • LangChain DataFrame Integration で実験した後、google-adk に移⾏ • Slack, Web UI の両⽅を提供して既にかなり社内に浸透しています