Finatext Tech Blog
👓

Snowflake Intelligenceをはじめから丁寧に

に公開
2026/05/28

はじめに

こんにちは。ナウキャストでデータエンジニアをしているTakumiです。

Snowflake Intelligenceは、2025年11月4日にGeneral Availability(GA)となりました。本記事では、GA後のSnowflake Intelligenceを実際に構築・検証した内容をもとに、初期構築の手順、構成要素、本番運用で押さえておきたい権限・コスト・評価の観点を整理します。

実際に作ってみて&触ってみて感じたSnowflake Intelligenceのいいところ、改善してほしいところも共有します。

この記事でわかること

  • GA後のSnowflake Intelligenceの概要と、Cortex Familyにおける立ち位置
  • 自然言語分析、チャート、Artifacts、Tool実行など、Snowflake Intelligenceでできること
  • Cortex Analyst / Cortex Search / Cortex Agents / Custom Tool / MCP Connectorの役割
  • Role・Warehouse・Semantic View・Cortex Search・Agentの初期構築手順
  • 本番利用向けの権限設計、コスト管理(Usage History、Resource Budgets)
  • 運用・評価(Agent Evaluations、AI Guardrails、Feedback)

実行環境

Snowflake US West (Oregon) Region

Snowflake Intelligenceとは

Snowflake Intelligenceは、自然言語で組織データからインサイトを取得し、アクションを実行できるビジネスユーザー向けのAgentic Applicationです。単に自然言語でデータに問い合わせるチャットUIではなく、生成されたテーブルやチャートをArtifactsとして保存・共有・再利用できるようになっています。

中核にはCortex Agentsがあり、Cortex Analyst(構造化データ)、Cortex Search(非構造化データ)、Custom Tool、MCP Connectorなどを統合して計画・応答します。

Cortex Family内での立ち位置

Snowflake IntelligenceはCortex Familyの中で、Userに最も近いInterfaceの立ち位置にあります。単なるUIではなく、Cortex Agentsを中核に、構造化・非構造化データ、チャート、Artifacts、Tool実行を統合するWorkspace的な位置づけです。

Cortex Family内での立ち位置

Snowflake AI Application Frameworkにおける立ち位置

AI Application Framework全体でも、Snowflake Intelligenceはユーザーが直接操作するインターフェースを担っています。ReactやStreamlitのようなアプリケーションUI層に相当しますが、Artifactsの保存・共有、Tool実行、Agent orchestrationまで含むため、単なるフロントエンドよりSnowflake管理のAgentic Workspace/UIとして捉える方が正確です。

AI AppFramework

できること

機能 説明
自然言語分析 構造化データ(Cortex Analyst)・非構造化データ(Cortex Search)への問い合わせ
チャート生成 Data to Chart(Vega-Liteベース)による可視化
Artifacts 生成されたテーブル・チャートの保存、共有、再訪問、フォローアップ質問、Refresh(Preview)
ファイル チャット上でのファイルアップロード・参照(ビジネスユーザー向け体験の強化)
Tool実行 SQL実行、Custom Tool(UDF/SP、API連携、Web検索)、MCP Connector経由の外部Tool

構成要素

Cortex Analyst

概要

Snowflake上の構造化データに対し、自然言語による問い合わせを可能にするAgentシステムです。Snowflake Intelligenceでは、Cortex AnalystをAgentのToolとして利用します。

Semantic ViewとSemantic Model

AIが組織のデータを理解するために、Semantic ViewまたはSemantic Modelを使います。

方式 概要 主な利用シーン
Semantic View Snowsight等で作成するSnowflakeネイティブのセマンティック定義 GUI中心の構築、Snowflake Intelligenceとの連携
Semantic Model(YAML) Stage上のYAMLファイルとして定義 既存のSemantic Model資産、バージョン管理

Cortex Analystが参照するのは生データではなくセマンティック定義ですが、Semantic Model/Viewだけでガバナンスが自動的に完全になるわけではありません。参照先データ、Semantic View、Search Service、Custom Tool、Agent権限の組み合わせで制御されます。

Snowflake におけるSemantic Modelの立ち位置については、以下の図がわかりやすいです。

Semantic View

Verified Query Repository(VQR)

Semantic Model内に定義できるセクションで、自然言語の質問と検証済みのSQLをペアで登録する仕組みです。Cortex Analystはユーザーの質問がVQR内の質問と似ていると判断したとき、対応するSQLを流用して回答を生成します。

役割 効果
ドメイン知識の注入点 メトリクスやエンティティでは表現しづらい複雑ロジックを明示的に提供
ユーザー体験ブースター 似た質問を検知してSuggested Questionsを提示
ガバナンスフック 検証日時・検証者をメタデータで管理し、監査証跡を確保

参考文献: Suggested Questions in Cortex Analyst

