语义检索运维·qmd 运维

SKILL运维和基础设施
运维和基础设施 未标注权限 许可证不明确
安装这个技能

语义检索引擎 qmd(@tobilu/qmd) 的日常运维 skill —— 安装/配置/唯一可信覆盖判据/补嵌卡死排查/内存优化。这是知识库"检索可用性"的命门运维层,补 knowledge-base-starter 没覆盖的运维真相。触发词:qmd 覆盖率、语义检索没覆盖、embed 卡死、补嵌假活、qmd status、向量没生成、检索不准、need embeddings。

一句话选型结论

按资料字段整理

语义检索运维·qmd 运维是运维和基础设施类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类运维和基础设施 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_c57ddd5f/retrieval-ops
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

运维和基础设施
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_c57ddd5f仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验2026-11-06上游最后核验时间 · 数据更新 2026-11-06
正文体量6.7 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
查服务与日志

按现象定位服务状态与日志线索。

写部署与巡检脚本

把重复的部署、巡检写成脚本。

故障排查

按步骤排查网络、依赖与配置。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在运维和基础设施场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
语义检索运维·qmd 运维当前 未标注权限 未标注 未标注 未标注 有
Azure 部署 调用外部服务 GitHub 仓库 664.2 万 Codex、Claude、Cursor 有
Azure diagnostics 问题管理 调用外部服务 GitHub 仓库 657.6 万 Codex、Claude、Cursor 有
Azure aigateway 部署 调用外部服务 GitHub 仓库 655.3 万 Codex、Claude、Cursor 有
Azure AI 搜索 调用外部服务 GitHub 仓库 651.4 万 Codex、Claude、Cursor 有
Azure Cloud migrate 部署 调用外部服务 GitHub 仓库 650.7 万 Codex、Claude、Cursor 有

SKILL.md 全文

6.7 KB
模型实际读到的说明书原文,来自技能仓库

语义检索运维(retrieval-ops)

> 本 skill 只 Own 老 knowledge-base-starter 没覆盖的运维真相层:引擎装好之后怎么让它真·可用、怎么判断覆盖了、卡死怎么救。搭建步骤指向 knowledge-base-starter,此处不重抄。

