减少token消耗神器:修复 session-query 中文检索(unicode61 缺陷)+ 记忆优化插件集(dsh-plugin) #3204
QIANLING-0831
started this conversation in
Show Your Plugins!
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话题)仓库:https://github.com/QIANLING-0831/dsh-memory
dsh-session-query-sqlite-cjkdsh-tool-result-dedupdsh-memory-indexctx.memorySearch:sqlite-vec 向量臂 + FTS5 词法臂 → RRF 融合;事件级增量嵌入索引;本地 bge 嵌入(transformers.js)dsh-memory-toolmemory_search工具:对会话旧内容做混合召回,输出严格有界(limit × maxChars)设计文档(三层记忆数据库 + 词条索引 + 增量参数):
docs/MEMORY-OPTIMIZATION-PROPOSAL.md3. 给官方的反馈:缺少"非持久化 + KV 友好"的请求注入接缝
做自动记忆注入时逐一验证了三条路径,在 v0.1-rc.7 中都不可行,希望官方评估:
agent/pre-stepmessages:循环session.append("user/message", {surfaceOp:"append"})会把注入内容变成持久化历史,每步重发,Token 反而膨胀;llm/stream:请求在buildRequest被deepFreeze,且 waterfall 默认闭包() => adapterStream(options, prepared)锁死原对象,无法替换/变更;system-prompt/assemble:非持久化内容只能进 system prompt(请求最前),每次变化会让 KV 前缀缓存整段失效,长会话成本更高。因此 v0.1 采用"模型主动调用
memory_search工具"形态(Letta 式 recall)。如果官方后续提供"非持久化、请求尾部追加"的注入接缝,自动记忆注入会非常有用。4. 想请教社区
5. 安装
All reactions