2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Snowflake の公式ガイドをベースに Snowflake Cortex Agents を日本語で試す手順の紹介

2
Last updated at Posted at 2026-10-19

1. 概要

Snowflake の公式ガイド Build a Cortex Agents from Scratch with Snowflake と付属の Notebook をベースに、売上データを分析する Cortex Analyst と、製品ドキュメントを検索する Cortex Search を組み合わせる方法を紹介します。

公式ガイドは英語で書かれていますが、コンテンツの一部を日本語に修正して、日本語での動作を確認します。

Snowflake Cortex Agents の構成

2. 前提条件とライセンス

2.1. 検証環境

Snowflake の Azure 東日本リージョン(AZURE_JAPANEAST)を利用しています。Cortex AI のクロスリージョン推論設定(CORTEX_ENABLED_CROSS_REGION)は ANY_REGION に設定しており、クラウドプロバイダーを問わず、Snowflake がサポートするリージョンで推論リクエストを処理できる構成です。

REGION SNOWFLAKE_VERSION
AZURE_JAPANEAST 10.38.100
key value default level description type
CORTEX_ENABLED_CROSS_REGION ANY_REGION DISABLED ACCOUNT Comma separated list of allowed cortex cross regions. Order does not matter. STRING

image.png

2.2. 本記事のコードのライセンスと改変内容

本記事の第 3 章に掲載する SQL は、Snowflake-Labs の snowflake-demo-notebooks 内の Notebook を改変したものです。元リポジトリのコードは Apache License 2.0 で提供されています。第 3 章で提示するコードは、元の Notebook から一部を改変しています。本記事の解説文は独自に作成しており、公式ガイドの文章を翻訳・転載したものではありません。

参照した Notebook のコミットは 7ad9d60019c754d7c30a07cf55fcfd71e2623751 です。

3. 公式ガイド・Notebook に沿った Cortex Agent の構築

3.1. Notebook のインポートと環境構築

公式 Notebook をダウンロードします。右側にある Download raw file を選択すると、ファイルをダウンロードできます。

image.png

出所: snowflake-demo-notebooks/Build-a-Cortex-Agent-from-Scratch-with-Snowflake/build-a-cortex-agent-from-scratch-with-snowflake.ipynb at main · Snowflake-Labs/snowflake-demo-notebooks · GitHub

Snowsight の Workspace で + Add new -> Upload files を選択し、ダウンロードしたファイルをアップロードします。

image.png

Notebook が表示されることを確認します。

image.png

セル 4 を実行して、データベースなどを作成します。

image.png

セル 6 を下記のように書き換えて、claude-sonnet-5-5 を利用できることを確認します。

-- SELECT SNOWFLAKE.CORTEX.COMPLETE('claude-3-5-sonnet', 'Say hello in one word') AS cortex_test;
SELECT SNOWFLAKE.CORTEX.COMPLETE('claude-sonnet-5-5', 'Say hello in one word') AS cortex_test;

image.png

3.2. サンプルデータの作成

公式 Notebook のセルを実行して、テーブルの作成とデータの挿入を実施します。

Sales

image.png

Inventory

image.png

Product Documentation

セル 17 を下記のように書き換えて、content を日本語にします。

