mcpField
C
content-recommendation

content-recommendation

github.com/happy-technologies-llc生产力4141 次安装2 天前更新
代码仓库

关于 content-recommendation

面向 ServiceNow 事件、客户服务案例和用户问题的知识文章推荐技能。它结合分类、关键词、历史解决记录及文章质量信号筛选内容,并支持将推荐附加到记录。

主要功能

  1. 01从事件或案例提取上下文
  2. 02按分类和关键词搜索文章
  3. 03查找相似已解决事件使用的文章
  4. 04结合评分、浏览量和更新时间排序
  5. 05将推荐文章及理由写入记录

适用场景

  1. 01为正在处理的事件查找解决文章
  2. 02为客户服务案例推荐知识内容
  3. 03构建自动化文章推荐工作流

MCP 相关

通过 SN-Query-Table 和 SN-Natural-Language-Search 搜索事件及知识文章,并用 SN-Update-Record 或 SN-Add-Work-Notes 记录推荐。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/happy-technologies-llc/happy-platform-skills --skill content-recommendation

安装后在 Claude Code 中输入/content-recommendation确认已加载。

详细介绍

知识内容推荐

概述

此技能提供了一种结构化方法,用于在 ServiceNow 中为正在处理的事件、案例或用户查询推荐相关知识文章。有效的知识推荐可以缩短解决时间、提高首次联系解决率,并提升自助服务的使用率。

此技能可帮助你:

  • 从事件或案例描述中提取关键词和上下文,构建有针对性的搜索
  • 通过类别匹配、关键词重叠和自然语言搜索查询知识库
  • 根据浏览量、评分、近期程度和历史解决模式对候选文章进行相关性排序
  • 找出之前用于解决类似事件的文章
  • 将推荐文章附加到事件或案例记录,并添加上下文说明

适用场景: 对事件/案例进行分流或处理时、用户就某个主题寻求帮助时,或构建自动化推荐工作流时。

先决条件

  • 角色: 具有 itil、sn_customerservice_agent 或 knowledge 角色,以获得读取权限
  • 访问权限: 对 kb_knowledge、incident、sn_customerservice_case、m2m_kb_task、kb_use 和 kb_feedback 表具有读取权限
  • 插件: 已启用 com.glideapp.knowledge(知识管理)
  • 知识: 熟悉所在组织的知识库结构、类别和标记约定

操作步骤

第 1 步:从事件或案例中提取上下文

获取事件或案例详情,以了解问题背景。

使用 MCP:

Tool: SN-Query-Table
Parameters:
  table_name: incident
  query: number=INC0012345
  fields: sys_id,number,short_description,description,category,subcategory,cmdb_ci,assignment_group,impact,urgency,close_notes
  limit: 1

使用 REST API:

GET /api/now/table/incident?sysparm_query=number=INC0012345&sysparm_fields=sys_id,number,short_description,description,category,subcategory,cmdb_ci,assignment_group,impact,urgency,close_notes&sysparm_limit=1

对于 CSM 案例:

Tool: SN-Query-Table
Parameters:
  table_name: sn_customerservice_case
  query: number=CS0045678
  fields: sys_id,number,short_description,description,product,category,account,contact,priority
  limit: 1
第 2 步:按类别匹配搜索知识

使用事件的类别和子类别,在相同知识领域中查找文章。

使用 MCP:

Tool: SN-Query-Table
Parameters:
  table_name: kb_knowledge
  query: workflow_state=published^kb_category.label=Network^active=true
  fields: sys_id,number,short_description,kb_knowledge_base,kb_category,sys_view_count,rating,sys_updated_on,author
  limit: 15

使用 REST API:

GET /api/now/table/kb_knowledge?sysparm_query=workflow_state=published^kb_category.label=Network^active=true&sysparm_fields=sys_id,number,short_description,kb_knowledge_base,kb_category,sys_view_count,rating,sys_updated_on,author&sysparm_limit=15
第 3 步:按关键词匹配搜索知识

从事件的简短描述和描述中提取关键词,然后搜索包含这些词语的文章。

使用 MCP:

Tool: SN-Query-Table
Parameters:
  table_name: kb_knowledge
  query: workflow_state=published^short_descriptionLIKEvpn^ORtextLIKEvpn^short_descriptionLIKEtimeout^ORtextLIKEtimeout^short_descriptionLIKEconnection^ORtextLIKEconnection
  fields: sys_id,number,short_description,text,kb_knowledge_base,kb_category,sys_view_count,rating
  limit: 15