概要

Snowflake内の非構造化データに対して、意味検索・キーワード検索を行うサービスです。RAGに必要な検索エンジンをフルマネージドで提供し、ハイブリッド検索(ベクトル+キーワード)とRe-Rankingで高精度な検索を実現します。Snowflake Intelligenceでは、AgentのToolとして検索結果をコンテキストに渡します。

ハイブリッド検索+Re-Ranking

  • Embedding空間で意味的に類似する文章をベクトル検索で取得
  • 表面的に一致する文章をキーワード検索で取得
  • Semantic Rankingで最終的な検索順位を決定

Embeddingsモデル

Snowflake Arctic Embeddingシリーズを使用します。

  • snowflake-arctic-embed-m-v1.5(約1.1億パラメータ)
  • snowflake-arctic-embed-l-v2.0(約5.68億パラメータ)

制約・課題(本番利用の注意点)

  • トークン長制限512トークンを超えるチャンクは、先頭512トークンのみsemantic retrievalの対象(キーワード検索はコンテキスト制限なし)
  • Cortex Search Serviceはowner's rightsで実行される。呼び出しユーザーのロールとTool実行時の権限が常に同じとは限らない

参考文献

Cortex Agents

概要

構造化・非構造化データの両方にまたがり、複数のToolを使って自然言語の問い合わせに回答します。公式ドキュメントでは、AgentはLLM-based orchestrationによりCortex Analyst、Cortex Search、Custom Tool等を使って計画・応答すると説明されています。

Orchestration

自然言語で受けた質問を、計画→分割→ルーティングのワークフローで処理します。ワークフローの参考実装はAgent Gateway(orchestration-framework)として公開されています。

ステップ 説明
計画 要求を解析し、複数の実行パス候補から最適なプランを策定
分割 複合クエリを小さなタスクに分割し、並列/逐次実行を最適化
ルーティング Cortex Analyst、Cortex Search、Custom Tool、MCP Connectorを自動選択

Tool Use

Orchestrationで生成した計画に沿って、以下のツールを呼び出します。

Tool 説明
cortex_search 非構造化データの検索
cortex_analyst_text_to_sql Semantic View/Modelを参照したText-to-SQL
sql_exec SQLの実行
data_to_chart Vega-Lite仕様によるチャート生成
Custom Tool UDF/Stored Procedure、API連携、Web検索など
MCP Connector リモートMCP ServerのToolを発見・実行(Jira、Salesforce、独自アプリ等)

Reflection

各Toolの呼び出し後、得られた結果を自己評価し、コンテキストの修正や追加情報の検索を行います。ReActやSelf-Reflection系列の研究を応用したアプローチが採用されています。

Custom ToolとMCP Connector

Custom ToolはStored ProcedureやUDFに加え、API連携やWeb検索をAgentから呼び出せます。MCP Connectorは、リモートMCP Server上のToolをSnowflake Intelligence / Cortex Agentsから発見・実行するための仕組みです。本番では、各Toolの実行ロール(owner's rights / caller's rights)を個別に確認してください。

構築手順

前提条件

  • 利用するデータはSnowflake上のTable、Stage等にロード済みであること

利用データ(デモ用)

種別 データ
構造化 Snowflake MarketplaceのUS Real Estate
非構造化 FRB FOMCの議事録

想定シナリオ:住宅価格トレンドを構造化データから可視化し、FOMC資料からトレンドの背景を説明してもらう。

設定環境の準備

Role、Warehouse、Database

use role accountadmin;

-- Role
create role snowflake_intelligence_admin_rl;
create role snowflake_intelligence_modeling_rl;
create role snowflake_intelligence_ro_rl;

grant role snowflake_intelligence_modeling_rl to role snowflake_intelligence_admin_rl;
grant role snowflake_intelligence_ro_rl to role snowflake_intelligence_modeling_rl;

-- Warehouse
create warehouse snowflake_intelligence_wh with warehouse_size = 'X-SMALL';
grant usage on warehouse snowflake_intelligence_wh to role snowflake_intelligence_admin_rl;
grant usage on warehouse snowflake_intelligence_wh to role snowflake_intelligence_modeling_rl;
grant usage on warehouse snowflake_intelligence_wh to role snowflake_intelligence_ro_rl;

-- Database
create database snowflake_intelligence;
grant ownership on database snowflake_intelligence to role snowflake_intelligence_admin_rl;

DECLARE
    sql_command STRING;
BEGIN
    sql_command := 'GRANT ROLE snowflake_intelligence_admin_rl TO USER "' || CURRENT_USER() || '";';
    EXECUTE IMMEDIATE sql_command;
END;

Config Schema、Stage(Semantic Model用)

Semantic ViewをSnowsightで作成する場合は不要です。YAMLのSemantic ModelをStageに置く場合のみ作成します。