INSERT INTO product_docs (product_name, doc_type, content, last_updated)
VALUES
    ('Laptop Pro', 'specifications',
     'Laptop Proは、15.6インチの4Kディスプレイ、Intel i9プロセッサ、32GBのRAM、1TBのSSDを搭載しています。バッテリー駆動時間は最大12時間です。Thunderbolt 4ポートとWi-Fi 6Eに対応しています。重量は4.2ポンドです。標準保証期間は3年間で、最大5年間まで延長できます。',
     '2024-01-01'),
    ('Laptop Pro', 'troubleshooting',
     'よくある問題と対処方法:1) バッテリーの消耗が早い場合は、バックグラウンドで動作しているアプリを確認し、画面の明るさを下げてください。2) 本体が過熱する場合は、通気口がふさがれていないことを確認し、硬く平らな場所で使用してください。3) 動作が遅い場合は、ソフトウェアの更新を確認し、ディスククリーンアップを実行してください。4) Wi-Fiに問題がある場合は、ネットワークドライバーを更新し、ネットワーク設定をリセットしてください。',
     '2024-01-15'),
    ('Standing Desk', 'specifications',
     '高さを記憶できるメモリー機能付きの電動昇降デスクです。高さの調整範囲は28~48インチです。天板のサイズは60×30インチです。最大耐荷重は300ポンドです。安定性を高めるためにデュアルモーターシステムを採用しています。ケーブル管理用トレーと衝突防止センサーを搭載しています。',
     '2024-01-01'),
    ('Standing Desk', 'assembly',
     '組み立て手順:1) 付属のボルトを使用して脚部をフレームに取り付けます。2) モーターのケーブルをコントロールボックスに接続します。3) 天板をフレームに固定します。4) 電源コードを接続します。5) 操作パネルを使用して高さのプリセットを登録します。組み立て時間の目安は約45分です。必要な工具はプラスドライバーです。',
     '2024-01-10'),
    ('Office Chair', 'specifications',
     'ランバーサポートを備えた人間工学に基づくオフィスチェアです。アームレスト、座面の高さ、リクライニングの反発力を調整できます。背もたれには通気性の高いメッシュ素材を採用しています。座面のサイズは20×19インチです。最大耐荷重は275ポンドです。保証期間はフレームが5年間、張地が2年間です。',
     '2024-01-01'),
    ('Office Chair', 'care',
     'お手入れ方法:メッシュ部分は中性洗剤と水を使用して清掃してください。キャスターには年に1回潤滑剤を塗布してください。6か月ごとにボルトを点検し、必要に応じて締め直してください。最大耐荷重を超えないようにしてください。湿気の少ない乾燥した環境で保管してください。座面が自然に下がる場合は、ガスシリンダーを交換してください。',
     '2024-02-01');

image.png

件数チェック

TABLE_NAME ROW_COUNT
sales 12
inventory 6
product_docs 6

image.png

3.3. 日本語セマンティックビューの作成

物理テーブル名と列名は元の英語のまま使用し、業務上の論理名を日本語で定義します。

-- Modified 2026-10-19: Japanese logical names and CREATE OR ALTER.
CREATE OR ALTER SEMANTIC VIEW
    CORTEX_AGENTS_LAB.TUTORIAL.SALES_SEMANTIC_VIEW
  TABLES (
    sales AS CORTEX_AGENTS_LAB.TUTORIAL.SALES
      PRIMARY KEY (sale_id)
      COMMENT = '小売業の売上明細。1行は1件の販売取引を表す。金額の単位は米ドル。'
  )
  DIMENSIONS (
    sales."商品名" AS product_name
      WITH SYNONYMS = ('製品名', 'product name')
      COMMENT = '販売した商品の名称。例:Laptop Pro、Standing Desk。',
    sales."商品カテゴリ" AS category
      WITH SYNONYMS = ('カテゴリ', '製品カテゴリ')
      COMMENT = '商品の分類。Electronics は電子機器、Furniture は家具。',
    sales."地域" AS region
      WITH SYNONYMS = ('販売地域', '売上地域')
      COMMENT = '販売地域。North America は北米、Europe は欧州、Asia Pacific はアジア太平洋。',
    sales."顧客区分" AS customer_segment
      WITH SYNONYMS = ('顧客セグメント', '顧客種別')
      COMMENT = 'Enterprise は大企業、SMB は中小企業、Consumer は個人。'
  )
  METRICS (
    sales."売上高" AS SUM(total_amount)
      WITH SYNONYMS = ('売上金額', '売上', 'revenue')
      COMMENT = '売上金額の合計。単位は米ドル(USD)。',
    sales."販売数量" AS SUM(quantity)
      WITH SYNONYMS = ('販売個数', '販売数')
      COMMENT = '販売した商品の数量の合計。',
    sales."取引件数" AS COUNT(*)
      WITH SYNONYMS = ('販売取引数', '明細件数')
      COMMENT = '売上明細の行数。顧客数や販売数量ではない。'
  )
  COMMENT = '商品、地域、顧客区分ごとに売上高と販売数量を分析する日本語セマンティックビュー。';

image.png