使用 REST API:

GET /api/now/table/kb_knowledge?sysparm_query=workflow_state=published^short_descriptionLIKEvpn^ORtextLIKEvpn^short_descriptionLIKEtimeout^ORtextLIKEtimeout^short_descriptionLIKEconnection^ORtextLIKEconnection&sysparm_fields=sys_id,number,short_description,kb_knowledge_base,kb_category,sys_view_count,rating&sysparm_limit=15
第 4 步:查找用于解决类似事件的文章

查询多对多关系表,找出关联到类别相匹配的已解决事件的文章。

使用 MCP:

Tool: SN-Query-Table
Parameters:
  table_name: m2m_kb_task
  query: task.category=network^task.subcategory=vpn^task.state=6
  fields: kb_knowledge,kb_knowledge.number,kb_knowledge.short_description,task,task.number,task.short_description
  limit: 20

使用 REST API:

GET /api/now/table/m2m_kb_task?sysparm_query=task.category=network^task.subcategory=vpn^task.state=6&sysparm_fields=kb_knowledge,kb_knowledge.number,kb_knowledge.short_description,task,task.number,task.short_description&sysparm_limit=20
第 5 步:检查文章质量信号

对于在第 2 至第 4 步中找到的候选文章,使用使用情况指标和反馈评估其质量。

使用 MCP:

Tool: SN-Query-Table
Parameters:
  table_name: kb_use
  query: article.numberINKB0010100,KB0010200,KB0010300
  fields: article,article.number,viewed,useful,not_useful
  limit: 20

使用 REST API:

GET /api/now/table/kb_use?sysparm_query=article.numberINKB0010100,KB0010200,KB0010300&sysparm_fields=article,article.number,viewed,useful,not_useful&sysparm_limit=20

检查近期负面反馈:

Tool: SN-Query-Table
Parameters:
  table_name: kb_feedback
  query: article.numberINKB0010100,KB0010200,KB0010300^sys_created_on>=javascript:gs.daysAgoStart(90)
  fields: article,article.number,rating,comments,sys_created_on
  limit: 20
第 6 步:排序并选出首选推荐

使用相关性评分模型对候选文章进行排序:

排序标准:

因素权重说明
类别匹配25%文章类别与事件类别匹配
关键词重叠30%标题和正文中匹配的关键词数量
历史解决情况20%该文章曾用于解决类似的历史事件
文章评分10%用户平均评分(越高越好)
近期程度10%最近更新的文章得分更高
浏览量5%浏览量越高,通常表示越有用

评分指南:

  • 符合 3 项或以上标准的文章属于“强烈推荐”
  • 符合 2 项标准的文章属于“可能推荐”
  • 过去 90 天内收到负面反馈的文章应标注注意事项
第 7 步:将推荐文章附加到事件

将排名最高的文章关联到事件,并记录推荐信息。

使用 MCP:

Tool: SN-Update-Record
Parameters:
  table_name: incident
  sys_id: [incident_sys_id]
  data:
    kb_knowledge: [recommended_article_sys_id]
    work_notes: "Knowledge Recommendation: Attached KB0010100 'VPN Connection Timeout Troubleshooting' based on category match (Network/VPN), keyword overlap (vpn, timeout, connection), and historical resolution of 12 similar incidents."

使用 REST API:

PATCH /api/now/table/incident/{sys_id}
Content-Type: application/json

{
  "kb_knowledge": "[recommended_article_sys_id]",
  "work_notes": "Knowledge Recommendation: Attached KB0010100..."
}
第 8 步:记录多篇推荐文章

如果有多篇相关文章,请添加工作备注,列出所有推荐文章及其推荐理由。

使用 MCP:

Tool: SN-Add-Work-Notes
Parameters:
  sys_id: [incident_sys_id]
  work_notes: |
    === KNOWLEDGE RECOMMENDATIONS ===
    Based on: INC0012345 "VPN connection timeout when connecting remotely"

    1. KB0010100 - "VPN Connection Timeout Troubleshooting" (Score: 4.5/5)
       - Category match: Network/VPN
       - Used in 12 similar resolved incidents
       - Rating: 4.2/5, 890 views
       - RECOMMENDED: Primary article

    2. KB0010200 - "Corporate Network Access Guide" (Score: 3.2/5)
       - Keyword match: "corporate network", "connection"
       - Rating: 3.8/5, 456 views
       - SUPPLEMENTARY: General reference

    3. KB0010300 - "VPN Client Installation" (Score: 2.1/5)
       - Partial category match
       - May be relevant if client reinstallation needed
       - SITUATIONAL: Only if client is corrupt

