mcpField
K
knowledge-graph

knowledge-graph

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

关于 knowledge-graph

此 ServiceNow 知识管理技能构建并分析文章关系图谱,覆盖分类层级、显式关联和从内容中发现的隐含联系。知识管理员可用它识别孤立文章、评估主题覆盖,并生成学习路径。

主要功能

  1. 01建立分类主题层级
  2. 02映射文章间关系
  3. 03从内容与标签发现关联
  4. 04识别孤立文章和主题缺口
  5. 05生成学习路径与可视化数据

适用场景

  1. 01检查知识库的断连文章与主题簇
  2. 02为新员工整理分步学习路径
  3. 03为相关知识文章补充交叉引用

MCP 相关

使用 ServiceNow MCP 工具查询文章、分类、标签和关系记录,也可创建文章关系并获取可用于可视化的图谱数据。

安装

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

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

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

详细介绍

知识图谱构建与导航

概述

此技能介绍如何在 ServiceNow 知识管理中构建和导航知识图谱:

  • 映射文章之间的关系(前置条件、相关、取代、依赖)
  • 根据类别结构和内容分析构建主题层次结构
  • 创建交叉引用图,呈现文章之间的隐藏关联
  • 分析内容依赖关系,了解知识流动和缺口
  • 识别没有入向或出向连接的孤立文章
  • 可视化知识领域的覆盖范围和密度
  • 使用图遍历推荐相关内容和学习路径

适用场景: 知识管理人员需要了解知识库的结构及其相互关联、构建引导式学习路径、识别知识孤岛,或通过丰富文章间的关系来提升文章的可发现性时。

前提条件

  • 角色: knowledge_manager、knowledge_admin 或 admin
  • 插件: com.glideapp.knowledge(知识管理)
  • 访问权限: 对 kb_knowledge、kb_category、m2m_kb_to_kb、label_entry 具有读写权限
  • 知识: 图概念(节点、边、遍历)、知识管理分类原则
  • 相关技能: 使用 knowledge/gap-analysis 评估覆盖范围,使用 knowledge/content-recommendation 获取基于图的推荐

操作流程

步骤 1:映射类别层次结构(主题树)

检索完整的类别结构,以建立主题层次结构的骨干。

MCP 方式:

Tool: SN-Query-Table
Parameters:
  table_name: kb_category
  query: active=true^ORDERBYparent,order
  fields: sys_id,label,parent_id,parent_table,full_category,active,kb_knowledge_base
  limit: 500

REST 方式:

GET /api/now/table/kb_category
  ?sysparm_query=active=true^ORDERBYparent_id,order
  &sysparm_fields=sys_id,label,parent_id,full_category,active,kb_knowledge_base
  &sysparm_display_value=true
  &sysparm_limit=500

构建层次结构树:

Knowledge Base: IT Support
  +-- Hardware
  |   +-- Laptops
  |   |   +-- Setup & Configuration
  |   |   +-- Troubleshooting
  |   +-- Printers
  |   +-- Mobile Devices
  +-- Software
  |   +-- Operating Systems
  |   +-- Business Applications
  |   +-- Development Tools
  +-- Network
      +-- VPN & Remote Access
      +-- WiFi
      +-- Email & Calendar
步骤 2:检索现有文章关系

获取文章之间的多对多关系记录。

MCP 方式:

Tool: SN-Query-Table
Parameters:
  table_name: m2m_kb_to_kb
  query: from_kb.workflow_state=published
  fields: sys_id,from_kb,to_kb,relationship_type
  limit: 1000

REST 方式:

GET /api/now/table/m2m_kb_to_kb
  ?sysparm_query=from_kb.workflow_state=published
  &sysparm_fields=sys_id,from_kb,to_kb,relationship_type
  &sysparm_display_value=true
  &sysparm_limit=1000
步骤 3:从内容中发现隐含关系

通过分析文章内容中的交叉引用来发现隐藏关联。

方式 1 —— 行内链接:

MCP 方式:

Tool: SN-Query-Table
Parameters:
  table_name: kb_knowledge
  query: workflow_state=published^textLIKEKB00
  fields: sys_id,number,short_description,text
  limit: 200

解析 text 字段,查找 KB001XXXX 等模式,以提取被引用的文章编号。

方式 2 —— 共享标签和标记:

Tool: SN-Query-Table
Parameters:
  table_name: label_entry
  query: table=kb_knowledge
  fields: sys_id,id_display,label,table,id
  limit: 500

按共享标记对文章分组,以识别主题集群:

Label: "vpn" -> KB0012001, KB0012345, KB0012290, KB0012310
Label: "remote-access" -> KB0012001, KB0012189, KB0012290, KB0012310
Label: "security" -> KB0012310, KB0013001, KB0013045

