mcpField
A
ai-search-rag

ai-search-rag

github.com/happy-technologies-llc開発4141 回インストール2 日前に更新
リポジトリ

ai-search-rag について

ServiceNow の AI Search と検索拡張生成(RAG)を設定、調整するためのスキルです。コンテンツソース、ランキング、インデックス、回答生成、品質監視を扱います。

主な機能

  1. 01検索対象のコンテンツソース設定
  2. 02検索プロファイルとフィールド重みの設定
  3. 03RAG回答とインデックスの調整
  4. 04検索結果ランキングの設定
  5. 05分析データとフィードバックの監視

活用シーン

  1. 01ナレッジ記事を使ったRAGの設定
  2. 02企業内検索の関連性改善
  3. 03フィードバックによる検索品質の確認

MCP 対応

SN-Query-Table、SN-Create-Record、SN-Update-Record などの ServiceNow MCP ツールで検索設定を調査、管理する方法を説明します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/happy-technologies-llc/happy-platform-skills --skill ai-search-rag

インストール後、Claude Code で/ai-search-ragを入力して読み込まれたか確認します。

詳細

RAG 設定による AI Search

概要

このスキルでは、検索拡張生成(RAG)を使用した ServiceNow AI Search の設定と最適化について説明します。

  • 検索ソース(ナレッジベース、カタログアイテム、サービスポータルのコンテンツ)の作成と設定
  • 検索動作とソースの優先順位を定義する検索プロファイルの設定
  • 質の高い検索結果を得るための結果ランキングと関連性の調整
  • 検索されたナレッジコンテンツから回答を生成する RAG の有効化
  • 最適な検索のための検索インデックスとフィールド設定の管理
  • フィードバックループと分析による検索品質の調整
  • AI Search と Now Assist および Virtual Agent の統合

使用する場面: ナレッジベース全体を対象に AI を活用した検索を設定する場合、エンタープライズコンテンツから生成回答を作成するために RAG を設定する場合、または ServiceNow の検索結果の品質を最適化する場合に使用します。

前提条件

  • ロール: admin、search_admin、または now_assist_admin
  • プラグイン: com.snc.ai_search(AI Search)、com.snc.generative_ai_controller(Generative AI Controller)、sn_gen_ai(Generative AI)
  • アクセス権: sn_ai_search_source、sn_ai_search_profile、sn_gen_ai_config テーブル
  • 知識: 検索の概念(インデックス作成、ランキング、関連性)とナレッジ管理の基本を理解していること
  • 関連スキル: 会話型 AI については genai/now-assist-qa、KB コンテンツについては knowledge/article-generation

手順

ステップ 1:利用可能なナレッジソースを評価する

検索可能にし、RAG で利用できるコンテンツを特定します。

MCP アプローチ:

Use SN-Query-Table on kb_knowledge_base:
  - query: active=true
  - fields: sys_id,title,description,kb_version,active,article_count
  - limit: 20

既存のナレッジ記事を確認します:

Use SN-Query-Table on kb_knowledge:
  - query: workflow_state=published^kb_knowledge_base=<kb_sys_id>
  - fields: sys_id,short_description,kb_knowledge_base,workflow_state,sys_updated_on
  - limit: 20

REST アプローチ:

GET /api/now/table/kb_knowledge_base
  ?sysparm_query=active=true
  &sysparm_fields=sys_id,title,description,active
  &sysparm_limit=20
ステップ 2:検索ソースを作成する

検索ソースは、AI Search がコンテンツを取得する場所を定義します。

ナレッジベース検索ソース:

MCP アプローチ:

Use SN-Create-Record on sn_ai_search_source:
  - name: "IT Knowledge Base"
  - description: "Primary IT support knowledge articles"
  - source_type: "knowledge"
  - source_table: "kb_knowledge"
  - source_condition: "workflow_state=published^kb_knowledge_base=<kb_sys_id>"
  - active: true
  - enable_rag: true
  - rag_content_field: "text"
  - search_fields: "short_description,text,meta"
  - display_fields: "short_description,kb_category,sys_updated_on"

REST アプローチ:

POST /api/now/table/sn_ai_search_source
Body: {
  "name": "IT Knowledge Base",
  "description": "Primary IT support knowledge articles",
  "source_type": "knowledge",
  "source_table": "kb_knowledge",
  "source_condition": "workflow_state=published",
  "active": true,
  "enable_rag": true,
  "rag_content_field": "text"
}

