社区插件:修复 session-query 中文检索(unicode61 缺陷)+ 记忆优化插件集(Phase 0/1/2,已真机验证) #3671
QIANLING-0831
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
1. 缺陷报告:
unicode61tokenizer 对中文基本不可用dsh-session-query-sqlite使用 FTS5unicode61tokenizer,对 CJK 文本不切词:连续汉字被索引为单个 token,中文全文检索实际不可用。实测(node:sqlite + FTS5):
索引优化减少Token消耗的句子,查询Token消耗"索引优化"(整句短语)2. 插件集介绍(均已开源,
dsh-plugin话题,47 个单测)仓库:https://github.com/QIANLING-0831/dsh-memory
dsh-session-query-sqlite-cjkdsh-tool-result-dedupdsh-memory-indexctx.memorySearch:sqlite-vec 向量臂 + FTS5 词法臂 → RRF 融合;事件级增量嵌入;file 词条标签 + 过滤dsh-memory-toolmemory_search工具:会话旧内容混合召回,输出严格有界(limit × maxChars)dsh-compaction-locatorBasicCompactionEngine的summarize()钩子,每个<compacted-summary>追加 Exact Sources 定位符(spill 路径/文件/seq 区间)dsh-memory-corememory_remember工具dsh-memory-bundledsh.bundle.patch),自动禁用 base 的 session-query/compaction 行3. ✅ 真机验证结果(
dsh --profile headless,独立测试 profile)memory_remember写入:返回「已记住 (uuid)」;memory_search混合召回:中文查询命中 3 条真实会话记录(CJK provider + RRF 生效);4. 验证中发现并修复的 3 个集成问题(单测覆盖不到,供官方参考)
Service构造器签名是(ctx, name)——把 config 当 name 传会注册成[object Object]并冲突;正确写法super(ctx, "name")+ctx.plugin(Class, config);ctx.tools尚未解析——需用函数插件入口(apply)注册工具;text是同步调用——派生库需构造器同步打开,否则新进程区块为空。5. 给官方的反馈:缺少"非持久化 + KV 友好"的请求注入接缝
做自动记忆注入时逐一验证了三条路径,在 v0.1-rc.7 中都不可行:
agent/pre-stepmessages:会被session.append("user/message", {surfaceOp:"append"})变成持久化历史,每步重发,Token 反膨胀;llm/stream:请求在buildRequest被deepFreeze,且 waterfall 默认闭包锁死原对象,无法替换/变更;因此 v0.1 采用"模型主动调用
memory_search工具 + 稳定的 core 记忆 section"形态(Letta 式分层)。如果官方后续提供"非持久化、请求尾部追加"的注入接缝,自动 recall 注入会非常有用。6. 想请教社区
unicode61中文检索修复这类小而聚焦的修复(改动 ~30 行 + 测试),是否接受外部 PR?如果目前仍不开放,是否接受"文档类"贡献(例如在上游 README 补充 unicode61 对中文不可用的已知限制说明)?All reactions