Skip to content

importBundle 导入 skills 时不会写 skills_fts,技能的关键词检索永远是空的 #2500

Open

Description

@MechDesign618

我用 importBundle() 一次性导入了 56 条 policies、19 条 world model、12 条 skills,导完顺手对了一下各表的 FTS:

policies 56 policies_fts 56
world_model 19 world_model_fts 19
skills 12 skills_fts 0

skills 的行、向量、Viewer 显示都正常,只有 FTS 是空的。看起来是 skills 这条导入路径漏了,而不是"导入时统一不建 FTS"。

两个坑叠在一起,所以更不容易发现:

  1. skills_fts 是独立的 FTS5 表,没有 content= 指回 skills。所以
    INSERT INTO skills_fts(skills_fts) VALUES('rebuild');
    在这里是空操作,没有内容表可读。必须自己插:
    INSERT INTO skills_fts(skill_id, name, invocation_guide) SELECT id, name, invocation_guide FROM skills;
    手动插完 12 行后,MATCH 查询立刻就能用了,说明表和查询路径都没问题。

  2. 它的分词器是 trigram,查询词至少要 3 个字符才可能命中。像"白屏"这种 2 字中文查询永远返回 0,
    索引半空这件事就更难被注意到。

期望:导入路径按 policies_fts / world_model_fts 同样的方式把 skills_fts 一起写掉;或者至少在文档里写明"skills 的导入需要自己补 FTS"。

环境:@memtensor/memos-local-plugin 2.0.20,Windows 11,Node 24(Electron 宿主)。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

area:pluginOpenClaw & Hermesstatus:needs-triageNeeds initial triage | 需要初步判断 & 问题复现

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions