自然言語によるSnowflakeのデータ分析を実現する、Cortex Agentsの利用インターフェースをおさらいする

自然言語によるSnowflakeのデータ分析を実現する、Cortex Agentsの利用インターフェースをおさらいする

Cortex AgentsはSnowflake Intelligence・REST API・マネージドMCPサーバーから使用できます。
2026.01.30

データ事業本部の鈴木です。
SnowflakeではCortex Agentsに自然言語で問い合わせをすると、分析したいことに対してLLMが自動でツールを選択し、データに対する洞察を得ることができます。
プレビュー期間中に一度紹介しましたが、当時とも状況が変わったので、改めてこの機能についてご紹介します。

▼ 以前の記事

https://dev.classmethod.jp/articles/snowflake-ai-agent-preview-data-analysis-from-snowsight/

昨年の11月にGAとなりました。

https://docs.snowflake.com/en/release-notes/2025/other/2025-11-04-cortex-agents

Cortex Agentsについて

どんなものか

非構造化データに対して検索と取得ができるCortex Searchと構造化データに対するCortex Analystなどをツールとして登録し、自動で使い分けてSnowflake内のデータを分析できます。

cortex-agent-analyst-figure1

エンタープライズデータに必要なのはエージェントより)

できること

一般的なAIエージェントと比較して、データ分析の観点でより適切にSnowflakeに格納したデータを分析できる点が強みです。

例えば、データを分析するためには、分析向けのSQL文を書いて実行する必要があります。
SQL文はエンジンによって方言があるため、SnowflakeであればSnowflakeの最新の仕様に沿ったSQL文を生成する必要があります。

また、ユーザーの質問をデータや集計の仕様に合わせて、解釈する必要もあります。
ユーザーが依頼したKPIの集計定義は、LLMが知っているKPIの定義とは異なることも多いです。さらにユーザーが質問したビジネス用語が必ずしもテーブル定義に一致しているとは限りません。分析対象が複数のテーブルにまたがっている場合は、結合するためにテーブル設計の情報も必要です。

このように、データ分析向けのAIエージェントは、自作にはかなりの作り込みやデータ分析への理解が必要です。Cortex Agentsでは、Cortex Analystをツールとして使えるため、組み込みの機能を使うことで簡単にAIエージェントにデータ分析を実行させることができます。

Cortex Analystは以下で紹介しました。

https://dev.classmethod.jp/articles/review-introduction-snowflake-cortex-analyst-2025/

また、Cortex Agentsは後述するSnowflake Intelligenceのエンジンとしても採用されています。
Snowflake IntelligenceがUIとして要件を満たすのであれば、Cortex Agentsを作っておくだけで、簡単にユーザー向けの画面を提供できます。

Snowflake Intelligenceは以下で紹介しました。Snowflake Intelligenceも昨年11月にGAになっています。

https://dev.classmethod.jp/articles/snowflake-ai-agent-preview-data-analysis-from-snowsight/

https://docs.snowflake.com/en/release-notes/2025/other/2025-11-04-snowflake-intelligence

Cortex Agentsの利用インターフェース

現状、ざっくりと以下の利用方法があります。

  • Snowflake Intelligenceから使う
  • REST APIから使う
  • MCPサーバーから使う

以下でそれぞれの利用イメージをご紹介します。

なお、Cortex Agentsは以下のクイックスタートを参考に作成したとします。

https://www.snowflake.com/ja/developers/guides/getting-started-with-snowflake-intelligence-ja/

1. Snowflake Intelligenceからの使用

Snowflake IntelligenceはエンジンがCortex Agentsとして、分析向けのUIを提供します。以下のようなUIがすぐに利用できます。エージェントに対する権限があるユーザーはSnowflake Intelligenceからそのエージェントを使って分析ができます。

Snowflake Intelligenceによる分析イメージ

会話履歴の保存やマルチターンの会話など、チャットアプリに必要な機能をすぐに利用できる点が特徴です。Cortex Agentsが返してきたグラフや思考内容も同様に表示できる点も差別化ポイントです。

グラフの表示

Streamlitアプリでも近しい機能を持ったUIは作成可能と思いますが、これだけの機能を搭載しようとすると開発には手間がかかります。UIとしての要件を確認した上で不足がなければSnowflake Intelligenceを使うのが利用開始の近道です。

2. REST APIからの使用

REST APIからも実行できるため、独自のシステムから利用したいようなケースに対応できます。
REST APIから使用すると、Cortex AgentsからのレスポンスをServer-Sent Events(SSE)で取得できます。

https://docs.snowflake.com/ja/user-guide/snowflake-cortex/cortex-agents-run

REST APIからはエージェントは作成済みでもそうでなくても利用できます。作成済みのものを使うことが多いと思うので、ここではこのパターンを紹介します。

REST API利用時には認証が必要になります。自環境に沿ったセキュアな方法を選択してください。

https://docs.snowflake.com/ja/developer-guide/snowflake-rest-api/authentication

今回は認証自体はあまり関係がないため、以下の例ではユーザー・パスワードで認証しました。

import json
import requests

import snowflake.connector

# 接続の作成
session = snowflake.connector.connect(
    user="使用ユーザー名",
    password="パスワード",
    account="アカウント識別子",
    warehouse="使用ウェアハウス名",
    role="使用ロール名",
    )