Agent を介さず、セマンティックビューを直接問い合わせます。

image.png

従来の SEMANTIC_VIEW() 構文に加えて、セマンティックビューを FROM 句で直接参照し、SELECT、GROUP BY、AGG() などを使ってクエリできるようになりました。

SELECT
    AGG(total_sales) AS total_sales,
    AGG(total_quantity) AS total_quantity,
    region
FROM CORTEX_AGENTS_LAB.TUTORIAL.SALES_SEMANTIC_VIEW
GROUP BY
    region
ORDER BY
    total_sales DESC;
SELECT
    AGG(total_sales) AS total_sales,
    AGG(transaction_count) AS transaction_count,
    region,
    category
FROM CORTEX_AGENTS_LAB.TUTORIAL.SALES_SEMANTIC_VIEW
GROUP BY
    region,
    category
ORDER BY
    total_sales DESC;

image.png

3.4. Cortex Search Service の構築

PRODUCT_DOCS.CONTENT を検索対象にします。PRODUCT_NAME と DOC_TYPE は属性として登録し、製品や文書種別で絞り込めるようにします。

image.png

サービスが作成されたら、Agent とは独立して検索します。

SELECT 
  r.value:product_name::STRING AS product_name,
  r.value:doc_type::STRING AS doc_type,
  SUBSTRING(r.value:content::STRING, 1, 100) AS content_preview
FROM TABLE(FLATTEN(
  PARSE_JSON(
    SNOWFLAKE.CORTEX.SEARCH_PREVIEW(
      'CORTEX_AGENTS_LAB.TUTORIAL.PRODUCT_SEARCH_SERVICE',
      '{"query": "ノートパソコンの過熱を解消する方法", "columns": ["content", "product_name", "doc_type"], "limit": 3}'
    )
  )['results']
)) r;
PRODUCT_NAME DOC_TYPE CONTENT_PREVIEW
Laptop Pro troubleshooting よくある問題と対処方法:1) バッテリーの消耗が早い場合は、バックグラウンドで動作しているアプリを確認し、画面の明るさを下げてください。2) 本体が過熱する場合は、通気口がふさがれていないことを確認し
Office Chair care お手入れ方法:メッシュ部分は中性洗剤と水を使用して清掃してください。キャスターには年に1回潤滑剤を塗布してください。6か月ごとにボルトを点検し、必要に応じて締め直してください。最大耐荷重を超えないよう
Standing Desk specifications 高さを記憶できるメモリー機能付きの電動昇降デスクです。高さの調整範囲は28~48インチです。天板のサイズは60×30インチです。最大耐荷重は300ポンドです。安定性を高めるためにデュアルモーターシステ

image.png

-- RAG:Cortex Searchから関連情報を取得し、LLMで回答を生成する
WITH search_results AS (
    SELECT
        r.value:content::STRING AS content
    FROM TABLE(FLATTEN(
        PARSE_JSON(
            SNOWFLAKE.CORTEX.SEARCH_PREVIEW(
                'CORTEX_AGENTS_LAB.TUTORIAL.PRODUCT_SEARCH_SERVICE',
                '{"query": "ノートパソコンの過熱を解消する方法", "columns": ["content"], "limit": 3}'
            )
        )['results']
    )) r
),
context AS (
    SELECT LISTAGG(content, '\n\n') AS combined_context
    FROM search_results
)
SELECT SNOWFLAKE.CORTEX.COMPLETE(
    'claude-sonnet-5-5',
    CONCAT(
        'あなたは製品サポートを担当するアシスタントです。以下に提供されたコンテキストの情報のみを使用して質問に回答してください。',
        'コンテキストに回答に必要な情報が十分に含まれていない場合は、その旨を明確に伝えてください。\n\n',
        'コンテキスト:\n', combined_context, '\n\n',
        '質問:ノートパソコンの過熱を解消するにはどうすればよいですか?\n\n',
        '回答:'
    )
) AS rag_answer
FROM context;
コンテキストには、本体が過熱する場合の対処方法として次の2点が記載されています。

1. **通気口がふさがれていないか確認する**
2. **硬く平らな場所で使用する**