工具使用

MCP 工具参考
工具使用时机
SN-Query-Table查询事件、文章和使用数据等结构化信息
SN-Natural-Language-Search通过自然语言搜索发现特定主题的文章
SN-Update-Record将推荐文章关联到事件/案例
SN-Add-Work-Notes记录推荐理由
REST API 参考
端点方法用途
/api/now/table/incidentGET获取事件上下文
/api/now/table/kb_knowledgeGET搜索知识文章
/api/now/table/m2m_kb_taskGET查找与过往事件关联的文章
/api/now/table/kb_useGET查看文章使用指标
/api/now/table/kb_feedbackGET查看文章反馈质量
/api/now/table/incident/{sys_id}PATCH将文章关联到事件

最佳实践

  • 提取多个关键词: 从事件描述中提取至少 3-5 个有意义的关键词;避免使用停用词和泛化词语
  • 广泛搜索,再筛选: 先使用自然语言搜索以广泛覆盖,再根据类别和质量信号筛选
  • 优先选择经过验证的文章: 与以往已解决事件关联的文章,比未经验证的文章更值得优先考虑
  • 检查时效性: 降低超过 12 个月未更新文章的优先级,因为操作流程可能已发生变化
  • 标记质量问题: 如果最匹配的文章收到负面反馈,请注明这一点,并考虑附带说明后再推荐
  • 考虑受众: 根据上下文匹配文章受众(IT 人员或最终用户);自助服务请求需要面向用户的文章
  • 跟踪推荐结果: 后续确认推荐文章是否帮助解决问题;这些反馈有助于改进今后的推荐

故障排除

“未找到适用于该事件类别的文章”

原因: 知识库中没有该主题的文章,或事件与 KB 的类别标签不一致
解决方案: 使用关键词匹配扩大搜索范围,而不是严格按类别筛选。这也可能意味着存在知识缺口——请参阅 gap-analysis 技能

“返回了太多候选文章”

原因: 泛化关键词匹配到大量文章
解决方案: 添加更具体的关键词,按知识库筛选,或按 CI/服务缩小范围。将类别筛选和关键词筛选结合使用,并采用 AND 逻辑

“历史解决数据较少”

原因: Agent 在解决事件时没有关联 KB 文章
解决方案: 改为侧重关键词和类别匹配。可考虑推广 KCS 实践,以改善未来的数据

“文章评分均为零”

原因: 未启用反馈收集,或用户没有为文章评分
解决方案: 检查 glide.knowman.show_feedback 属性。可使用浏览量作为替代质量信号

示例

示例 1:VPN 连接事件

事件: INC0012345 - “无法连接到 VPN - 30 秒后出现超时错误”

提取的上下文:

  • 类别:Network,子类别:VPN
  • 关键词:VPN、连接、超时、错误
  • CI:Cisco AnyConnect VPN

搜索结果:

  1. KB0010100 - “VPN 连接超时故障排除”(类别匹配 + 关键词匹配 + 12 次历史解决记录)
  2. KB0010200 - “Cisco AnyConnect 配置指南”(CI 匹配 + 关键词匹配)
  3. KB0010450 - “远程访问常见问题”(部分关键词匹配)

推荐: 首选 KB0010100,补充推荐 KB0010200

示例 2:客户服务案例

案例: CS0045678 - “购买后产品许可证密钥无法激活”

提取的上下文:

  • 产品:Enterprise Suite
  • 类别:许可
  • 关键词:许可证、密钥、激活、购买

搜索结果:

  1. KB0030100 - “许可证激活故障排除”(类别 + 关键词 + 8 个案例解决方案)
  2. KB0030150 - “Enterprise Suite 许可证类型”(产品 + 关键词)
  3. KB0030200 - “如何申请更换许可证密钥”(关键词匹配)

建议: 将 KB0030100 作为主要推荐。如果密钥无效而非无法激活,也建议使用 KB0030200。

相关技能

  • knowledge/gap-analysis - 识别没有匹配文章的主题
  • knowledge/duplicate-detection - 清理会导致推荐混乱的重复文章
  • knowledge/article-generation - 没有相关内容时生成新文章
  • knowledge/gap-grouping - 对缺失的内容领域进行分组,以便批量创建文章

评论

支持 Markdown