def send_message(message, session):
    request_body = {
        "messages": [message],
        "tool_choice": {
            "type": "auto",
            "name": [
               "Sales_And_Marketing_Data",
               "Support_Cases"
            ]
        }
    }
    resp = requests.post(
        url=f"https://{session.host}/api/v2/databases/{データベース名}/schemas/{スキーマ名}/agents/{エージェント名}:run",
        json=request_body,
        headers={
            "Authorization": f'Snowflake Token="{session.rest.token}"',
            "Content-Type": "application/json",
        },
        stream=True,
    )

    # SSE形式のレスポンスが返却される
    return resp

# 質問例
query = "6月から8月までの商品カテゴリー別の売上トレンドを見せてください"
message = {"role": "user",
           "content": [
                {
                    "type": "text",
                    "text": query
                }]}

# 質問の実行
resp = send_message(message, session)

APIからの利用については以下の資料にも詳しく使い方が紹介されています。

https://zenn.dev/tf_takada/articles/8901e890639a79

なお、SnowflakeのStreamlitアプリからは、ウェアハウスで動作する場合は_snowflakeモジュール使ってリクエストができるほか、コンテナランタイムで動作する場合は別の方法を使って認証情報を取得できます。以下のクイックスタートが参考になります。

https://www.snowflake.com/en/developers/guides/getting-started-with-cortex-agents-api-and-streamlit-on-container-runtime/

3. MCPサーバーからの使用

SnowflakeはマネージドのMCPサーバーをサポートしており、このMCPサーバーから自身のアクセス権限のあるCortex Agentsを利用することができます。

https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-agents-mcp

以下の記事を参考にPATを作成して利用して試しました。(推奨はOAuthです)

https://dev.classmethod.jp/articles/snowflake-managed-mcp-server-pupr/

以下のようにMCPサーバーをSnowsightから作成しました。

-- クイックスタートの場合は、SNOWFLAKE_INTELLIGENCE_ADMINで実行、SNOWFLAKE_INTELLIGENCE.AGENTSに作成
create or replace mcp server retail_business_performance_mcp_server from specification
$$
tools:
  - name: "RetailBusinessPerformanceAnalysisCortexAgents"
    identifier: "SNOWFLAKE_INTELLIGENCE.AGENTS.SALES_AI"
    type: "CORTEX_AGENT_RUN"
    description: "小売ビジネスのパフォーマンスを分析するCortex Agent"
    title: "Analyze Retail Business Performance Agent"
$$;

Cursorのmcp.jsonに以下のように登録しました。<>で囲った箇所は自身のものに置き換えてください。

{
  "mcpServers": {
    "BizPerformance": {
      "url": "https://<Account/Server URL>/api/v2/databases/<MCPサーバーを作ったデータベース名>/schemas/<MCPサーバーを作ったスキーマ名>/mcp-servers/<MCPサーバー名>",
      "headers": {
        "Authorization": "Bearer <PAT>"
      }
    }
  }
}

以下のように登録されたので、ツール名をクリックして有効化しておきました。

登録されたMCPサーバー

チャットで設定したリモートMCPサーバーを使うように質問をすると、Cortex Agentsを使って回答を生成してくれました。

MCPサーバーを使った回答1

MCPサーバーを使った回答2

グラフ表示はシームレスにできるクライアントがまだ少ないと思うので、分析場面での使いやすさはSnowflake Intelligenceに優位性がありそうです。MCPからのレスポンスにはVega-Lite形式でチャート情報が入っているため、HTMLに変換してもらって見るようなことは可能です。

HTMLファイルに変換したチャート

料金

以下の課金要素がかかります。

  • Cortex Agents自体
  • Cortex Analystツール
  • Cortex Searchツール
  • そのほかに利用するツールがあれば

料金表は以下にあります。

https://www.snowflake.com/legal-files/CreditConsumptionTable.pdf

Cortex Agentsはモデルごとに100万トークン単位の料金がかかります。

Cortex Analystはもともとはリクエスト数による課金だったため、Cortex Agentsから使うと課金額が大きくなる可能性がありましたが、Snowflake IntelligenceまたはCortex Agentsから使う場合はトークン数ベースの課金となっており、使いやすくなりました。

Cortex Searchは課金要素がいろいろあるため計算は難しいですが、ものすごく大量のドキュメントを検索するような場合は別なものの、そこまで課金は大きくならないと思います。

そのほか

Cortex AgentsはSnowsight(コンソール)からも簡単に作成でき、とても手軽に利用できますが、より振る舞いを制御するためのいくつかの設定ができます。

  • orchestration instructions
  • response instructions

オーケストレーション設定

ツールのDescriptionも適宜書いておき、エージェントからツールがどのようなものでいつ使うものなのか分かるようにしておくことも必要です。

ツールのDescription

また、エージェントの評価機能もあります。導入初期時の性能評価や普段の運用で重宝します。
現状はTruLensを使った評価機能が利用できます。

https://www.snowflake.com/en/developers/guides/getting-started-with-ai-observability/

現在はプライベートプレビュー中のCortex Agents専用の評価機能もあるようです。

https://www.snowflake.com/en/developers/guides/getting-started-with-cortex-agent-evaluations/

最後に

自然言語によるSnowflakeのデータ分析を実現するCortex Agentsの利用動線のおさらいでした。
以下のウェビナーでもご紹介した通り、AIに分析を任せられるかどうかで、組織のデータ分析環境の品質や改善スピードが変わってくると期待しています。

https://dev.classmethod.jp/articles/251031-da-webinar-snowflake-intelligence/

SnowflakeではネイティブのCortex Agentsを使うことで誰でも簡単に分析向けエージェントを作成できます。
この記事でご紹介したように複数のインターフェースが用意されているため、自環境に合わせてご利用ください。

この記事をシェアする

FacebookHatena blogX

関連記事