ただし、この記載は「本体」についての一般的な内容で、ノートパソコン専用の手順とは明記されていません。ファンの清掃や冷却パッドの使用など、これ以外の具体的な対処法はコンテキストに含まれていません。上記を試しても改善しない場合は、メーカーのサポート窓口にお問い合わせください。

なお、コンテキストの製品説明は電動昇降デスクに関するものです。お使いのノートパソコンに関する情報は含まれていません。

image.png

3.5. Cortex Agent の作成

初回は、売上の質問を Analyst、製品文書の質問を Search に振り分ける構成を作成します。単一の質問で両方を使う指示は第 5 章で追加します。

CREATE OR REPLACE AGENT CORTEX_AGENTS_LAB.TUTORIAL.TUTORIAL_AGENT
  COMMENT = '売上分析と製品ドキュメント検索の検証用 Agent'
  PROFILE = '{"display_name":"小売業データ分析エージェント"}'
  FROM SPECIFICATION
$$
models:
  orchestration: claude-sonnet-5-5

orchestration:
  tool_not_accessible: reject
  budget:
    seconds: 90
    tokens: 16000

instructions:
  orchestration: >-
    あなたは小売業の売上データと製品ドキュメントを調べるアシスタントである。
    売上高、販売数量、取引件数の質問には Analyst を使用する。
    製品仕様、組み立て方法、トラブルへの対処方法の質問には Search を使用する。
    製品の名称は元の英語名を維持する。
  response: >-
    日本語で簡潔に回答する。数値は Analyst の実行結果、製品情報は Search の
    検索結果を根拠とする。売上金額の単位は USD とする。
    文書から得た情報には利用可能な引用を付ける。
    根拠のない情報を補わず、確認できない場合はその旨を明記する。

tools:
  - tool_spec:
      type: cortex_analyst_text_to_sql
      name: Analyst
      description: 売上高、販売数量、取引件数を商品、地域、顧客区分別に分析する
  - tool_spec:
      type: cortex_search
      name: Search
      description: 製品仕様、組み立て方法、トラブルへの対処方法を製品文書から検索する

tool_resources:
  Analyst:
    semantic_view: CORTEX_AGENTS_LAB.TUTORIAL.SALES_SEMANTIC_VIEW
    execution_environment:
      type: warehouse
      warehouse: COMPUTE_WH
  Search:
    search_service: CORTEX_AGENTS_LAB.TUTORIAL.PRODUCT_SEARCH_SERVICE
    max_results: 3
$$;

3.6. Notebook からの動作確認

Python から Agent に質問し、回答を取得します。

まず、構造化データに関する質問の結果です。

import json
from snowflake.snowpark.context import get_active_session

session = get_active_session()

# 構造化データに関する質問をエージェントに送信する
result = session.sql("""
  SELECT SNOWFLAKE.CORTEX.DATA_AGENT_RUN(
    'CORTEX_AGENTS_LAB.TUTORIAL.TUTORIAL_AGENT',
    $${"messages": [{"role": "user", "content": [{"type": "text", "text": "地域別の売上金額の合計を教えてください。"}]}]}$$
  ) AS resp
""").collect()

resp = json.loads(result[0]["RESP"])

# レスポンスの各コンテンツを解析して表示する
for item in resp.get("content", []):
    item_type = item.get("type")

    if item_type == "thinking":
        print("=== 思考プロセス ===")
        print(item["thinking"]["text"])
        print()

    elif item_type == "tool_use":
        print(f"=== ツール呼び出し: {item['tool_use'].get('name', '')} ({item['tool_use'].get('type', '')}) ===")
        print()

    elif item_type == "tool_result":
        tr = item["tool_result"]
        print(f"=== ツール実行結果: {tr.get('name', '')} ===")
        content_json = tr.get("content", [{}])[0].get("json", {})
        if content_json.get("sql"):
            print(f"生成されたSQL:\n{content_json['sql']}\n")
        if content_json.get("sql_explanation"):
            print(f"SQLの説明: {content_json['sql_explanation']}\n")
        if content_json.get("result_set", {}).get("data"):
            meta = content_json["result_set"].get("resultSetMetaData", {})
            cols = [col["name"] for col in meta.get("rowType", [])]
            data = content_json["result_set"]["data"]
            if cols:
                print(" | ".join(cols))
                print("-" * (len(" | ".join(cols))))
            for row in data:
                print(" | ".join(str(v) for v in row))
            print()

    elif item_type == "text":
        print("=== 最終回答 ===")
        print(item["text"])
        print()
