Snowflake Cortex Agentsとは?SQL×検索×LLMで作るAIエージェント入門

Snowflake Cortex Agentsとは?SQL×検索×LLMで作るAIエージェント入門のサムネイル Snowflake
この記事をシェアする𝕏B!FacebookLINEPocket

はじめに:Snowflake Cortex Agentsってなに?

「自然言語で質問したら、社内データベースを見て答えて、さらにPDFのマニュアルも調べて、最終的に人間が読める文章でまとめてくれる」——そんなAIアシスタントを作りたいと思ったことはありませんか?Snowflake Cortex Agentsは、まさにそれをSnowflake上で実現するための機能です。

Cortex Agentsは、これまで個別の機能だったCortex Analyst(自然言語→SQL)Cortex Search(ベクトル検索)、そしてCortex LLM関数を、1つのエージェントとしてまとめて呼び出せる仕組みです。エージェント自身が「この質問にはSQLが必要だな」「これは文書検索した方がいいな」と判断して、複数のツールを順番に使いながら答えを組み立ててくれるのがポイントです。

なぜ「エージェント」が必要なのか?

これまでのSnowflake生成AI機能は、それぞれが「単機能のSQL関数」でした。例えばCortex COMPLETE関数でLLMを呼び出すには「プロンプトを自分で組み立ててSQLを書く」必要がありました。

一方で実際のビジネス質問は、「先月の売上を教えて。あと売上が落ちた理由を契約書PDFから探して」のように構造化データと非構造化データの両方を行き来する複雑なものが多いです。Cortex Agentsは、こうした複合的な質問を1回のリクエストで処理してくれます。

主要コンポーネント

  • Cortex Analyst:テーブルに対する自然言語→SQL変換を担当します。詳しくはCortex Analyst入門記事を参照してください。
  • Cortex Search:PDFやテキストなどの文書に対するベクトル検索を担当します。Cortex Search入門記事もあわせてどうぞ。
  • LLM(Claude/Llamaなど):最終的な回答文の生成や、どのツールを使うかの判断を行います。

使い方:REST APIで呼び出す

Cortex Agentsは、SQL関数ではなくREST APIエンドポイントとして提供されます。具体的には /api/v2/cortex/agent:run にPOSTリクエストを送る形になります。

POST https://<account>.snowflakecomputing.com/api/v2/cortex/agent:run
Authorization: Bearer <JWT_TOKEN>
Content-Type: application/json

{
  "model": "claude-3-5-sonnet",
  "messages": [
    {
      "role": "user",
      "content": [{"type": "text", "text": "先月の売上トップ3商品と、その商品の顧客レビューの傾向を教えて"}]
    }
  ],
  "tools": [
    {"tool_spec": {"type": "cortex_analyst_text_to_sql", "name": "sales_analyst"}},
    {"tool_spec": {"type": "cortex_search", "name": "review_search"}}
  ],
  "tool_resources": {
    "sales_analyst": {"semantic_model_file": "@MY_DB.PUBLIC.STAGE/sales.yaml"},
    "review_search": {"name": "MY_DB.PUBLIC.REVIEW_SEARCH_SVC", "max_results": 5}
  }
}

ポイントは tools 配列で「使えるツール一覧」を渡すことです。エージェントはユーザーの質問内容に応じて、SQLを生成して実行したり、文書を検索したりを自動で判断して順番に呼び出します。

よくあるユースケース

  • 社内ナレッジQ&Aボット:売上テーブル+社内Wikiを横断検索する社内アシスタント。
  • カスタマーサポート支援:顧客の問い合わせ履歴(SQL)と製品マニュアル(検索)を組み合わせて回答案を作成。
  • BIアシスタント:Slack経由で「今週のKPIは?」と聞くだけでグラフ用データと解説文を返す。

注意点

Cortex Agentsは便利な反面、LLMを複数回呼び出すためクレジット消費が大きくなりがちです。本番運用前にリソースモニターで上限を設定しておくと安心ですよ。また、Cortex Analystを使うにはセマンティックモデル(YAMLファイル)の事前準備が必要なので、テーブル設計とあわせて整備していきましょう。

まとめ

Snowflake Cortex Agentsは、SQL生成・ベクトル検索・LLM推論を「自律的に組み合わせて使うAIエージェント」を作れる新しい機能です。データ基盤の中にAIアシスタントを直接組み込めるので、データを外部に出さずに高度な自然言語インターフェースを実装できますよ。まずは小さなセマンティックモデルと検索サービスを用意して、社内向けのチャットボットから試してみるのがおすすめです。

参考リンク

関連記事

この記事をシェアする𝕏B!FacebookLINEPocket