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. 03调整 RAG 回答和索引
  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确认已加载。

详细介绍

AI 搜索 RAG 配置

概述

本技能介绍如何配置和优化 ServiceNow AI 搜索与检索增强生成(RAG):

  • 创建和配置搜索源(知识库、目录项、服务门户内容)
  • 设置定义搜索行为和源优先级的搜索配置文件
  • 配置结果排序和相关性调优,以获得高质量的搜索结果
  • 启用基于 RAG 的答案生成,从检索到的知识内容中生成答案
  • 管理搜索索引和字段配置,以实现最佳检索效果
  • 通过反馈循环和分析调优搜索质量
  • 将 AI 搜索与 Now Assist 和 Virtual Agent 集成

使用时机: 在知识库中设置 AI 搜索、配置 RAG 以根据企业内容生成答案,或优化 ServiceNow 中的搜索结果质量时。

前置条件

  • 角色: admin、search_admin 或 now_assist_admin
  • 插件: com.snc.ai_search(AI 搜索)、com.snc.generative_ai_controller(生成式 AI 控制器)、sn_gen_ai(生成式 AI)
  • 访问权限: sn_ai_search_source、sn_ai_search_profile、sn_gen_ai_config 表
  • 知识: 了解搜索概念(索引、排序、相关性)和知识管理基础知识
  • 相关技能: 对话式 AI 参见 genai/now-assist-qa,知识库内容参见 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 搜索从哪些位置检索内容。

知识库搜索源:

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
}

分块策略指南:

内容类型分块大小重叠原因
短篇知识库文章300-50030-50保留完整的文章上下文
长篇文档500-80050-100平衡上下文与具体性
常见问题内容200-30020-30将问答对放在一起
政策文档800-1200100-150保持章节级上下文
步骤 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结合关键词与语义搜索通用场景(推荐)
步骤 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
}
步骤 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
步骤 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 答案缺少引用gen 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 个 token,启用行内引用
  • **集成:**使用 Virtual Agent 自动生成摘要,并在无法解答时转接人工客服
示例 2:使用 RAG 搜索 HR 政策

为 HR 政策问题配置 AI Search:

  • 来源: HR 知识库(政策文档)、HR 目录(申请表单)
  • 配置文件: HR 专用配置,采用严格的 RAG(temperature 为 0.1,确保政策准确性)
  • 分块: 800 个 token,重叠 100 个 token(保留政策章节的上下文)
  • 字段加权: 政策标题 5.0 倍、章节标题 3.0 倍、正文 1.0 倍
  • 防护措施: 系统提示词要求准确引用政策,并禁止改写法律条文
示例 3:多来源技术知识搜索

配置 AI Search,搜索多个技术知识库:

  • 来源: 基础设施知识库、应用知识库、安全知识库、已解决的事件
  • 配置文件: 技术支持配置,对自然语言查询赋予较高的语义权重(0.7)
  • 分块: 技术文章采用 500 个 token,重叠 50 个 token
  • 排名: 提升近期文章的排名(recency_weight=0.2),以适应不断演进的技术内容
  • 监控: 每周跟踪低评分答案,并针对未命中的内容重新训练

相关技能

  • genai/now-assist-qa - 使用 AI Search 结果的对话式 AI
  • genai/skill-kit-custom - 可调用 AI Search 的自定义技能
  • knowledge/article-generation - 管理为搜索提供内容的知识
  • reporting/executive-dashboard - 构建搜索分析仪表板

评论

支持 Markdown