=== ツール呼び出し: Analyst (system_agentic_semantic_context) ===

=== ツール実行結果: Analyst ===
=== ツール呼び出し: system_execute_sql (system_execute_sql) ===

=== ツール実行結果: system_execute_sql ===
生成されたSQL:
WITH __sales AS (
  SELECT
    region,
    total_amount
  FROM CORTEX_AGENTS_LAB.TUTORIAL.SALES
)
SELECT
  region,
  SUM(total_sales) AS total_sales
FROM __sales
GROUP BY
  region
ORDER BY
  total_sales DESC NULLS LAST /* Generated by Cortex */;

=== 最終回答 ===
Metric は集計式で書く必要がある。

=== ツール呼び出し: system_execute_sql (system_execute_sql) ===

=== ツール実行結果: system_execute_sql ===
生成されたSQL:
WITH __sales AS (
  SELECT
    region,
    total_amount
  FROM CORTEX_AGENTS_LAB.TUTORIAL.SALES
)
SELECT
  region,
  SUM(total_amount) AS total_sales
FROM __sales
GROUP BY
  region
ORDER BY
  total_sales DESC NULLS LAST /* Generated by Cortex */;

REGION | TOTAL_SALES
--------------------
North America | 69497.00
Europe | 51498.60
Asia Pacific | 39999.60

=== ツール呼び出し: server_skill (server_skill) ===

=== ツール実行結果: server_skill ===
=== ツール呼び出し: data_to_chart (data_to_chart) ===

=== ツール実行結果: data_to_chart ===
=== 最終回答 ===
地域別の売上金額の合計は次のとおりです(単位: USD)。North America が最も高くなりました。

image.png

続いて、製品ドキュメントに関する質問の結果です。

# 製品ドキュメントに関する質問をエージェントに送信する
result = session.sql("""
  SELECT SNOWFLAKE.CORTEX.DATA_AGENT_RUN(
    'CORTEX_AGENTS_LAB.TUTORIAL.TUTORIAL_AGENT',
    $${"messages": [{"role": "user", "content": [{"type": "text", "text": "ノートパソコンの過熱を解消するにはどうすればよいですか?"}]}]}$$
  ) AS resp
""").collect()

resp = json.loads(result[0]["RESP"])

for item in resp.get("content", []):
    item_type = item.get("type")

    if item_type == "thinking":
        print("=== 思考プロセス ===")
        print(item["thinking"]["text"])
        print()

    elif item_type == "tool_use":
        print(f"=== ツール呼び出し: {item['tool_use'].get('name', '')} ({item['tool_use'].get('type', '')}) ===")
        print()

    elif item_type == "tool_result":
        tr = item["tool_result"]
        print(f"=== ツール実行結果: {tr.get('name', '')} (ステータス: {tr.get('status', '')}) ===")
        print()

    elif item_type == "text":
        print("=== 最終回答 ===")
        print(item["text"])
        print()
=== ツール呼び出し: Search (cortex_search) ===

=== ツール実行結果: Search (ステータス: success) ===

=== 最終回答 ===
製品文書によると、本体が過熱する場合は次の2点を確認してください。

- 通気口がふさがれていないことを確認する。
- 硬く平らな場所で使用する。

文書にはこれ以外の対処方法(清掃やサポートへの連絡など)の記載は確認できませんでした。上記を試しても改善しない場合は、メーカーのサポートに問い合わせてください。

image.png

3.7. (オプション)リソースの削除

公式ガイドには、本手順で作成したリソースを削除する手順が掲載されています。ただし、データベースは削除対象に含まれていないため、別途削除する必要があります。本記事では追加検証を実施するため、リソースを削除しています。

image.png

4. 追加検証: Snowflake CoWork の利用

4.1. Snowflake CoWork に移動

AI & ML -> Snowflake CoWork を選択します。

image.png

