はじめに(背景・目的)
クラウドネイティブなDWHサービスであるSnowflakeですが, ただデータをため込むだけのサービスに留まらず,
データを活用していくための機能の拡充も実施してます.
近年AI関連の発展が著しいですが, Snowflakeも同様に力を入れています.
その一環としてSnowflakeのAI機能の1つであるCortexシリーズが挙げられます.
このCortexシリーズ(の一部)について実際に検証や開発で一通り体験しましたので,
各々の特徴等をまとめたいと思います.
利用のフロー図
Cortex Agent, Analyst, Searchを対象に
機能の公開方法と実装すべき機能を判断するフローチャートを組んでみました.
準備した機能の公開方法や,
AIを利用して解決したい課題に対してどの機能を利用すればいいのか?
と言った疑問に対する答えになれば幸いです.
利用したCortexシリーズの紹介
以下サービスの概要をまとめました.
- Cortex Agent
- Cortex Analyst
- Cortex Search
- Cortex AI Functions
- Cortex Code
以降の機能は厳密にはCortexシリーズではありません.
しかし, 機能の公開・利用をサポートしてくれるツールとなりますので併せて紹介します.
- Snowflake Intelligence
- MCPサーバー
Cortex Agent
- Snowflakeが提供するエージェント機能です.
- コードの記載は一切不要でGUIで設定をするだけですぐ作成・利用可能な状態となります.
- 各種インストラクションを記載することにより, エージェントの挙動もカスタマイズすることが可能です.
- ツールとして各種機能を登録することにより,
エージェントがこなすことのできるタスクが拡張されます. - 構造化データの分析のためにCortex Analystを,
非構造化データの検索のためにCortex Searchを,
その他の機能をカスタムツールとして登録可能です. - Snowflake IntelligenceやMCPサーバー経由で公開・利用することができます.
Cortex Analyst
- 構造化データの分析およびその結果を基にした回答をする機能です.
- 本機能もGUIで作成可能となります.
- Cortex AnalystはSemanticView(データのビジネス視点での解釈等を記載した論理テーブルのようなオブジェクト)を利用しデータを理解し, SQLの実行までしてくれます.
- SemanticViewにはCortex Agentと同様インストラクションを設定することが可能です.
- 記載をしておくと, Cortex Analystにビジネス用語の意味を教えることができ,
結果SQL生成の精度を向上させる事が可能です. - 他にもSemanticViewに検証済みクエリと呼ばれる,
問い合わせに対して生成すべきクエリを事前に定義しておくことも可能です.
例:Q.XX年月売り上げについて教えて. ⇒ A.SELECT COLa ・・・ - MCPサーバー経由で公開・利用することができます.
Cortex Search
- ドキュメント検索機能です. 本機能もGUIで作成可能となります.
- 以下のような検索が実施可能です.
- 質問の意味を類推し検索するベクトル検索
- 単語や文章が一致するかを検索するテキスト検索
- 検索結果をフィルタリングやランキングする機能もあります.
- SnowflakeのテーブルまたはViewを対象として検索に利用する列を指定をするだけで
自動的に検索機能を作成してくれます. - こういった検索機能を準備する際本来であればベクトル化作業も必要ですが,
Cortex Searchでは利用する埋込モデルを指定するだけで, それら作業も自動で実施してくれます. - MCPサーバー経由で公開・利用することができます.
Cortex AI Functions(AI_SQL)
-
翻訳, テキスト・画像分類, 感情情報の抽出, ドキュメントの解析等のAI機能を
SQLライクに利用することのできる機能です. -
アプリケーション等からテーブルのデータを取得する際
SELECT文をはじめとしたSQLを記載すると思いますが,
それと同じような感覚でAI機能を利用することが可能です.
例:製品レビューの要約とカテゴライズをしたいSELECT "製品レビュー" , AI_TRANSLATE(SNOWFLAKE.CORTEX.SUMMARIZE("製品レビュー"), 'en', 'ja') AS "レビュー要約" , AI_SENTIMENT("製品レビュー") AS "レビューカテゴリー" ;実行結果
製品レビュー レビュー要約 レビューカテゴリー 夏は結局・・・購入しちゃいました。 その人は暑くて不快な夏を過ごしていましたが、・・・、結局もう一つを購入しました。 { "categories": [ { "name": "overall", "sentiment": "mixed" } ] } サイズは・・・ちょうど良かったです。・・・疲れないので・・・。 自分に合ったサイズを選びました。・・・万能で快適、長時間利用しても疲れないです。 { "categories": [ { "name": "overall", "sentiment": "positive" } ] } 購入しましたが… だったら絶対購入しないです。 ・・・を購入しましたが、目立ってしまいます。・・・たら購入しなかったでしょう。 { "categories": [ { "name": "overall", "sentiment": "negative" } ] } -
SnowlflakeネイティブのサービスですとStreamlitやNotebook等のサービスから呼び出して利用したりします.
Cortex Code
- Snowflakeが提供するエージェント機能です.
- Cortex Agentとの違いについて, こちらは完全にSnowflakeが管理・提供するサービスとなりますので,
ユーザーはエージェントのカスタマイズは不可能となります.
※利用するモデルを指定する程度であれば変更可能 - Snowsight(SnowflakeのWebInterface)上で利用します.
- 利用の一例として記載したクエリの構文に間違いが無いか確認に利用できます.
- 確認後必要に応じてエージェントがクエリの修正まで実施します.
例:Cotex Codeにクエリの誤りを修正させる
Snowflake Intelligence
-
エージェント利用の窓口となります.
-
本機能はCortex Agentの公開に特化した機能となります.
-
Cortex Agentを作成後公開する場合, 本機能を利用して公開するか
もしくは以下記載のMCPサーバー経由での公開となります. -
本機能を利用して公開する場合, 以下のメリットがあります.
- Cortex Agent作成後設定画面でエージェント公開を押下するだけで公開・非公開を簡単に設定可能.
- 本機能で公開したエージェントはSnowflake Intelligence画面で簡単に見つけることが可能.
例:Snowflake Intelligence画面で公開されているエージェントを確認する.