create schema if not exists config;
grant usage on schema config to role snowflake_intelligence_modeling_rl;
grant usage on schema config to role snowflake_intelligence_ro_rl;

use schema config;
create stage semantic_models encryption = (type = 'SNOWFLAKE_SSE');
grant read on stage snowflake_intelligence.config.semantic_models to role snowflake_intelligence_modeling_rl;
grant read on stage snowflake_intelligence.config.semantic_models to role snowflake_intelligence_ro_rl;

Cortex Search

チュートリアルを参考に構築しました。

  1. PDFをStageにアップロード
  2. Chunk分けを行うFunctionを作成
  3. Chunk情報を格納するTableを作成
  4. Tableを元にCortex Search Serviceを作成

Cortex Analyst(Semantic View)

SnowsightでSemantic Viewを作成しました。単一Tableに対してはディメンションやシノニムの定義をある程度自動生成してくれますが、Table間のリレーションは手動でモデリングする必要があります。

Example of Analyst

Cortex Agentの作成

Agentは次の方法で作成・実行できます。

方法 用途
Snowsight GUI ビジネスユーザー・初期検証向け
CREATE AGENT(SQL) バージョン管理・CI/CD
Cortex Agents Run API アプリケーション連携(agent:run、Agent Objectなしの/api/v2/cortex/agent:run)
DATA_AGENT_RUN(SQL関数) SQLからの実行

Agent Objectを作成し、agent:run APIから実行する方法と、Agent Objectなしで設定を渡して/api/v2/cortex/agent:runを呼ぶ方法があります。詳細はCortex Agents Run APIを参照してください。

Agent設定項目

項目 説明
About エージェントの表示名・概要・目的を設定する
Tools Cortex Analyst、Cortex Search、Custom Toolなど、利用するToolを登録する
Skills Agentの応答方針や補助的な能力をスキルとして追加する
MCP Connectors リモートMCP Serverを接続し、外部Toolを発見・実行できるようにする
Orchestration モデル(auto推奨)やPlanning Instructionを設定する
Access 利用可能なRoleを追加し、Verify accessで参照可否を確認する

CREATE AGENTの例(CLI)

CREATE AGENT IDENTIFIER('MY AGENT')
WITH PROFILE='{"display_name": "MY AGENT"}'
    COMMENT='Description about agent'
