![[新機能]OmniのAI Skillsでワンクリックで起動できる定型分析を行ってみた](https://images.ctfassets.net/ct0aopd36mqt/4HOwi1sdtoRa4Uys2beuNd/053dbbbb2c9ef51b8ada98776c3e29bf/Omni.png?w=3840&fm=webp)
[新機能]OmniのAI Skillsでワンクリックで起動できる定型分析を行ってみた
さがらです。
OmniのAI機能として、AI Skills(旧称: AI Workflows)がベータ提供されています。モデルファイルのYAMLにskills:セクションを定義するだけで、AI Assistantにワンクリック実行ボタンを追加できる機能です。
実際にAI Skillsを定義・検証してみたので、手順と確認結果をまとめます。
機能概要
AI Skillsは、モデルファイルのYAMLにskills:セクションを定義することで、OmniのAI Assistantにワンクリック実行ボタンを表示できる機能です。
定義したSkillは、AI Assistant画面にボタンとして表示されます。ユーザーがボタンをクリックするだけで、事前に定義した分析クエリやレポートがAIによって実行されます。
主なユースケースとしては以下が挙げられています。
- 標準化されたレポート生成: 定型レポートをワンクリックで出力
- ガイド付きデータ検索: ユーザーに入力を求めてからデータ検索を実行
- データ品質チェック: 欠損値や異常値の検出をワンクリックで実行
- オンボーディングヘルパー: 新しいユーザーがデータを理解するための案内
制限事項
- 2026年3月14日時点ではベータ機能であり、利用にはOmniサポートへの有効化依頼が必要です
- ファイルアップロード機能を使用する場合は、
Query Assistant>File uploadsのAI設定を有効化する必要があります- 対応ファイル形式(アップロード機能使用時): CSV、PDF、JSON、YAML、TXT、画像(PNG、JPEG)
前提条件
AI Skillsは既存のモデルファイルに対して定義します。今回は売上遅延分析Topicに関連するモデルファイルを使用します。
使用するTopicは以下です。このTopicにはai_contextとsample_queriesを設定済みの状態を前提とします。
売上遅延分析Topic(omni_dbt_dwh__fact_order_lifecycle.topic.yaml):
- 注文ライフサイクルファクトと店舗ディメンションを結合
- 売上メトリクス(Total Amount / Shipping Fee / GMV)の分析
- SLA閾値に基づく配送遅延判定と遅延率の計算
ai_contextとsample_queriesを設定済み

事前準備
Omniサポートへの有効化依頼
AI Skillsはベータ機能のため、Omniサポートに連絡して有効化を依頼する必要があります。有効化後、モデルのYAMLファイルでskills:セクションが利用可能になります。
試してみた
1. AI Skillsの YAML定義の書き方
AI SkillsはモデルファイルのYAMLにskills:セクションをルートレベルで追加して定義します。基本構文は以下のとおりです。
skills:
skill_id:
label: ボタンに表示する名前(2-4語推奨)
description: AIが従う具体的な指示(出力形式、フィールド、時間範囲を含める)
input: ユーザーから情報を収集する場合に使用(オプション)
公式Docでは、descriptionにはできるだけ具体的に以下を含めることが推奨されています。
- 使用するフィールド名
- 時間範囲やフィルタ条件
- グループ化の基準
- 出力形式(表、要約、セクション分け等)
- 多段階プロセスの場合は「ステップ1」「ステップ2」のように番号付け
2. 売上遅延分析モデルへのSkill追加
売上遅延分析Topicに関連するモデルファイルに、以下の2つのSkillを追加してみます。
定義するSkill
- 今月の遅延サマリー: 当月のSLA遅延状況をワンクリックで集計
- 店舗別パフォーマンスレポート: 店舗別の売上と遅延率をまとめたレポート
モデルファイルの末尾に以下のskills:セクションを追加します。
skills:
monthly_delay_summary:
label: 今月の遅延サマリー
description: |-
当月の配送遅延状況をサマリーとして出力してください。以下の手順で分析を行ってください。
ステップ1: 当月の全体概況を集計
- 配送完了件数(delivered_count)
- 遅延件数(delayed_count)
- 遅延率(delay_rate)
をそれぞれ集計し、表形式で表示してください。
ステップ2: 店舗別の遅延状況を表示
- dim_storeのstore_nameでグループ化
- 遅延件数の多い順にソート
- 地域別_平均フルフィル日数(region_avg_fulfillment_days)も併せて表示
を表形式で出力してください。
ステップ3: サマリーコメント
上記の結果をもとに、遅延が多い店舗や改善が必要な領域について簡潔にコメントしてください。
store_performance_report:
label: 店舗別パフォーマンス
description: |-
店舗別の売上パフォーマンスと配送品質を分析するレポートを生成してください。
ステップ1: 店舗別の売上サマリー
- dim_storeのstore_nameでグループ化
- total_amountの合計、shipping_feeの合計、GMVを計算
- GMVの降順でソート
を表形式で出力してください。
ステップ2: 店舗別の配送品質
- 各店舗の配送完了件数、遅延件数、遅延率を表示
- 遅延率が高い店舗を強調
を棒グラフと折れ線グラフの二重軸の形式で出力してください。
ステップ3: 総合評価
売上と配送品質の両面から、各店舗のパフォーマンスを総合的にコメントしてください。

Omni上でモデルを更新した後、AI Assistantを開くと、定義したSkillがボタンとして表示されていればOKです。

「今月の遅延サマリー」Skillの実行
今月の遅延サマリーボタンをクリックしてみます。
AIがdescriptionに記載した3ステップの指示に従って、当月の遅延概況→店舗別遅延状況→サマリーコメントの順に分析結果を出力してくれました。




「店舗別パフォーマンス」Skillの実行
続いて、店舗別パフォーマンスボタンをクリックしてみます。
想定通り、売上サマリー→配送品質→総合評価の3ステップで分析結果が表示されました。





3. inputフィールドを使ったSkillの追加(応用)
AI Skillsではinputフィールドを使って、実行前にユーザーから追加情報を収集することもできます。データ品質チェック用のSkillで試してみます。
売上遅延分析のモデルファイルに以下のSkillを追加します。
data_quality_check:
label: データ品質チェック
input: チェック対象の期間を指定してください(例:過去7日間、今月、2026年2月)
description: |-
指定された期間のデータ品質をチェックしてください。
ステップ1: 欠損値チェック
- 指定期間のレコードについて、以下のフィールドのNULL件数を集計
- paid_datetime
- shipped_datetime
- delivered_datetime
- total_amount
を表形式で出力してください。
ステップ2: 異常値チェック
- total_amountが0以下のレコード件数
- shipping_feeが負の値のレコード件数
- total_fulfillment_daysが30日以上のレコード件数
を表形式で出力してください。
ステップ3: ステータス整合性チェック
- order_statusが「配送完了」なのにdelivered_datetimeがNULLのレコード件数
- order_statusが「キャンセル」なのにcancelled_datetimeがNULLのレコード件数
を表形式で出力してください。
ステップ4: 品質スコア
上記の結果をもとに、データ品質の総合的な所見と注意すべきポイントをコメントしてください。
inputフィールドを設定すると、ボタンクリック後にユーザーへ入力を求めるダイアログが表示されます。ユーザーが「今月」などと入力すると、その情報を踏まえてAIが分析を実行します。

「今月」と入れて試してみましたが、ちゃんと「今月(2026年3月)」と認識して分析をしてくれました。





4. 複数inputフィールドの検証
セクション3ではinputフィールドを1つだけ定義しましたが、1つのSkillに複数のinputフィールドを定義して、段階的に条件を絞り込むことはできるのか、公式ドキュメントでは複数inputの段階的収集について明記されていないため、実際に試してみました。
検証結果:inputに段階的に条件を絞り込むことはできませんでした
下図のようにinputフィールド内で複数行に分けて記述してみたところ、Modelファイルの構文エラーが出てしまいました。

代替案: 1つのinputで複数条件をまとめる
この代替案として、1つのinputに複数の条件をまとめて入力してもらう方法を試してみると、うまくいきましたので記載しておきます。
store_deep_dive:
label: 店舗別深掘り分析
input: 分析対象の店舗名と期間を入力してください(例:東京本店、過去30日間)
description: |-
指定された店舗と期間について、詳細な売上・配送パフォーマンスを分析してください。
ステップ1: 指定店舗の売上推移
- 指定期間における月別(または週別)のtotal_amount推移を表示
を折れ線グラフ形式で出力してください。
ステップ2: 指定店舗の遅延分析
- 指定期間における配送完了件数、遅延件数、遅延率を集計
- SLA閾値別の内訳も表示
を「配送完了件数と遅延件数で2軸に分けた棒グラフ」と「遅延率の折れ線グラフ」の二重軸形式で出力してください。
ステップ3: 他店舗との比較
- 指定店舗の遅延率を全店舗平均と比較
を表形式で出力してください。
ステップ4: 所見
上記の結果をもとに、指定店舗のパフォーマンスについて改善提案を含めてコメントしてください。
この方法であれば、ユーザーに複数条件を自由記述で入力してもらうことで同等の結果を得られます。





Skill定義のプラクティス
実際に検証してみて、Skill定義で意識すべきポイントをまとめます。
| ポイント | 説明 |
|---|---|
labelは短く |
ボタンに表示される表記のため、考慮した命名が必要 |
descriptionは具体的に |
使用するフィールド名、ソート順、出力形式まで明示する |
| ステップ番号を付ける | 多段階の分析では「ステップ1」「ステップ2」と番号付けすると、AIが順序どおり実行してくれる |
ai_contextとの連携 |
Topicにai_contextを設定しておくと、Skillのdescriptionで指定しなくてもAIがフィールドの意味を正しく解釈してくれる |
最後に
Omniの新機能である、AI Skillsを試してみました。
AI Skillsの面白いところは、YAMLで定義するだけで、非技術者でもワンクリックで実行できる定型分析ボタンを追加できる点だと感じました。最近LLMを用いたデータ分析を色々試しているのですが、「自然言語で質問を考える」スキルは高度なスキルだと感じているため、分析を定型化して1ボタンで実行できるようにして、結果に対するAIを用いたインサイトも得られる本機能のユーザー体験はとても良かったです。
本機能のユースケースとして、定型レポートに用いることはもちろんですが、inputフィールドと組み合わせてデータ品質の可視化を行うなど、データに関する多様な要望に応えられるとも感じました。
まだ本機能はベータ段階であるため、有効化にOmniサポートへの連絡が必要な点はご注意ください。いずれにせよ、個人的にはとても推せるAI機能ですので、ぜひご活用ください!