方式 3 —— 在事件解决过程中的共现:

Tool: SN-Query-Table
Parameters:
  table_name: incident
  query: u_knowledge_articleISNOTEMPTY^resolved_at>javascript:gs.daysAgo(90)
  fields: u_knowledge_article,category,subcategory
  limit: 500

经常用于解决同一事件类别的文章之间存在隐含关联。

步骤 4:构建知识图谱数据结构

将图表示为节点(文章)和边(关系):

=== KNOWLEDGE GRAPH STRUCTURE ===

Nodes (Articles): 342 published articles
Edges (Relationships): 567 connections

Node Properties:
- sys_id, number, title, category, knowledge_base
- view_count, rating, age_days, word_count
- in_degree (articles pointing to this), out_degree (articles this points to)

Edge Types:
- RELATED_TO: General topical relationship (312 edges)
- PREREQUISITE: Must read A before B (45 edges)
- SUPERSEDES: Article A replaces article B (28 edges)
- DEPENDS_ON: Article A references procedures in B (89 edges)
- SAME_TOPIC: Articles in the same category (93 edges)

Graph Metrics:
- Average degree: 3.3 connections per article
- Density: 0.0097 (sparse - room for enrichment)
- Connected components: 23 (ideally should be 1-3)
- Orphaned articles: 47 (no connections at all)
步骤 5:识别孤立和连接薄弱的文章

查找没有连接或连接极少的文章。

MCP 方式:

Tool: SN-Query-Table
Parameters:
  table_name: kb_knowledge
  query: workflow_state=published^sys_idNOT IN<list_of_connected_article_ids>
  fields: sys_id,number,short_description,kb_category,sys_view_count,rating,sys_created_on
  limit: 100
=== ORPHANED ARTICLES ===
Articles with zero connections: 47

High-Impact Orphans (>100 views, still unlinked):
| Article    | Title                           | Views | Category        |
|------------|---------------------------------|-------|-----------------|
| KB0014523  | Outlook Calendar Sync Issues    | 890   | Email           |
| KB0014601  | Docker Container Best Practices | 456   | Dev Tools       |
| KB0014789  | Expense Report Submission Guide | 1,234 | Finance         |

Recommended Actions:
1. KB0014523 -> Link to KB0012290 (shares email/remote topic)
2. KB0014601 -> Link to KB0013201 (development environment setup)
3. KB0014789 -> Create new "Finance" topic cluster
步骤 6:创建缺失的关系

将发现的关系添加到知识图谱中。

MCP 方式:

Tool: SN-Create-Record
Parameters:
  table_name: m2m_kb_to_kb
  data:
    from_kb: "<article_a_sys_id>"
    to_kb: "<article_b_sys_id>"
    relationship_type: "related"

REST 方式:

POST /api/now/table/m2m_kb_to_kb
Body: {
  "from_kb": "<article_a_sys_id>",
  "to_kb": "<article_b_sys_id>",
  "relationship_type": "related"
}
步骤 7:分析主题密度和覆盖范围

评估不同主题的覆盖情况:

=== TOPIC COVERAGE ANALYSIS ===

| Topic Area          | Articles | Avg Rating | Avg Views | Gaps Identified |
|---------------------|----------|------------|-----------|-----------------|
| VPN & Remote Access | 12       | 4.1        | 1,450     | Mobile VPN setup |
| Email & Calendar    | 8        | 3.8        | 980       | Shared mailbox config |
| Laptop Setup        | 15       | 4.3        | 2,100     | Linux support |
| Printer Setup       | 6        | 3.2        | 560       | Wireless printing |
| Software Install    | 22       | 3.9        | 1,800     | License requests |
| Security Policies   | 5        | 4.0        | 780       | BYOD policies |

Under-served Topics (high incident volume, low article count):
1. Password Reset - 450 incidents/month, only 2 articles
2. MFA Setup - 280 incidents/month, only 1 article
3. File Sharing - 190 incidents/month, only 3 articles
步骤 8:通过图遍历构建学习路径

使用前置条件关系创建有序的阅读序列:

=== LEARNING PATH: VPN Administration ===

Level 1 - Foundations:
  1. KB0012001 - VPN Client Installation (prerequisite for all)
  2. KB0012310 - Remote Security Policy (prerequisite for all)

Level 2 - User Support:
  3. KB0012345 - VPN Troubleshooting (depends on KB0012001)
  4. KB0012290 - Network Drive Mapping (depends on KB0012001)

Level 3 - Advanced:
  5. KB0012400 - VPN Split Tunnel Configuration (depends on KB0012345)
  6. KB0012450 - VPN Server Administration (depends on KB0012001, KB0012310)