カタログアイテム検索ソース:

Use SN-Create-Record on sn_ai_search_source:
  - name: "Service Catalog Items"
  - description: "Available service catalog offerings"
  - source_type: "catalog"
  - source_table: "sc_cat_item"
  - source_condition: "active=true^hide_sp=false"
  - active: true
  - enable_rag: false
  - search_fields: "name,short_description,description"
  - display_fields: "name,short_description,category"

インシデント解決策検索ソース:

Use SN-Create-Record on sn_ai_search_source:
  - name: "Resolved Incidents"
  - description: "Previously resolved incidents for pattern matching"
  - source_type: "table"
  - source_table: "incident"
  - source_condition: "state=6^close_notes!=NULL^universal_requestISNOTEMPTY"
  - active: true
  - enable_rag: true
  - rag_content_field: "close_notes"
  - search_fields: "short_description,description,close_notes"
ステップ 3:検索プロファイルを設定する

検索プロファイルは、検索するソースと結果のランキング方法を制御します。

MCP アプローチ:

Use SN-Create-Record on sn_ai_search_profile:
  - name: "IT Support Search"
  - description: "Search profile for IT help desk agents and self-service"
  - active: true
  - default_profile: false
  - rag_enabled: true
  - max_results: 10
  - rag_max_sources: 5
  - rag_confidence_threshold: 0.7
  - search_sources: "<kb_source_sys_id>,<catalog_source_sys_id>,<incident_source_sys_id>"

REST アプローチ:

POST /api/now/table/sn_ai_search_profile
Body: {
  "name": "IT Support Search",
  "description": "Search profile for IT help desk agents and self-service",
  "active": true,
  "rag_enabled": true,
  "max_results": 10,
  "rag_max_sources": 5,
  "rag_confidence_threshold": 0.7
}
ステップ 4:検索フィールドの重み付けを設定する

フィールド設定では、関連性スコアへの各フィールドの寄与を制御します。

MCP アプローチ:

Use SN-Create-Record on sn_ai_search_field_config:
  - search_source: "<kb_source_sys_id>"
  - field_name: "short_description"
  - boost_factor: 3.0
  - searchable: true
  - displayable: true
  - order: 100
Use SN-Create-Record on sn_ai_search_field_config:
  - search_source: "<kb_source_sys_id>"
  - field_name: "text"
  - boost_factor: 1.0
  - searchable: true
  - displayable: false
  - order: 200
Use SN-Create-Record on sn_ai_search_field_config:
  - search_source: "<kb_source_sys_id>"
  - field_name: "meta"
  - boost_factor: 2.0
  - searchable: true
  - displayable: false
  - order: 300

ブースト係数の目安:

ブーストレベル値使用例
高3.0-5.0タイトル、短い説明 -- 主な一致フィールド
中1.5-2.5タグ、メタデータ、カテゴリ -- 補助的な一致フィールド
標準1.0本文、全コンテンツ -- 幅広い一致
低0.5コメント、メモ -- 補足情報
ステップ 5:RAG の回答生成を設定する

検索したコンテンツから回答を生成する生成 AI 設定を行います。

MCP アプローチ:

Use SN-Create-Record on sn_gen_ai_config:
  - name: "AI Search RAG Configuration"
  - description: "Controls how RAG generates answers from search results"
  - active: true
  - llm_provider: "now_llm"
  - model: "default"
  - temperature: 0.3
  - max_tokens: 500
  - system_prompt: "You are a helpful IT support assistant. Answer questions using only the provided context. If the context does not contain enough information, say so clearly. Always cite the source article."
  - context_window: 4000
  - enable_citations: true
  - citation_format: "inline"

REST アプローチ:

POST /api/now/table/sn_gen_ai_config
Body: {
  "name": "AI Search RAG Configuration",
  "description": "Controls how RAG generates answers from search results",
  "active": true,
  "llm_provider": "now_llm",
  "temperature": 0.3,
  "max_tokens": 500,
  "enable_citations": true
}

RAG における温度設定の目安:

温度動作使用例
0.0-0.2非常に事実に忠実で、決定的ポリシーの検索、コンプライアンスに関する回答
0.3-0.5バランスが取れており、おおむね事実に忠実IT サポート、トラブルシューティングのガイダンス
0.6-0.8より創造的で、多様な言い回しコンテンツの提案、おすすめ
0.9-1.0非常に創造的RAG には推奨されません
ステップ 6:検索インデックス設定を行う