Snowflake CoWork(https://ai.snowflake.com/)に移動することを確認します。

image.png

4.2. Snowflake CoWork で質問

Snowflake CoWork に移動したら、小売業データ分析エージェント を選択し、地域別の売上高、販売数量、取引件数を売上高の降順で教えてください。 と入力して質問します。

image.png

回答が表示されることを確認します。

image.png

4.3. Artifacts 機能の確認

回答の表にある Save を選択します。

image.png

Artifacts を選択します。

image.png

保存した表が表示されることを確認します。

image.png

グラフも保存できます。

image.png

image.png

5. 追加検証: Agent Studio の利用

5.1. Agent Studio の表示

Snowsight で AI & ML -> Agents Studio を選択します。

image.png

All agents の 小売業データ分析エージェント(TUTORIAL_AGENT)を選択します。

image.png

作成した Agent が表示されることを確認します。

image.png

image.png

image.png

image.png

image.png

image.png

5.2. Preview で動作確認

Preview を選択します。

image.png

Laptop Pro が過熱する場合の対処方法を、製品文書を根拠に教えてください。 と入力して質問します。

image.png

回答が表示されることを確認します。

image.png

5.3. Observability で動作確認

Observability を選択します。

image.png

FIRST INPUT が Laptop Pro が過熱する場合の対処方法を、製品文書を根拠に教えてください。 の項目を選択します。

image.png

処理内容を確認できます。

image.png

地域別の売上高、販売数量、取引件数を売上高の降順で教えてください。 のスレッドは、下記のように表示されました。

image.png

6. 追加検証: SQL による情報取得

6.1. Agent の情報を取得

DESCRIBE AGENT
    CORTEX_AGENTS_LAB.TUTORIAL.TUTORIAL_AGENT;
項目 値
name TUTORIAL_AGENT
database_name CORTEX_AGENTS_LAB
schema_name TUTORIAL
owner ACCOUNTADMIN
comment 売上分析と製品ドキュメント検索の検証用 Agent
profile {"display_name":"小売業データ分析エージェント"}
agent_spec 下記参照
created_on 2026-10-18 18:49:56.988 -0700
default_version_name LAST
versions ["VERSION$1"]
aliases {"DEFAULT":"VERSION$1","FIRST":"VERSION$1","LAST":"VERSION$1"}

agent_spec の詳細

項目 値
models.orchestration claude-sonnet-5-5
orchestration.budget.seconds 90
orchestration.budget.tokens 16000
orchestration.tool_not_accessible reject
instructions.response 日本語で簡潔に回答する。数値は Analyst の実行結果、製品情報は Search の 検索結果を根拠とする。売上金額の単位は USD とする。 文書から得た情報には利用可能な引用を付ける。 根拠のない情報を補わず、確認できない場合はその旨を明記する。
instructions.orchestration あなたは小売業の売上データと製品ドキュメントを調べるアシスタントである。 売上高、販売数量、取引件数の質問には Analyst を使用する。 製品仕様、組み立て方法、トラブルへの対処方法の質問には Search を使用する。 製品の名称は元の英語名を維持する。
tools[0].tool_spec.type cortex_analyst_text_to_sql
tools[0].tool_spec.name Analyst
tools[0].tool_spec.description 売上高、販売数量、取引件数を商品、地域、顧客区分別に分析する
tools[1].tool_spec.type cortex_search
tools[1].tool_spec.name Search
tools[1].tool_spec.description 製品仕様、組み立て方法、トラブルへの対処方法を製品文書から検索する
tool_resources.Analyst.semantic_view CORTEX_AGENTS_LAB.TUTORIAL.SALES_SEMANTIC_VIEW
tool_resources.Analyst.execution_environment.type warehouse
tool_resources.Analyst.execution_environment.warehouse COMPUTE_WH
tool_resources.Search.search_service CORTEX_AGENTS_LAB.TUTORIAL.PRODUCT_SEARCH_SERVICE
tool_resources.Search.max_results 3
DESCRIBE AGENT
    CORTEX_AGENTS_LAB.TUTORIAL.TUTORIAL_AGENT
->>
WITH spec AS (
    SELECT PARSE_JSON("agent_spec") AS body
    FROM $1
)
SELECT
    body:models:orchestration::STRING AS MODEL,
    body:instructions:system::STRING AS SYSTEM_PROMPT,
    body:instructions:orchestration::STRING AS ORCHESTRATION_INSTRUCTIONS,
    body:instructions:response::STRING AS RESPONSE_INSTRUCTIONS,
    body:instructions AS ALL_INSTRUCTIONS,
    body:orchestration AS ORCHESTRATION_SETTINGS,
    body:tools AS TOOLS,
    body:tool_resources AS TOOL_RESOURCES
FROM spec;
項目 値
MODEL claude-sonnet-5-5
SYSTEM_PROMPT (空欄)
ORCHESTRATION_INSTRUCTIONS あなたは小売業の売上データと製品ドキュメントを調べるアシスタントである。売上高、販売数量、取引件数の質問には Analyst を使用する。製品仕様、組み立て方法、トラブルへの対処方法の質問には Search を使用する。製品の名称は元の英語名を維持する。
RESPONSE_INSTRUCTIONS 日本語で簡潔に回答する。数値は Analyst の実行結果、製品情報は Search の検索結果を根拠とする。売上金額の単位は USD とする。文書から得た情報には利用可能な引用を付ける。根拠のない情報を補わず、確認できない場合はその旨を明記する。
ALL_INSTRUCTIONS 下記参照
ORCHESTRATION_SETTINGS 下記参照
TOOLS 下記参照
TOOL_RESOURCES 下記参照

ALL_INSTRUCTIONS

項目 値
orchestration あなたは小売業の売上データと製品ドキュメントを調べるアシスタントである。売上高、販売数量、取引件数の質問には Analyst を使用する。製品仕様、組み立て方法、トラブルへの対処方法の質問には Search を使用する。製品の名称は元の英語名を維持する。
response 日本語で簡潔に回答する。数値は Analyst の実行結果、製品情報は Search の検索結果を根拠とする。売上金額の単位は USD とする。文書から得た情報には利用可能な引用を付ける。根拠のない情報を補わず、確認できない場合はその旨を明記する。

ORCHESTRATION_SETTINGS

項目 値
budget.seconds 90
budget.tokens 16000
tool_not_accessible reject

TOOLS

項目 値
tools[0].tool_spec.name Analyst
tools[0].tool_spec.type cortex_analyst_text_to_sql
tools[0].tool_spec.description 売上高、販売数量、取引件数を商品、地域、顧客区分別に分析する
tools[1].tool_spec.name Search
tools[1].tool_spec.type cortex_search
tools[1].tool_spec.description 製品仕様、組み立て方法、トラブルへの対処方法を製品文書から検索する

TOOL_RESOURCES

項目 値
Analyst.execution_environment.type warehouse
Analyst.execution_environment.warehouse COMPUTE_WH
Analyst.semantic_view CORTEX_AGENTS_LAB.TUTORIAL.SALES_SEMANTIC_VIEW
Search.max_results 3
Search.search_service CORTEX_AGENTS_LAB.TUTORIAL.PRODUCT_SEARCH_SERVICE

6.2. SNOWFLAKE.LOCAL.GET_AI_OBSERVABILITY_EVENTS

SELECT *
FROM TABLE(SNOWFLAKE.LOCAL.GET_AI_OBSERVABILITY_EVENTS(
    'CORTEX_AGENTS_LAB',
    'TUTORIAL',
    'TUTORIAL_AGENT',
    'CORTEX AGENT'
))
ORDER BY TIMESTAMP DESC;
項目 値
TIMESTAMP 2026-10-19 02:23:51.149
START_TIMESTAMP 2026-10-19 02:23:41.551
TRACE 下記参照
RESOURCE_ATTRIBUTES 下記参照
RECORD_TYPE SPAN
RECORD 下記参照
RECORD_ATTRIBUTES 下記参照
VALUE (空欄)

TRACE

項目 値
span_id a01665e2a3dbaff0
trace_id 4d384235536c41a9c0cdd01d5901211f

RESOURCE_ATTRIBUTES

項目 値
snow.session.id 361679196706194
snow.session.role.primary.id 21557772
snow.session.role.primary.name ACCOUNTADMIN
snow.user.id 215XXX
snow.user.name MANABIANXXXX

RECORD

項目 値
kind SPAN_KIND_INTERNAL
name Agent
status.code STATUS_CODE_OK

RECORD_ATTRIBUTES

項目 値
ai.observability.input_id 870bfc452b4ad11645c12b86cd5d2000
ai.observability.record_id 1de7c36a-1525-44cd-a513-4979532d4c2e
request_id 1de7c36a-1525-44cd-a513-4979532d4c2e
snow.ai.observability.agent.message_id 5518788645
snow.ai.observability.agent.thread_id 21557844
snow.ai.observability.database.id 5518788085
snow.ai.observability.database.name CORTEX_AGENTS_LAB
snow.ai.observability.object.id 21557800
snow.ai.observability.object.name TUTORIAL_AGENT
snow.ai.observability.object.type Cortex Agent
snow.ai.observability.object.version.id 361679196098598
snow.ai.observability.object.version.name LIVE
snow.ai.observability.schema.id 5518789689
snow.ai.observability.schema.name TUTORIAL
snow.ai.observability.span_kind 1

6.3. SNOWFLAKE.ACCOUNT_USAGE.CORTEX_AGENT_USAGE_HISTORY

SELECT
    START_TIME,
    END_TIME,
    DATEDIFF('millisecond', START_TIME, END_TIME)
        AS DURATION_MS,
    REQUEST_ID,
    USER_NAME,
    AGENT_NAME,
    TOKENS,
    TOKEN_CREDITS,
    TOKENS_GRANULAR,
    CREDITS_GRANULAR,
    METADATA
FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_AGENT_USAGE_HISTORY
WHERE AGENT_DATABASE_NAME = 'CORTEX_AGENTS_LAB'
  AND AGENT_SCHEMA_NAME = 'TUTORIAL'
  AND AGENT_NAME = 'TUTORIAL_AGENT'
ORDER BY START_TIME DESC
LIMIT 1;

基本情報

項目 値
START_TIME 2026-10-18 19:23:41.551 -0700
END_TIME 2026-10-18 19:23:51.333 -0700
DURATION_MS 9782
REQUEST_ID 1de7c36a-1525-44cd-a513-4979532d4c2e
USER_NAME MANABIANXXX
AGENT_NAME TUTORIAL_AGENT
TOKENS 68682
TOKEN_CREDITS 0.046476170
TOKENS_GRANULAR 下記参照
CREDITS_GRANULAR 下記参照
METADATA 下記参照

TOKENS_GRANULAR

項目 値
request_id 1de7c36a-1525-44cd-a513-4979532d4c2e
cortex_agents.model claude-sonnet-5-5
cortex_agents.cache_read_input 43518
cortex_agents.cache_write_input 24588
cortex_agents.input 10
cortex_agents.output 566
start_time 2026-10-18 19:23:41.551 -0700

CREDITS_GRANULAR

項目 値
request_id 1de7c36a-1525-44cd-a513-4979532d4c2e
cortex_agents.model claude-sonnet-5-5
cortex_agents.cache_read_input 0.00282867
cortex_agents.cache_write_input 0.0399555
cortex_agents.input 0.000013
cortex_agents.output 0.003679
start_time 2026-10-18 19:23:41.551 -0700

METADATA

項目 値
agent_version_alias null
agent_version_id 25609
agent_version_is_default false
agent_version_name LIVE
ai_functions_credits null
inference_region global
interaction_interface agent_admin_ui
role_id 3
role_name ACCOUNTADMIN
sql_query_credits null
sql_query_warehouses null

CORTEX_AGENT_USAGE_HISTORYビューには、遅延があることに注意してください。

Latency for the view may be up to 1 hour.

出所: CORTEX_AGENT_USAGE_HISTORY view | Snowflake Documentation

このビューのデータ反映には、最大1時間の遅延が発生する場合があります。

上記の翻訳

7. 参考資料

7.1. 公式ガイド・サンプルコード

7.2. オブジェクトの作成・管理

7.3. エージェントの実行・監視

7.4. 料金・クレジット消費

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?