nim-kb-record

SKILL.md

NIM 知识库录入(AI 问答)

从当前 AI 会话上下文提取结构化条目,执行去重检测后写入知识库并推送。

流程:字段提取 → 去重检测 → 确认 → 写入 → 推送

CLI 触发标记

触发本 skill 时,第一行必须输出一行简短的标记,格式如下:

[nim-kb-record] 已触发 | 来源=ai_qa | 状态=提取中

规则:

  • 仅一行,不换行
  • 标记行之后继续执行字段提取
  • 随流程推进,在各阶段开始时更新 状态去重检测中 / 待确认 / 写入中 / 完成

触发条件

触发词(用户明确发出以下指令时触发):

录入知识库 / 保存到知识库 / 记录一下 / 存到知识库 / 入库 / 记到知识库里

不触发

  • 用户未主动发出录入指令
  • 当前会话无明确的 root_causesolution(此时提示用户:⚠️ 当前会话尚无明确结论,建议问题分析完成后再录入
  • 用户在确认框中选择取消

知识库同步(录入前执行)

首次使用检查(仅需配置一次)

该仓库为公开仓库,拉取(clone/pull)无需认证。但录入后需要 push 写入,须提前配置:

# 配置凭证缓存,避免每次 push 输入密码
git config --global credential.helper store

首次 push 时按提示输入 GitHub 用户名和 Personal Access Token(不能用密码),之后自动免密。

Personal Access Token 获取:登录 github.com → 右上角头像 → Settings → Developer settings → Personal access tokens → Tokens (classic) → Generate new token,勾选 repo 权限。

同步命令

KB_DIR="$HOME/nim-knowledge-base/rags/knowledge"
KB_REPO="https://github.com/19967431260/rags.git"
[ ! -d "$KB_DIR/.git" ] && git clone "$KB_REPO" "$KB_DIR" || (cd "$KB_DIR" && git pull origin master)

同步失败时中止录入❌ 知识库同步失败,请检查网络或 GitLab 账号权限后重试


工作流程

阶段 1 - 字段提取

references/record-prompt.md 的规则,读取完整会话上下文,提取以下 14 个字段:

product / feature / platform / title / description / troubleshooting / root_cause / solution / cause_type / tags / customers / track_type / sub_type / session_date

字段定义、track_type / sub_type / cause_type 枚举、产品矩阵详见 references/record-prompt.md

字段默认值:

字段 无法提取时
platform 通用,确认框中提示用户补充
root_cause ""
customers []
cause_type 排查类必填(填 待确认),咨询类填 ""
session_date 今天的日期 YYYY-MM-DD

提取失败时输出错误原因,等待用户重试。


阶段 2 - 去重检测

扫描知识库 ~/nim-knowledge-base/rags/knowledge/ 中的候选文件,按 references/kb-management.md — "去重判断规则" 执行两阶段检查:

第一阶段:强匹配过滤track_type + sub_type + product 三者均一致才进入下一阶段)

第二阶段:相似度计算

  • 排查类结论相似度 = Jaccard(root_cause + solution)
  • 咨询类咨询相似度 = Jaccard(tags) × 0.6 + Jaccard(title) × 0.4
类型 阈值 判定
排查类 结论相似度 ≥ 0.60 【高度相似】建议合并
排查类 0.40 ~ 0.60 【可能相关】人工判断
咨询类 咨询相似度 ≥ 0.65 【高度相似】建议合并
咨询类 0.40 ~ 0.65 【可能相关】人工判断
任意 低于下限 不展示

扫描路径:

  • 排查类:rags/{product}/{feature}/{platform}/排查-*.md线上案例/*.md
  • 咨询类:rags/{product}/{feature}/{sub_type}.md 内所有 entry

阶段 3 - 确认框

展示提取结果供用户确认,所有字段均可在此修改:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📥 知识库录入确认
  产品:{product}      功能:{feature}
  平台:{platform}     类型:{track_type} / {sub_type}
  标题:{title}
  问题描述:{description 前 80 字…}
  排查过程:{troubleshooting 非空→"✅ 已提取 {N} 步",否则"—"}
  根因:{root_cause}
  解决方案:{solution}
  根因类型:{cause_type}
  标签:{tags}         客户:{customers}
  目标路径:{target_path}
  ── 去重检测结果 ──────────────────────
  {相似条目列表,或"✅ 未发现相似记录"}
  ─────────────────────────────────────
  [✅ 确认录入(新建)] [🔁 合并到已有] [❌ 取消]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

阶段 4 - 写入知识库

写入路径规则、文件模板、咨询类追加格式详见 references/kb-management.md — "录入规范" 节。

新建(排查类):按模板创建文件,source 固定为 ai_qa

新建(咨询类):追加 entry 到对应聚合文件(不存在则新建文件头)

合并到已有文件(排查类)

  1. 验证 root_cause 语义一致,不一致则中止并提示
  2. 在「其他触发场景」节追加:- [{platform}] {title},来源:{customers},{today}
  3. 更新 YAML customers(取并集)、updated

合并到已有 entry(咨询类)

  1. frequency + 1,合并 customers
  2. 更新文件头 updated

阶段 5 - Git 提交推送

Commit 格式详见 references/kb-management.md — "Git Commit 格式" 节。

cd ~/nim-knowledge-base/rags/knowledge
git add .
git commit -m "{commit_message}"   # source_label = AI问答
git push origin master

完成后输出:[nim-kb-record] 完成 | 操作={新建/合并/追加} | 路径={file_path}


详细文档

Installs
1
First Seen
Apr 20, 2026