Estimated Total Reading Time: 45 minutes
Assessment Available: Yes (quiz after Level 2)
步骤 9:生成图可视化数据

以适用于可视化工具的格式导出图数据:

MCP 方式:

Tool: SN-Query-Table
Parameters:
  table_name: kb_knowledge
  query: workflow_state=published
  fields: sys_id,number,short_description,kb_category,sys_view_count
  limit: 500

以节点—边列表的形式输出,供可视化使用:

{
  "nodes": [
    {"id": "KB0012001", "label": "VPN Installation", "group": "Network", "size": 1890},
    {"id": "KB0012345", "label": "VPN Troubleshooting", "group": "Network", "size": 2340}
  ],
  "edges": [
    {"from": "KB0012001", "to": "KB0012345", "type": "prerequisite"},
    {"from": "KB0012345", "to": "KB0012400", "type": "related"}
  ]
}
步骤 10:监控和维护图谱

设置持续的图谱健康状况监控:

MCP 方式:

Tool: SN-Query-Table
Parameters:
  table_name: kb_knowledge
  query: workflow_state=published^sys_created_on>javascript:gs.daysAgo(30)
  fields: sys_id,number,short_description,kb_category
  limit: 50

对于每篇新文章,检查其是否已连接到图谱。标记尚未连接的新文章,以便分配关系。

工具使用

工具用途使用时机
SN-Query-Table获取文章、类别、关系和使用数据用于构建图谱的主要数据检索方式
SN-Get-Record检索单篇文章的详细信息,以供内容分析深入分析特定节点
SN-Create-Record创建新的关系记录为图谱添加边
SN-Update-Record更新文章标签、主题和元数据丰富节点属性
SN-Natural-Language-Search查找语义相关的文章发现隐含关系

最佳实践

  1. 从类别层级开始 -- 主题树是知识图谱的骨干
  2. 优先处理访问量高的孤立文章 -- 优先关联热门文章,以获得最大影响
  3. 使用双向关系 -- 如果 A 与 B 相关,B 也应与 A 相关
  4. 明确定义关系类型 -- 区分“相关”“前置条件”和“取代”
  5. 每月检查图谱健康状况 -- 没有关联的新文章会降低可发现性
  6. 利用共同查看数据 -- 在同一会话中查看的文章很可能彼此相关
  7. 限制关系深度 -- 前置条件超过 3 层会增加阻碍
  8. 统一标记方式 -- 在整个知识库中规范标签词汇
  9. 清理过时的边 -- 删除指向已退役或过时文章的关系
  10. 验证学习路径 -- 发布前让实际用户测试前置条件链

故障排除

问题原因解决方案
未找到 m2m 记录此实例未使用关系检查是否存在 m2m_kb_to_kb 表;可能需要自定义关系表
类别层级扁平类别未通过父级引用构建层级结构使用 kb_category 上的 parent_id 字段构建层级结构
孤立文章过多关系管理未纳入发布工作流在文章审核流程中添加关系检查
图谱过于密集每篇文章都与其他所有文章关联仅保留有意义的关系;改用主题聚类
学习路径存在循环前置条件链形成环路验证前置条件图谱是否为 DAG(有向无环图)
大型查询出现性能问题一次查询的文章过多使用 sysparm_offset 对查询分页,并分批处理

示例

示例 1:知识库健康报告

输入:“分析 IT Support 知识库图谱,并找出彼此断开的集群”

**步骤:**检索所有已发布的文章和关系,构建邻接表,运行连通分量分析,找出孤立集群,并生成包含连接集群建议的报告。

示例 2:为新员工构建学习路径

输入:“为新的 IT 支持 Agent 创建一条涵盖事件管理的学习路径”

**步骤:**找出 Incident Management 类别中的所有文章,分析前置条件关系,按依赖深度排序,并生成包含预计阅读时间的顺序学习路径。

示例 3:丰富交叉引用

输入:“查找并为所有与 VPN 相关的文章创建缺失的关系”

**步骤:**查询标题或正文中包含“VPN”的所有文章,分析行内引用和共享标签,找出彼此引用但缺少正式关系的文章,并为发现的关联创建 m2m_kb_to_kb 记录。

相关技能

  • knowledge/gap-analysis - 找出知识覆盖缺失的领域
  • knowledge/content-recommendation - 根据图谱邻近度推荐文章
  • knowledge/duplicate-detection - 查找图谱中的冗余文章
  • knowledge/kb-summarization - 总结文章,以生成图谱节点描述
  • knowledge/article-generation - 创建文章,填补已发现的图谱缺口
  • knowledge/gap-grouping - 按主题集群对知识缺口分组

评论

支持 Markdown