§1 引擎事实(本机实测)

  • 版本:@tobilu/qmd v2.5.3,纯 CPU 无 GPU,极慢但零积分。
  • CLI 启动器:C:/Users/40280/.workbuddy/binaries/node/workspace/qmd.sh(封装 node + 环境变量)。
  • 数据库:C:/Users/40280/.cache/qmd/index.sqlite(含 documents / content / content_vectors / vectors_vec_rowids 等表)。
  • 模型(3 个 GGUF,hf-mirror 拉):
  • embed:C:/Users/40280/.cache/qmd/models/embeddinggemma-300M-Q8_0.gguf
  • generate(query expansion):C:/Users/40280/.cache/qmd/models/qmd-query-expansion-1.7B-q4_k_m.gguf
  • rerank:C:/Users/40280/.cache/qmd/models/qwen3-reranker-0.6b-q8_0.gguf
  • 配置:C:/Users/40280/.config/qmd/index.yml,collection 指向 C:\Users\40280\Documents\Obsidian Vault,pattern **/*.md。

§2 启动器关键环境变量(qmd.sh 已固化)

export QMD_FORCE_CPU="${QMD_FORCE_CPU:-1}"          # 强制 CPU
export QMD_EMBED_PARALLELISM="${QMD_EMBED_PARALLELISM:-1}"   # ⚠️ 必须=1,>1 死锁
export QMD_RERANK_PARALLELISM="${QMD_RERANK_PARALLELISM:-1}"

补嵌卡死时,把 QMD_EMBED_PARALLELISM 压到 1、必要时降 embed 批大小减内存占用。

§3 唯一可信覆盖判据(★最高频踩坑)

覆盖率唯一可信来源 = qmd 自身输出的 X documents (Y%) need embeddings 或 qmd status 的 Pending 数。

⚠️ 两套 hash 不可比(已证伪误报):
- documents 表的 hash 是 000d… 命名空间
- content_vectors 表的 hash 是 000a… 命名空间
- 二者是两套不同编码,跨表行数硬比数值巧合接近 → 曾长期误报"100% 覆盖",真实仅 26.56%(1482/5580 块)。
- 旧 embed_loop.sh 用"向量表 hash ≥ 文档表 hash"、watchdog 用"向量行数 ≥ 文档行数"判完成 → 全错 → 假收摊。

✅ 正确判据:

cd C:/Users/40280/.workbuddy/binaries/node/workspace && bash qmd.sh status
# 看 Total files / Vectors stored / Pending (need embeddings)

Pending > 0 表示该补的还没补完。绝不数两表 hash 算覆盖。

§4 补嵌卡死排查(★第二大坑)

现象:进程活着、CPU 烧满 4 核,但覆盖不涨、向量不落盘。

根因 = 内存压力:
- 本机 16G 物理内存,已用 13.9G、仅剩 ~12.8%(2G)空闲时,嵌入模型会话反复 LLM session expired before embedding chunk,块全失败。
- 验证"假活"三信号(任一即卡死):
1. qmd status 的 Pending 长时间不降
2. content_vectors 的 embedded_at 最新时间戳停在启动那一刻
3. 最近 15 分钟新写入向量 ≈ 0(而 CPU 在烧)

救法:
1. 杀掉卡死进程树(见 automation-health skill 的自愈流程)
2. 腾内存:关浏览器/Obsidian/吃内存程序,让空闲回到 30%+
3. 降线程重跑:QMD_EMBED_PARALLELISM=1 bash qmd.sh embed
4. 内存实在不够 → 单线程硬试,成功率低,优先腾内存

§5 正常空转 vs 真卡死

  • 正常:embed 启动后前几分钟只加载模型、不写库,像空转 → 勿误杀,等它热身。
  • 真卡死:上述 §4 三信号同时成立 → 才杀。

§6 其他坑

  • better-sqlite3 原生二进制:从 npmmirror 补 build/Release/,npm install 会冲掉它 → 补完别再 npm install。
  • npm 缓存坏:用 --ignore-scripts --prefer-online 重装。
  • 向量不全时勿跑混合检索:bash qmd.sh vsearch 在覆盖 <100% 时结果不全,取料前先确认覆盖达标。

§7 诚实计量红线

  • 任何"覆盖率"结论只能来自 qmd 自身输出(status / need embeddings),不得数库表行数自算。
  • 报告覆盖时必须同时报:内容块总数、已对齐向量块、Pending、孤儿向量(000a 历史垃圾不计入覆盖)。
  • 不虚高、不误报"已全量"。

§8 命令语义真相(★高频误用坑,2026-09-15 补)

qmd search ≠ 语义检索——它是 BM25 关键词全文匹配。用长句当语义查会返回空,极易误判"引擎坏了/没索引"。

子命令 语义 用途
qmd search &quot;短语&quot; 纯关键词匹配 查"原文有没有某词",非语义
qmd query &quot;短语&quot; -n N 混合检索(BM25+向量+rerank+query expansion) 日常语义检索
qmd vsearch &quot;短语&quot; -n N 纯向量语义检索 验证"某文件进没进语义索引"(不靠关键词)

判可用性的唯一口径:bash qmd.sh status 的 Pending(need embeddings) 数。

§9 自动补齐机制(防"建得多反而搜不到",2026-09-15 补)

根因:大规模同步/建卡后,新建文件全落 Pending,纯语义层捞不到 → "建得越多 AI 越瞎"。

已上线组件:
- 触发器 C:/Users/40280/WorkBuddy/Claw/_qmd_trigger_embed.py:取 Pending,>50 才后台 qmd embed,原子锁 _qmd_embed.lock(O_CREAT|O_EXCL)防重入(30min 内视为在跑)。
- ⚠️ 勿用 pgrep 判 embed 在跑:子进程环境里 pgrep 匹配不到,曾误起第二个 embed 致 sqlite 争用。只用锁文件。
- 看门狗 C:/Users/40280/WorkBuddy/Claw/_qmd_embed_watchdog.py:触发补齐 + 打印 Pending/覆盖率 + 纯向量 vsearch 验证「头雁散稿」「15张作者思维卡」可召回 + PASS/FAIL 自证。
- 挂载点:Get笔记同步 _sync_getnote_to_vault.py 尾部、浮墨同步 floto_auto_sync.py 尾部(同步完自动补)。
- 每日自动化 automation-1789420455349(23:30)跑看门狗兜底。

假成功识别:embed 进程 exit 0 但中途 LLM session expired 只啃一半(Pending 不降)→ 判据必须是"Pending 真降",不是"进程结束"(详见 §4 卡死排查)。

踩坑沉淀:① search≠语义;② pgrep 不可靠改用锁;③ 新建资产不补就搜不到;④ 覆盖<100% 时勿用混合检索取关键料(结果不全)。

常见问题

5 问
答案由本站依据条目字段整理
语义检索运维·qmd 运维怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_c57ddd5f/retrieval-ops。安装方式为未标注。装完刷新技能列表或重开客户端。

语义检索运维·qmd 运维支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

语义检索运维·qmd 运维权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

语义检索运维·qmd 运维收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

语义检索运维·qmd 运维用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 2026-11-06。