例:Snowflake Intelligence画面でエージェントへ問い合わせてみる.

MCPサーバー
- 一般的なMCP機能をSnowflakeのサービスとして提供する機能です.
- Cortex Agent, Analyst, Search, その他(UDF, ストアド)ツール, SQL実行ツール, の公開が出来ます.
- Snowflake外部MCPサーバーとの接続も可能です.
- Snowflake管理のMCPサーバーを利用することにより,
インフラ管理をSnowflakeに任せることが出来ますし, 権限管理もSnowflakeにまとめることが出来ます.
例:Snowflake MCPサーバーを作成し, Cortex Agent, Analystを公開する.例:公開したMCPサーバーをCortex Agentのツールとして登録する.CREATE OR REPLACE MCP SERVER TEST_MCP_SERVER_001 COMMENT = '検証用作成' FROM SPECIFICATION $$ tools: - name: "AGENT_SUPPORT" type: "CORTEX_AGENT_RUN" identifier: "AI.AGENT.AGENT_SUPPORT" title: "汎用エージェント" description: "一般的なタスク遂行をサポートする." $$ tools: - name: "ANALYST_URIAGE" type: "CORTEX_ANALYST_MESSAGE" identifier: "AI.ANALYST.ANALYST_URIAGE" title: "売上分析ツール" description: "売り上げを分析するために利用する." ;
※当然Cortex Agent以外からも利用できます.
SnowflakeのAI機能を利用するメリット(利用してみての所感)
最後に上記で紹介したSnowflakeのAI機能を利用するメリットをいくつか記載します.
-
データをSnowflake外部に持ち出さなくて済む.
AI関連の機能を提供する際, 機能がアクセスするデータの管理は避けては通れない課題になるかと思います.
Cortexシリーズを利用すればSnowflakeの管理・提供する機能のみで,
AI関連の一通りの機能実装やタスクを実施することが出来ます.
この時, データへのアクセス権限等はすべてSnowflakeの権限機能(ロール)のみで管理が可能となりますし,
基本的にデータがSnowflake外部に流出することもございません. -
AI利用関連のコスト管理をSnowlflakeでまとめることができる.
Snowflakeではコスト管理と呼ばれる画面を利用しGUIでコスト消費状況の確認が可能です.
例:コスト確認画面でAI関連のクレジット消費量を確認する

他にも, Accout Usageと呼ばれるViewを利用することにより各AI機能の利用した際の詳細も確認可能です.
例:CORTEX_AISQL_USAGE_HISTORYでAI_SQL実行時の利用したモデルやトークン, トークンによるクレジット消費量を確認する.SELECT AI_SQL_USAGE.USAGE_TIME AS USAGE_TIME , AI_SQL_USAGE.MODEL_NAME AS MODEL_NAME , AI_SQL_USAGE.FUNCTION_NAME AS FUNCTION_NAME , AI_SQL_USAGE.TOKENS AS TOKENS , AI_SQL_USAGE.TOKEN_CREDITS AS TOKEN_CREDITS , Q_HISTORY.WAREHOUSE_NAME AS WAREHOUSE_NAME FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_AISQL_USAGE_HISTORY AS AI_SQL_USAGE LEFT OUTER JOIN SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY AS Q_HISTORY ON AI_SQL_USAGE.QUERY_ID = Q_HISTORY.QUERY_ID WHERE AI_SQL_USAGE.USAGE_TIME BETWEEN '2026-01-01' AND CURRENT_DATE() ORDER BY USAGE_TIME ;実行結果
USAGE_TIME MODEL_NAME FUNCTION_NAME TOKENS TOKEN_CREDITS WAREHOUSE_NAME 2026-01-01 08:00:00.000 +0900 claude-3-5-sonnet AI COMPLETE 232193 0.546151500 WH_XXX 2026-01-05 17:00:00.000 +0900 snowflake-arctic AI Complete 79 0.000066360 WH_YYY 2026-01-08 15:00:00.000 +0900 TRANSLATE 20 0.000030000 WH_ZZZ -
Cortex Agentの作成・公開管理までノーコード・ローコードで対応可能
上記機能の紹介で記載した通り,
Cortex AgentそしてAgentが利用するツールであるAnalyst, SearchはGUIで作成可能となります.
エージェント作成は「試しに作成してみて, 利用者の評価を受けて機能をブラッシュアップ(チューニング)していく」というアジャイルチックな開発をすることが多いかとおもいます.
そういった際, GUIで簡単に設定を変更できるのは大きなメリットになるかとおもいます.
また, Snowflake IntelligenceやMCPサーバーを利用することにより,
機能の公開についても素早く対応することが可能です.