インスタの数字と投稿文の両方に、Cortex Agent で答える
これまでの記事では、セマンティックビューに書いた集計の決まりで、インスタの「数字」に答えさせてきました。ただ、聞きたいことは数字だけではありません。「辛い料理の投稿にはどんなものがある?」のように、投稿の中身を聞きたいこともあります。
そこで、投稿の文章を意味で探す Cortex Search と、数字と文章の両方を使い分ける Cortex Agent を試しました。あわせて、集計を自動で作り直す Dynamic Table も試しています。

集計を自動で作り直す:Dynamic Table
Dynamic Table は、元のデータが変わると、決めた間隔で集計を自動で作り直す表です。インスタの月次の集計(投稿数・リーチ・保存・保存率)を、1日ごとに作り直す設定で作りました。
CREATE DYNAMIC TABLE ORDER_SYSTEM.BLOG_LAB.DT_IG_MONTHLY
TARGET_LAG = '1 day' WAREHOUSE = COMPUTE_WH
AS SELECT post_month, COUNT(*) AS post_count, SUM(reach) AS total_reach, SUM(saved) AS total_saves,
ROUND(DIV0(SUM(saved), SUM(reach)) * 100, 2) AS monthly_save_rate
FROM ORDER_SYSTEM.SEMANTIC_SANDBOX.V_IG_POST_MONTHLY_BASIS GROUP BY post_month;
2026年5〜7月の値は、公開している月次レポートと一致しました(5月:11本・リーチ6,133・保存率0.10%、6月:8本・7,379・0.20%、7月:3本・823・0.36%)。
作るときに「集計が複雑なので、毎回まるごと作り直す(FULL)方式にした」と返ってきました。差分だけを足す方式(INCREMENTAL)は、集計の形によっては選ばれません。
Dynamic Table は、作ったままにしておくと、決めた間隔ごとに計算が動きます。試験が終わったら `ALTER DYNAMIC TABLE … SUSPEND` で止めておきます。
投稿の文章を意味で探す:Cortex Search
Cortex Search は、文章を「言葉が一致するか」ではなく「意味が近いか」で探す機能です。投稿の本文を探せるようにしました。
最初は、投稿を1行ずつにまとめたビューの上に作ろうとして、権限エラーで止まりました。Cortex Search は、元の表の変更を追いかける設定(変更追跡)を使います。このビューの元の表は別のデータベースにあり、作業用の役ではその設定を変えられませんでした。
そこで、試験用の置き場に写しの表を作り、その上に作りました。
CREATE CORTEX SEARCH SERVICE ORDER_SYSTEM.BLOG_LAB.IG_CAPTION_SEARCH
ON caption ATTRIBUTES post_kind, post_month
WAREHOUSE = COMPUTE_WH TARGET_LAG = '1 day'
AS SELECT id, caption, post_kind, post_month, title, permalink, reach, saved
FROM ORDER_SYSTEM.BLOG_LAB.IG_POSTS_COPY;
探した結果です。
| 探した言葉 | 上位に出た投稿 |
|---|---|
| 辛い料理 | 麻婆豆腐、玉子と豚肉の鬼唐辛子炒め |
| お酒に合う一品 | 「迷った時のもう一品なら”コレ”」などのおつまみの投稿 |
| 休みのお知らせ | 冬休み・夏休みのお知らせ、営業日のお知らせ |
「辛い」という言葉が本文に無くても、麻婆豆腐や唐辛子炒めが出てきました。意味で探せているのが分かります。
数字と文章を使い分ける:Cortex Agent
Cortex Agent は、質問に合わせて道具を選んで答える仕組みです。道具を2つ持たせました。
- 数字の道具:セマンティックビュー(Cortex Analyst)。保存率・リーチ・本数・目標の判定
- 文章の道具:上の Cortex Search。投稿の中身
作ったエージェントは、Snowsight の「AI と ML」→「Agent Studio」に並びます。

開くと、設定(Configuration)と、その場で質問できるプレビュー(Preview)があります。今回は作業用の役で作り、管理者の役で開いたので「表示のみ」と出ました。設定は変えられませんが、プレビューで質問はできます。

手元のプログラムから API で3つの質問をしました。
| 質問 | 使った道具 | 時間 | 答え |
|---|---|---|---|
| 2026年6月の保存率は?目標に届いた? | 数字 | 約14秒 | 0.20%。短期目標0.7%には届かず、判定は「改善中」 |
| 辛い料理の投稿にはどんなものがある? | 文章 | 約12秒 | 麻婆茄子麺・特製麻婆豆腐・麻婆茄子チーズ丼 |
| 6月にリーチが一番多かった投稿は何の料理?過去にもあった? | 数字と文章(SQL も自分で4回流した) | 約30秒 | 天津丼。過去にも30本あった |
1問目と2問目は、道具を1つだけ選び、正しく答えました。3問目は、数字の道具でリーチ最大の投稿を出し、文章の道具で中身を確かめ、さらに自分で SQL を書いて数えています。答えの最後に「どの道具で何を調べたか」を書くよう指示しておいたので、調べ方も分かりました。
同じ3問目を、画面のプレビューでも聞きました。

答えは API と同じで「天津丼。過去にタイトルに天津丼が入る投稿が30本」でした。画面では「思考ステップ」を開くと、途中で何を考えたかが見えます。そこには「検索の結果に日付が無いので、数字の道具でタイトルが天津丼に合うものを引く」と書かれていました。
答えの最後には、頼んでいない「毎月決まった日に自動でまとめる」話も付いていました。聞いたことに無い提案を足してくることがあります。
エージェントが黙って決めた数え方
3問目の「過去にも30本」を、自分で数え直しました。
- 題名に「天津丼」が入っている投稿:30本(2018年6月〜2024年8月)
- 題名には無いが、本文で天津丼に触れている投稿:ほかに9本(一番新しいのは2025年5月)
エージェントは、「題名に入っているもの」で数えていました。画面の思考ステップのとおり、文章の検索結果に日付が無かったため、数字の道具で題名を引いたのです。数え方としては間違いではありません。ただ、そう決めたことを答えの本文には書いていませんでした。そのため「直近は2024年8月の投稿」という答えも、本文まで見れば違います。
道具をいくつも組み合わせるほど、途中でどう決めたかが見えにくくなります。数え方が分かれそうな質問では、「題名と本文のどちらで数えたか」を答えに書くよう、エージェントへの指示に足しておくのがよさそうです。
まとめ
- Dynamic Table で集計を自動で作り直せる。公開レポートと一致した。使わないときは止めておく
- Cortex Search は意味で探せるが、元の表の変更追跡を使う。権限が無い表は、写しを作ってその上に作る
- Cortex Agent は数字と文章を使い分けて答える。ただ、数え方を黙って決めることがある。決め方を答えに書かせる指示を足す