最適な検索のために、コンテンツのインデックス作成方法を制御します。

MCP アプローチ:

Use SN-Create-Record on sn_ai_search_index:
  - search_source: "<kb_source_sys_id>"
  - name: "KB Article Index"
  - index_type: "full_text"
  - active: true
  - rebuild_schedule: "daily"
  - chunk_size: 500
  - chunk_overlap: 50
  - embedding_model: "default"

REST アプローチ:

POST /api/now/table/sn_ai_search_index
Body: {
  "search_source": "<kb_source_sys_id>",
  "name": "KB Article Index",
  "index_type": "full_text",
  "active": true,
  "rebuild_schedule": "daily",
  "chunk_size": 500,
  "chunk_overlap": 50
}

チャンク分割戦略の目安:

コンテンツタイプチャンクサイズオーバーラップ理由
短い KB 記事300-50030-50記事全体の文脈を保持する
長いドキュメント500-80050-100文脈と具体性のバランスを取る
FAQ コンテンツ200-30020-30Q&A の組み合わせを維持する
ポリシー文書800-1200100-150セクション単位の文脈を維持する
Step 7:結果のランキングを設定する

MCP アプローチ:

Use SN-Create-Record on sn_ai_search_result_config:
  - search_profile: "<profile_sys_id>"
  - name: "IT Support Ranking"
  - ranking_model: "hybrid"
  - semantic_weight: 0.6
  - keyword_weight: 0.3
  - recency_weight: 0.1
  - personalization: true
  - active: true

ランキングモデルのオプション:

モデル説明最適な用途
keyword従来のキーワード/BM25 マッチング完全一致の用語検索、エラーコード
semanticベクトルベースの意味的類似性自然言語での質問
hybridキーワード検索とセマンティック検索の組み合わせ汎用(推奨)
Step 8:Virtual Agent と Now Assist に統合する

AI Search を会話型インターフェイスに接続します。

Virtual Agent の検索ソース:

Use SN-Create-Record on sys_cs_ai_search_source:
  - name: "VA AI Search Integration"
  - search_profile: "<profile_sys_id>"
  - active: true
  - auto_summarize: true
  - fallback_action: "transfer_to_agent"
  - confidence_threshold: 0.65
  - max_results_shown: 3

REST アプローチ:

POST /api/now/table/sys_cs_ai_search_source
Body: {
  "name": "VA AI Search Integration",
  "search_profile": "<profile_sys_id>",
  "active": true,
  "auto_summarize": true,
  "fallback_action": "transfer_to_agent",
  "confidence_threshold": 0.65
}
Step 9:検索品質を監視する

検索分析データを照会して、パフォーマンスを把握します。

MCP アプローチ:

Use SN-Query-Table on sn_ai_search_log:
  - query: search_profile=<profile_sys_id>^sys_created_on>javascript:gs.daysAgo(7)
  - fields: sys_id,query_text,result_count,click_through,feedback_score,rag_generated
  - limit: 50
  - orderBy: sys_created_on
  - orderDirection: desc

RAG の回答品質を追跡します:

Use SN-Query-Table on sn_ai_search_feedback:
  - query: search_profile=<profile_sys_id>^rating<3
  - fields: sys_id,query_text,answer_text,rating,feedback_comment
  - limit: 20
Step 10:調整と最適化を行う

分析データに基づいて、検索設定を調整します。

信頼度しきい値を調整する:

Use SN-Update-Record on sn_ai_search_profile:
  - sys_id: "<profile_sys_id>"
  - rag_confidence_threshold: 0.75

フィールドのブーストを更新する:

Use SN-Update-Record on sn_ai_search_field_config:
  - sys_id: "<field_config_sys_id>"
  - boost_factor: 4.0

インデックスの再構築を開始する:

Use SN-Update-Record on sn_ai_search_index:
  - sys_id: "<index_sys_id>"
  - rebuild_requested: true

ツールの使用方法

ツール目的使用するタイミング
SN-Query-Table既存のソース、プロファイル、分析データを検索する発見と監視
SN-Create-Recordソース、プロファイル、フィールド設定を作成する初期設定と拡張
SN-Update-Recordランキング、しきい値、インデックスを調整する最適化とメンテナンス
SN-Get-Table-Schema設定フィールドを確認する利用可能な設定の把握

