AI Search with RAG Configuration
SkillSearchConfigure retrieval-augmented AI search, including sources, indexing, ranking, answer generation, and search quality tuning.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the AI Search with RAG Configuration skill
What this skill tells your AI
The instructions your AI receives, as published by happy-technologies-llc/happy-platform-skills in skills/genai/ai-search-rag/SKILL.md and read by ahel’s review.
Overview
This skill covers configuring and optimizing ServiceNow AI Search with Retrieval Augmented Generation (RAG):
- Creating and configuring search sources (knowledge bases, catalog items, service portal content)
- Setting up search profiles that define search behavior and source priorities
- Configuring result ranking and relevance tuning for quality search results
- Enabling RAG-based answer generation from retrieved knowledge content
- Managing search indexes and field configurations for optimal retrieval
- Tuning search quality through feedback loops and analytics
- Integrating AI Search with Now Assist and Virtual Agent
When to use: When setting up AI-powered search across knowledge bases, configuring RAG for generative answers from enterprise content, or optimizing search result quality in ServiceNow.
Prerequisites
- Roles:
admin,search_admin, ornow_assist_admin - Plugins:
com.snc.ai_search(AI Search),com.snc.generative_ai_controller(Generative AI Controller),sn_gen_ai(Generative AI) - Access: sn_ai_search_source, sn_ai_search_profile, sn_gen_ai_config tables
- Knowledge: Understanding of search concepts (indexing, ranking, relevance), knowledge management basics
- Related Skills:
genai/now-assist-qafor conversational AI,knowledge/article-generationfor KB content
Procedure
Step 1: Assess Available Knowledge Sources
Identify what content should be searchable and available for RAG.
MCP Approach:
Use SN-Query-Table on kb_knowledge_base:
- query: active=true
- fields: sys_id,title,description,kb_version,active,article_count
- limit: 20
Check existing knowledge articles:
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 Approach:
GET /api/now/table/kb_knowledge_base
?sysparm_query=active=true
&sysparm_fields=sys_id,title,description,active
&sysparm_limit=20
Step 2: Create Search Sources
Search sources define where AI Search retrieves content from.
Knowledge Base Search Source:
MCP Approach:
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 Approach:
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"
}
Catalog Item Search Source:
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"
Incident Solutions Search Source:
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"
Step 3: Configure Search Profiles
Search profiles control which sources are searched and how results are ranked.
MCP Approach:
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 Approach:
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
}
Step 4: Configure Search Field Weighting
Field configurations control how different fields contribute to relevance scoring.
MCP Approach:
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
Boost factor guidelines:
| Boost Level | Value | Use Case |
|---|---|---|
| High | 3.0-5.0 | Title, short description -- primary match fields |
| Medium | 1.5-2.5 | Tags, metadata, categories -- supporting match fields |
| Standard | 1.0 | Body text, full content -- broad matching |
| Low | 0.5 | Comments, notes -- supplementary information |
Step 5: Configure RAG Answer Generation
Set up the generative AI configuration for producing answers from retrieved content.
MCP Approach:
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 Approach:
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
}
Temperature guidelines for RAG:
| Temperature | Behavior | Use Case |
|---|---|---|
| 0.0-0.2 | Very factual, deterministic | Policy lookups, compliance answers |
| 0.3-0.5 | Balanced, mostly factual | IT support, troubleshooting guidance |
| 0.6-0.8 | More creative, varied phrasing | Content suggestions, recommendations |
| 0.9-1.0 | Highly creative | Not recommended for RAG |
Step 6: Set Up Search Index Configuration
Control how content is indexed for optimal retrieval.
MCP Approach:
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 Approach:
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
}
Chunking strategy guidelines:
| Content Type | Chunk Size | Overlap | Rationale |
|---|---|---|---|
| Short KB articles | 300-500 | 30-50 | Preserve complete article context |
| Long documentation | 500-800 | 50-100 | Balance context with specificity |
| FAQ content | 200-300 | 20-30 | Keep Q&A pairs together |
| Policy documents | 800-1200 | 100-150 | Maintain section-level context |
Step 7: Configure Result Ranking
MCP Approach:
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
Ranking model options:
| Model | Description | Best For |
|---|---|---|
| keyword | Traditional keyword/BM25 matching | Exact term searches, error codes |
| semantic | Vector-based semantic similarity | Natural language questions |
| hybrid | Combined keyword + semantic | General-purpose (recommended) |
Step 8: Integrate with Virtual Agent and Now Assist
Connect AI Search to conversational interfaces.
Virtual Agent Search Source:
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 Approach:
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: Monitor Search Quality
Query search analytics to understand performance.
MCP Approach:
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
Track RAG answer quality:
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: Tune and Optimize
Based on analytics, adjust search configuration.
Adjust confidence threshold:
Use SN-Update-Record on sn_ai_search_profile:
- sys_id: "<profile_sys_id>"
- rag_confidence_threshold: 0.75
Update field boosting:
Use SN-Update-Record on sn_ai_search_field_config:
- sys_id: "<field_config_sys_id>"
- boost_factor: 4.0
Trigger index rebuild:
Use SN-Update-Record on sn_ai_search_index:
- sys_id: "<index_sys_id>"
- rebuild_requested: true
Tool Usage
| Tool | Purpose | When to Use |
|---|---|---|
| SN-Query-Table | Find existing sources, profiles, analytics | Discovery and monitoring |
| SN-Create-Record | Create sources, profiles, field configs | Initial setup and expansion |
| SN-Update-Record | Tune ranking, thresholds, rebuild indexes | Optimization and maintenance |
| SN-Get-Table-Schema | Discover configuration fields | Understanding available settings |
Best Practices
- Start with knowledge bases as the primary RAG source -- they have structured, curated content
- Use hybrid ranking combining semantic and keyword search for best results
- Set conservative confidence thresholds (0.7+) initially and lower only if needed
- Keep temperature low (0.2-0.4) for RAG to maintain factual accuracy
- Enable citations so users can verify answers against source material
- Chunk content appropriately -- too small loses context, too large dilutes relevance
- Boost title fields 3-5x over body text for better result relevance
- Monitor click-through rates and feedback scores to identify quality gaps
- Rebuild indexes regularly after knowledge base updates for fresh content
- Test with real user queries from search logs to validate ranking changes
Troubleshooting
| Issue | Cause | Resolution |
|---|---|---|
| No search results returned | Search source inactive or no matching content | Verify source is active and content matches source_condition |
| RAG answer is hallucinated | Temperature too high or insufficient context | Lower temperature, increase rag_max_sources, verify content quality |
| Irrelevant results ranked high | Field boost weights misconfigured | Increase boost on title/description, decrease on body text |
| Search is slow | Large index or too many sources searched | Limit source_condition scope, optimize chunk_size, reduce max_results |
| RAG answer missing citations | Citations not enabled in gen AI config | Set enable_citations=true in sn_gen_ai_config |
| Index out of date | Rebuild schedule too infrequent | Trigger manual rebuild or increase rebuild_schedule frequency |
| Duplicate results | Same content indexed from multiple sources | Add source deduplication or narrow source_condition filters |
Examples
Example 1: IT Self-Service AI Search
Configure AI Search for employee self-service portal:
- Sources: IT Knowledge Base (published articles), Service Catalog (active items), FAQ knowledge base
- Profile: Self-service with RAG enabled, max 5 results, confidence threshold 0.7
- Ranking: Hybrid model, semantic_weight=0.6, keyword_weight=0.3, recency=0.1
- RAG Config: Temperature 0.3, max 500 tokens, inline citations enabled
- Integration: Virtual Agent with auto-summarize, fallback to live agent
Example 2: HR Policy Search with RAG
Configure AI Search for HR policy questions:
- Sources: HR Knowledge Base (policy documents), HR Catalog (request forms)
- Profile: HR-specific with strict RAG (temperature 0.1 for policy accuracy)
- Chunking: 800 tokens with 100 overlap (preserves policy section context)
- Field Boost: Policy title 5.0x, section headers 3.0x, body 1.0x
- Guardrails: System prompt requires exact policy citations, prohibits paraphrasing legal language
Example 3: Multi-Source Technical Knowledge Search
Configure AI Search across multiple technical knowledge bases:
- Sources: Infrastructure KB, Application KB, Security KB, resolved incidents
- Profile: Technical support with high semantic weight (0.7) for natural language queries
- Chunking: 500 tokens with 50 overlap for technical articles
- Ranking: Boost recent articles (recency_weight=0.2) for evolving tech content
- Monitoring: Track low-rated answers weekly, retrain on misses
Related Skills
genai/now-assist-qa- Conversational AI that consumes AI Search resultsgenai/skill-kit-custom- Custom skills that can invoke AI Searchknowledge/article-generation- Managing the knowledge content that feeds searchreporting/executive-dashboard- Building search analytics dashboards
Signals
- GitHub stars
- 38
- Forks
- 13
- Last commit
- Jul 2026
Advanced
- Catalog kind
- skill
- Gateway key
ai-search-rag- Source
- github.com/happy-technologies-llc/happy-platform-skills