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

SnowflakeとAIで作る エスカレ対応効率化エージェント

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for rerorero rerorero
May 20, 2026
37

SnowflakeとAIで作る エスカレ対応効率化エージェント

Avatar for rerorero

rerorero

May 20, 2026

Transcript

  1. 3 © LayerX Inc. ⾃⼰紹介 @rerorero 2025年9⽉ LayerX ⼊社 バクラク申請‧経費精算

    開発エンジニア 名取 亮 今⽇の内容は データプラットフォーム利⽤者として 活⽤事例になります
  2. © LayerX Inc. 6 お客様のお問い合わせ対応 : : 経費精算担当エンジニア 債務管理担当エンジニア カスタマーサポート

    お客様 • お問い合わせ内容 の確認 • 必要に応じてエン ジニアへエスカ レーション • より詳細な調査 問題の報告
  3. © LayerX Inc. 7 いつ‧どれくらい発⽣するかわからない • 各サービスの開発チームが通常業務をこなしつつ対応 • ⼀件の調査に半⽇以上かかることも‧‧‧ エスカレーション対応のツラミ

    確認する範囲が多岐にわたる • 仕様、コード、データ、インフラ構成など、確認すべき範囲が多岐にわたることもある • サービス間をまたがるケースもある
  4. © LayerX Inc. 14 エージェントの様⼦ • リンクは Streamlit in Snowflake

    (SiS) アプリへの リンク ◦ エージェントの調査結果を表⽰するSiSアプ リ。詳しくは後述 • 以下のような結果の内容を参考にエンジニアが追加 調査を⾏う ◦ 問題の分析内容 ◦ 根拠が不⼗分な点‧⾃信度 ◦ 推奨される次のステップ ◦ 過去の類似問い合わせへのリンク ◦ etc 結果の例
  5. © LayerX Inc. 16 お問合せ対応のフロー 問い合わせ内容 エンジニア 仕様 ソースコード 過去の調査記録

    アプリケーション データ 暗黙的な ドメイン知識 様々な情報を利 ⽤する
  6. © LayerX Inc. 17 エージェント AI エージェント (Slack bot) 仕様

    過去の調査記録 アプリケーション データ 問い合わせ内容 調査結果 エンジニア LLM Tools MCP ソースコード 暗黙的な ドメイン知識
  7. © LayerX Inc. 18 エージェント AI エージェント (Slack bot) 仕様

    過去の調査記録 アプリケーション データ 問い合わせ内容 調査結果 エンジニア LLM ソースコード 暗黙的な ドメイン知識 Tools MCP
  8. © LayerX Inc. 20 分析⽤のSnowflakeのデータを利⽤ • アプリケーションのDBを直接参照するアプローチは様々な課題がある ◦ 接続⽅法、多様なデータベースソフトウェアへの対応、セキュリティリスク •

    LayerXではすでに分析⽤DWHとしてSnowflakeへ連携するパイプラインが構築されており、ほとん どのアプリケーションデータはすぐに利⽤できる。 アプリケーションデータを分析にどう活⽤するか : : アプリケーションDB (Aurora, Dynamo等)
  9. © LayerX Inc. 21 活⽤の課題 • DWH上のデータベーススキーマはシステムの都合で構築されている • お問い合わせは⾃然⾔語 •

    ⾃然⾔語と実データスキーマとのギャップ アプリケーションデータを分析にどう活⽤するか
  10. © LayerX Inc. 22 バクラク申請の例 • バクラク 申請とは ◦ 社内の申請‧承認フローをデジタル化するSaaS。⽀払申請‧経費精算‧購買申請‧定期券申

    請など、様々な申請を⾏うことができる。 • 例えば申請のデータは、申請の種別によって複数の異なるテーブルに格納されている。 アプリケーションデータを分析にどう活⽤するか 例)定期券申請 申請テーブル 定期券情報テーブル 例)⽀払申請 申請テーブル ⽀払税情報テーブル 定期の区間 など 税区分など
  11. © LayerX Inc. 24 Snowflake の Cortex Agents • ⾃然⾔語を投げるとSnowflakeが⾃分でSQLを⽣成‧実⾏

    して答えを返すエージェント機能 • ⾃然⾔語とのギャップを埋めるのに最適 • 作成したエージェントはチャットUIの他に、APIからも利 ⽤できる • APIを使ってお問い合わせエージェントにtoolsとして実装 できる • データがトレーニングに利⽤されることもない • Cortex Agents単体としても利⽤できる
  12. © LayerX Inc. 25 Snowflake の Cortex Agents https://www.snowflake.com/ja/blog/ai-data-agents-snowflake-cortex/ •

    LLMが2種類のアプローチでデータを参照 Cortex Analyst • 構造化データ(SQLの⽣成‧実⾏) Cortex Search • ⾮構造化データ(ベクトル検索)
  13. © LayerX Inc. 26 Snowflake の Cortex Agents https://www.snowflake.com/ja/blog/ai-data-agents-snowflake-cortex/ •

    LLMが2種類のアプローチでデータを参照 Cortex Analyst • 構造化データ(SQLの⽣成‧実⾏) Cortex Search • ⾮構造化データ(ベクトル検索) アプリケーションの DBデータは構造化 データのみ
  14. © LayerX Inc. 27 Cortex Analyst のセットアップ • Cortex Agent

    に必要な Cortex Analyst をセットアップする • Cortex Analyst には Semantic Views の定義が必要 • Semantic View とは ◦ テーブル間の関連や⾃然⾔語で豊富なメタデータを付与した論理テーブルを定義できる ◦ ビジネス上の意味やルール、計算式を付与し、誰でも容易に分析‧可視化できるようにする 「セマンティックレイヤー」を構築するためのもの ◦ 実質⾃然⾔語とのギャップを埋めるレイヤー • GUI、あるいはSQLでも作成できる(CALL SYSTEM$CREATE_SEMANTIC_VIEW_FROM_YAML)
  15. © LayerX Inc. 28 name: WORKFLOW_TEIKI_SHINSEI description: 定期券申請固有の情報を提供するビュー。 全クエリでtenant_idフィルタが必須。 tables:

    - name: shinsei description: 申請の基本情報 synonyms: [申請, 定期券申請] dimensions: - name: shinsei_id description: 申請のID synonyms: [申請ID] # ...省略 - name: teiki_info description: 定期券の経路・駅情報・料金・有効期間 synonyms: [定期券情報] dimensions: - name: departure_station_name description: 出発駅の名称 synonyms: [出発駅名, 始発駅名] # ...省略 facts: - name: teiki1_price description: 1ヶ月定期代 synonyms: [1ヶ月定期券料金, 1ヶ月分] relationships: - name: shinsei_to_teiki_info left_table: shinsei right_table: teiki_info relationship_columns: - left_column: ID right_column: SHINSEI_ID - left_column: TENANT_ID right_column: TENANT_ID 調査は特定のデータに着⽬する ことがほとんどのため、 dimensionsにIDが含まれていた り、metricsを利⽤しないなど、 分析⽤途とは少し異なる使い⽅ をしている
  16. © LayerX Inc. 29 Semantic Viewの作成⾃動化 • 「バクラク申請‧経費精算」のサービスだけでも100を超えるテーブルがある。⼈⼒で構築するに は時間がかかりすぎる。 •

    仕様、コード、テーブルスキーマから、Semantic Views, Cortex Analyst, Cortex Agent をセット アップする Agent Skills を作成。 仕様 ソースコード テーブルスキーマ Skills Semantic Views Cortex Analyst Cortex Agents
  17. © LayerX Inc. 30 Cortex Analyst のセットアップ 問い合わせ内容 LLM Tools

    (Cortex Agents REST API) Cortex Agent: バクラク申請‧経費精算 エージェント • サービスごとにCortex Analystを作成 • AIが問い合わせ内容に応じて使い分ける AI エージェント Cortex Agent: バクラク債権‧債務管理エージェント Cortex Agent: バクラク共通管理 エージェント
  18. © LayerX Inc. 31 補⾜: Semantic View Autopilot • 2⽉頃に

    Semantic View Autopilot という AI ⽀援 による Semantic View の⽣成機能が登場した • 実際のユーザーアクティビティ(実⾏クエリ)やテーブルのメタデータを参考にするとのこと • ソースコードやユーザーガイドを参照させるには少し⼿間がかかりそうなため今回は試していない https://www.snowflake.com/en/news/press-releases/snowflake-delivers-semantic-view-autopilot-as-the-foundation-for-tr usted-scalable-enterprise-ready-AI/
  19. © LayerX Inc. 34 RAGもCortex Agents (w/ Cortex Search) •

    Snowflakeの「検索拡張⽣成(RAG)完全ガイド」では Cortex Search を推奨 ◦ https://www.snowflake.com/ja/fundamentals/rag/ • お問合せエージェントから直接 Cortex Search を利⽤しても良いが、今回はCortex Search を使った Cortex Agent も作成 ◦ Cortex Agents 単体でも利⽤できる ◦ アプリケーションデータのCortex Agentと同じAPIで利⽤できる
  20. © LayerX Inc. 35 tickets ticket_comments ticket_with_comments select t.id, concat_ws('\n\n',

    '【件名】' || t.subject, '【説明】' || t.description, '【コメント履歴】' || listagg(tc.body, '\n\n') within group (order by tc.created_at) ) as full_text from tickets t left join ticket_comments tc on t.id = tc.ticket_id group by t.id, t.subject, t.description チケットの検索⽤テーブル作成 • 連携済みのZendeskのチケット、コメントデータから検索⽤のテーブルを作成 • 1:Nのチケットコメントから、1チケット1⾏にコメントを集約
  21. © LayerX Inc. 36 ticket_with_comments チケットの検索⽤テーブル作成 • Cortex Search がソーステーブルの差分を定期的にベクトル化する

    • インクリメンタルなテーブルでないと毎回全⾏インデックスが⾛るため注意 • デフォルトの EMBEDDING_MODEL は英語‧ウィンドウサイズ512なので変更 Cortex Search create cortex search service ZENDESK_TICKET_SEARCH on full_text -- ベクトル化するカラム attributes ticket_id, subject, description target_lag = '1 hour' -- 更新頻度 embedding_model = 'snowflake-arctic-embed-l-v2.0-8k’ as ( select ticket_id, full_text, subject, description from TICKET_WITH_COMMENTS ); Cortex Agent
  22. © LayerX Inc. 39 Cortex Agentの Web Search は管理者アカウントで無効 •

    AgentのWeb検索toolを利⽤するオプションは無効にする • 誤って有効にすることもできないようSnowflake管理者にしか有効にできないようになっている 1. 外部へのデータ送信制御
  23. © LayerX Inc. 40 Snowflakeの権限管理にのっかる • 社内Slackのボットではあるが、社内の全員がSnowflakeのデータを⾒られるとは限らない • エージェントの出⼒結果を Snowflake

    Managed Stage 上に マークダウンファイルとして出⼒ • Streamlit in Snowflake (SiS) アプリケーションで Stage のマークダウンを表⽰する • SiSの管理はデータチームにより GitHub リポジトリやCI/CDが整備されている • Slackポストには SiS のURLのみ含まれる 2. エージェントの出⼒のアクセス制御 SiS
  24. © LayerX Inc. 41 実⾏したクエリを調査結果に含める • toolで実⾏したSQLを返すようにしておき、プロンプトでも SQLを含めるよう指⽰ ◦ Cortex

    Agent の REST API は Cortex Analyst で実⾏した SQL が REST API のレスポンスに含まれる ◦ レスポンスの content[].tool_result.content[].json.sql フィールド • 利⽤者が、エージェントの結果の根拠の確認に利⽤できる 3. データ利⽤の透明性‧監査
  25. © LayerX Inc. 44 • 期待以上の調査結果が返ってくることもあり、ポジティブなフィードバックも 実際に運⽤してみて • ログやシステムメトリクスなどまだ利⽤できてないデータソースがあり、分析できる範囲や精度に 改善の余地がある

    • 社内でトラッキングしている⽣産性のメトリクス(調査⼯数)にはまだ改善が⾒られない • 結果の評価や、フィードバック‧より多くのデータを活⽤することによる精度の改善などが課題
  26. © LayerX Inc. 45 • Cortex Agent の評価、フィードバック、継続的改善 ◦ Cortex

    Agent Evaluationsの検討 ▪ Cortex Agent の回答品質をLLM-as-Judgeで評価する機能 ▪ データセットが必要なAnswer Correctness(期待回答との⼀致度)と データセット不 要なLogical Consistency(指⽰‧ツール呼び出しの⼀貫性)の2種類 • 参照するデータソースを増やす ◦ ログ‧メトリクスなど ◦ 実はログは既にSnowflake上に連携されているが利⽤できていない ◦ クエリの仕⽅を⼯夫しないとうまく検索できないため適切なプロンプトが必要 Snowflake‧データ周りでの課題