ベストプラクティス

  1. ナレッジベースから始めます。主要な RAG ソースとして使用します。構造化され、精選されたコンテンツが含まれているためです
  2. ハイブリッドランキングを使用し、セマンティック検索とキーワード検索を組み合わせて最良の結果を得ます
  3. 最初は保守的な信頼度しきい値(0.7 以上)を設定し、必要な場合にのみ下げます
  4. RAG の Temperature は低く(0.2~0.4)設定し、事実の正確性を保ちます
  5. 引用を有効にし、ユーザーが回答をソース資料と照合できるようにします
  6. コンテンツを適切なサイズに分割します。小さすぎると文脈が失われ、大きすぎると関連性が薄まります
  7. タイトルフィールドの重みを本文の 3~5 倍に設定し、結果の関連性を高めます
  8. クリック率とフィードバックスコアを監視し、品質上の課題を特定します
  9. ナレッジベースの更新後は定期的にインデックスを再構築し、コンテンツを最新の状態に保ちます
  10. 検索ログから実際のユーザークエリを使ってテストし、ランキングの変更を検証します

トラブルシューティング

問題原因解決方法
検索結果が返されない検索ソースが非アクティブ、または一致するコンテンツがないソースがアクティブであり、コンテンツが source_condition と一致することを確認します
RAG の回答が幻覚を含むTemperature が高すぎる、またはコンテキストが不足しているTemperature を下げ、rag_max_sources を増やし、コンテンツの品質を確認します
関連性の低い結果が上位に表示されるフィールドのブーストの重みが正しく設定されていないタイトル/説明のブーストを増やし、本文のブーストを減らします
検索が遅いインデックスが大きい、または検索対象のソースが多すぎるsource_condition の範囲を限定し、chunk_size を最適化し、max_results を減らします
RAG の回答に引用がない生成 AI 設定で引用が有効になっていないsn_gen_ai_config で enable_citations=true を設定します
インデックスが古い再構築スケジュールの頻度が低すぎる手動で再構築するか、rebuild_schedule の頻度を上げます
結果が重複する同じコンテンツが複数のソースからインデックスに登録されているソースの重複排除を追加するか、source_condition フィルターの範囲を狭めます

例

例 1:IT セルフサービスの AI Search

従業員向けセルフサービスポータルに AI Search を設定します:

  • ソース: IT ナレッジベース(公開済みの記事)、サービスカタログ(有効なアイテム)、FAQ ナレッジベース
  • プロファイル: RAG を有効にしたセルフサービス、最大 5 件の結果、信頼度しきい値 0.7
  • ランキング: ハイブリッドモデル、semantic_weight=0.6、keyword_weight=0.3、recency=0.1
  • RAG 設定: Temperature 0.3、最大 500 トークン、インライン引用を有効化
  • 統合: 自動要約を有効にした Virtual Agent、ライブエージェントへのフォールバック
例 2:RAG による HR ポリシー検索

HR ポリシーに関する質問向けに AI Search を設定します。

  • ソース: HR ナレッジベース(ポリシー文書)、HR カタログ(申請フォーム)
  • プロファイル: 厳格な RAG を適用した HR 専用設定(ポリシーの正確性を高めるため、temperature は 0.1)
  • チャンク分割: 800 トークン、オーバーラップ 100(ポリシーのセクションの文脈を保持)
  • フィールドブースト: ポリシータイトル 5.0 倍、セクション見出し 3.0 倍、本文 1.0 倍
  • ガードレール: システムプロンプトでポリシーの正確な引用を要求し、法的文言の言い換えを禁止します
例 3:複数のソースを対象にした技術ナレッジ検索

複数の技術ナレッジベースを対象に AI Search を設定します。

  • ソース: インフラストラクチャ KB、アプリケーション KB、セキュリティ KB、解決済みのインシデント
  • プロファイル: 自然言語クエリ向けに、セマンティックの重みを高くした(0.7)テクニカルサポート設定
  • チャンク分割: 技術記事向けに 500 トークン、オーバーラップ 50
  • ランキング: 変化の速い技術コンテンツに対応するため、新しい記事を優先(recency_weight=0.2)
  • モニタリング: 評価の低い回答を毎週追跡し、見落としをもとに再トレーニングします

関連スキル

  • genai/now-assist-qa - AI Search の結果を利用する会話型 AI
  • genai/skill-kit-custom - AI Search を呼び出せるカスタムスキル
  • knowledge/article-generation - 検索対象となるナレッジコンテンツの管理
  • reporting/executive-dashboard - 検索分析ダッシュボードの構築

コメント