FROM SPECIFICATION $$
{
  "models": {
    "orchestration": "auto"
  },
  "instructions": {
    "response": "<Write Response Instruction Here>",
    "sample_questions": [
      {"question": "<Sample Question Here>"}
    ]
  },
  "tools": [
    {"name": "Cortex Search Service Name", "type": "cortex_search"},
    {"name": "Semantic View Name", "type": "cortex_analyst_text_to_sql"},
    {"name": "Semantic Model Name", "type": "cortex_analyst_text_to_sql"}
  ],
  "tool_resources": {
    "cortex search service name": {
      "id_column": "FILE_URL",
      "name": "<Database>.<Schema>.<cortex search service name>"
    },
    "Semantic View Name": {
      "semantic_view": "<Database>.<Schema>.<Semantic View name>"
    }
}
$$

GUIでの設定

以下の設定をGUI上で行うことが可能です。

  • About: Agentの表示名、説明、用途を定義する
  • Tools: Cortex Analyst、Cortex Search、Custom Tool、Webサーチの設定
  • Skills: Agentの応答方針や補助的なスキルを設定
  • MCP Connectors: MCP Serverの接続設定
  • Orchestration: モデル選択とPlanning Instructionを設定する
  • Access: 利用可能なRoleを追加

GUI_About
GUI_Tools
GUI_Skills
GUI_MCP
GUI_Orchestration
GUI_Access

権限設計

本番利用では、Agent自体のUSAGEに加え、Agentが利用する各リソースへの権限が必要です。

対象 必要な権限の例
Agent USAGE on agent
Semantic View / Semantic Model USAGE、SELECT(参照先Table)
Cortex Search Service USAGE(owner's rightsの挙動に注意)
Custom Tool USAGE on function/procedure、実行ロールの確認
MCP Connector Connector定義へのUSAGE、接続先Toolの権限
Warehouse Agent・各Toolで指定するWarehouseへのUSAGE

Cortex Agent evaluationsを行う場合も、評価対象のAgentとToolへの権限が必要です。最小権限の原則で、ロールごとに利用可能なAgent・Toolを分離することを推奨します。

コスト管理

課金の考え方(GA後)

Preview期間中の「Agent機能は無料」という前提はGA後には当てはまりません。主なコスト要因は以下のとおりです。

要因 説明
Cortex Agents orchestration Orchestrationトークン
Cortex Analyst Analystトークン
Cortex Search インデックスサイズ・保持時間
Warehouse Agent本体および各Tool実行時のWarehouse稼働

Usage History

Snowflake Intelligence経由の利用は、Account Usageビューで確認できます。

SELECT *
FROM SNOWFLAKE.ACCOUNT_USAGE.SNOWFLAKE_INTELLIGENCE_USAGE_HISTORY
ORDER BY start_time DESC
LIMIT 100;

credits、tokens、user、request、agent、granularなtoken/credit breakdownが参照できます。

Snowflake Intelligence経由ではなく、Cortex Agents Run API等から直接呼び出したリクエストはCORTEX_AGENT_USAGE_HISTORYに記録されます。UI利用とAPI利用を分けて監視してください。

Resource Budgets

2026年3月に、Snowflake Intelligence / Cortex Agents向けのResource Budgetsが追加されました。利用上限、タグ、通知、自動アクションを設定し、本番運用でのコスト暴走を防ぐことができます。

デモ時のコスト試算(参考)

以下はPreview検証時の体感ベースの試算です。GA後の単価・課金体系は公式のCortex Agentsドキュメントで確認してください。

項目 値
質問数 3(住宅価格トレンド → 都市選定 → トレンド理由)
Cortex Analyst呼び出し 6 msg
Warehouse XS・約3分
Cortex Search 既存サービス利用

試算ではCortex Analystのトークン消費が支配的でした。Tool数、モデル、データ量によって変動するため、本番ではUsage HistoryとResource Budgetsで継続監視するのが確実です。

運用・評価

AI ObservabilityとAgent Evaluations

デプロイ後の挙動は、Snowflake付属のTruLensやSnowsight上のダッシュボードで可視化できます。加えて、Cortex Agent evaluationsがGAとなり、評価データセット、LLM judge、カスタム評価指標による品質管理が可能です(評価実行にもコストが発生します)。

機能 内容
Evaluations LLM-as-a-Judgeによる精度・網羅性・コスト・レイテンシー
Comparison モデル・プロンプト・Tool構成の横並び比較
Tracing 入力、検索、生成SQL、LLM出力のフロー可視化

TruLensのサンプル画面

AI Guardrails

2026年5月14日に、Cortex AI Guardrails support for Snowflake Intelligence and Cortex AgentsがGAとなりました。ハルシネーション、不適切な応答、安全制御の観点から、本番利用前にGuardrailsの設定を検討してください。

デモ

デモとして、以下の一連の質問を行いました。
Q1. "Show housing price trends between 2023 and 2025 by geo-id"
Q2. "Choose 5 Biggest City in Biggest City in the us."
Q3. "Why is it higher trending"
デモ動画(Preview時点の記録): https://x.com/mmjjaadmm/status/1951468478566986157

レイテンシーはTool数、Analyst/Searchの呼び出し回数、Warehouse、モデル、データ量で大きく変わります。検証時は3問で約5分(1問あたり約1分40秒)でしたが、一般化はせず、精度・レイテンシー・コストのトレードオフがあると捉えるのがよいでしょう。

今後改善してほしいこと

より高度な可視化

Data to Chart(Vega-Lite)により、Line/Barに限らないチャート生成が可能になりました。一方で、地図チャートやより高度なBI表現(Scatter、Heatmap、Funnel等)は、今後の拡張に期待したい領域です。

レイテンシーとコストの透明性

PlanningとReflectionにより品質は上がりますが、待ち時間とコストも増えがちです。Tool数やモデル選択を調整しつつ、Resource BudgetsとUsage Historyで運用側が把握しやすいUXの継続改善を期待しています。

Tool権限設計の難しさ

Cortex Searchのowner's rights、Custom Toolの実行ロール、MCP Connector経由の外部Toolなど、Agentにぶら下げる要素ごとに権限モデルが異なります。本番では権限設計がボトルネックになりやすいため、ドキュメントとベストプラクティスの充実を期待しています。

まとめ

Snowflake Intelligenceは、GA後も進化を続けており、

  • 構造化・非構造化データへの自然言語アクセス
  • Cortex AgentsによるTool統合(Analyst、Search、Custom Tool、MCP Connector)
  • Artifactsによる分析結果の保存・共有・再利用
  • Usage History、Resource Budgets、AI Guardrailsによる本番運用

を、比較的短時間で試せる点が大きな価値です。

「Agent UIを簡単に作れる」だけでなく、「会話から生成した分析結果を組織内で再利用できるWorkspace」として捉えると、GA後のSnowflake Intelligenceの位置づけがより明確になると思います。

変更履歴

日付 内容
2025/11/18 Snowflake Intelligence GAに伴い、agentsスキーマの記述を削除
2026/05/28 GA後の仕様、Artifacts、Usage History、Resource Budgets、MCP Connector、AI Guardrailsに関する記述を更新。章立てを再構成
Finatext Tech Blog
Finatext Tech Blog

Discussion