ltl0312/my-dsh-plugins--packages-tlmemory ↗★ 0

dsh-plugin-tlmemory

Cross-session and cross-project memory manager for dsh (silent turn-end sedimentation + native web client embedding)

包名
dsh-plugin-tlmemory
兼容性
待验证
版本
0.8.1
许可证
MIT
最近更新
2026年10月5日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:ltl0312/my-dsh-plugins#9666eb5f4a0ebf028e0496b4ee0e1bb9bafb8fae&path:packages/tlmemory

⚙️ 配置

看板服务随宿主零配置自启,无需任何开关声明。想改配置就在自己的 profile 补丁层 ~/.dsh/profiles/web/cordis.patch.yml 里按 id 覆盖(写 - id: 覆写行,不要再写 - insert:):

- id: dsh-plugin-tlmemory
  config:
    serverPort: 4890           # 看板服务端口(默认 4890)
    maxRecallCount: 5          # 单轮最多注入系统提示词的记忆条数
    enableAutoReflection: true # 会话结束异步自动反思提炼
    compactionInterval: 20     # 每累计 N 次沉淀触发一轮强化衰减 + 矛盾检测

⚠️ 从 0.6.x 升级:先删掉旧的手工挂载条目

0.6.x 不是 bundle,只能靠 profile 补丁层里的 - insert: 挂载,而且当时文档给的 id 是 tlmemory-runtime(不是包名)。Cordis 按 id 去重而不按 name,所以旧的 tlmemory-runtime 条目和 0.7.0 的 bundle 条目会同时生效 —— 同一个包被挂载两次, 结果是两个数据库句柄、两个抢 4890 的监听实例。升级步骤:

  1. 在 profile 的 cordis.patch.yml 里删掉整段 - insert: - id: tlmemory-runtime …;
  2. 把 dsh-plugin-tlmemory 加进 dsh.profile.bundles(dsh plugin add 会自动做);
  3. 需要自定义配置时,按上面的 - id: dsh-plugin-tlmemory 覆写行写。

端口冲突自愈:4890 被前序 tlmemory 实例占用时,新实例会经健康探测确认同名进程 后自动复用(多宿主并存无需手工分工);被无关进程占用时自动顺延端口;连续顺延 仍失败时在控制台打印 EADDRINUSE 排查指引。

禁区端口自检:浏览器与 fetch 共同封禁的端口(如 3659 / 4045 / 4190 / 5060 / 5061 / 6000 / 6566)无法打开看板也无法被 HTTP 客户端访问,绑定后会被自检识别并 自动换端口重试 —— 配置 serverPort: 0 交由系统分配时同样保证落在可用端口上。


🚀 启动与使用

1. 启动 DSH Web 宿主

在任意终端路径下直接启动:

dsh web

Node 版本:运行需 Node >= 22.13 —— 0.8.0 起持久层用 Node 内置的 node:sqlite (v22.13.0 / v23.4.0 起不再需要 --experimental-sqlite,v24.2.0 起不再 experimental), 因此不再有原生二进制,也就不再有 NODE_MODULE_VERSION 不匹配这类问题。

2. 访问记忆看板

  1. 打开浏览器进入 DSH 界面(通常为 http://127.0.0.1:3080)。
  2. 在左侧边栏顶部(「+ 新会话」下方、「技能中心」旁)点击 「记忆看板」。
  3. 中间主视口将平滑接管展示记忆树:顶部下拉框切换任意工程(默认选中当前所在工程), 「全局偏好」胶囊单独查看跨工程偏好;右上角滑块在「📋 目录列表」与「🌲 树状图谱」 之间切换,选中工程、搜索关键词与图谱的平移缩放都会原样保留。 图谱右上角工具条里的「横向 / 竖向」按钮可一键反转树的生长方向(切换后自动重新居中, 选择记在本地,下次打开沿用);「居中」保证可读尺寸:整棵树装得下就全览,装不下就把根节点 放到左上角、由你拖拽浏览局部(滚轮仍可缩到 25% 看全局地形)。「📋 目录列表」只列真正的 记忆条目,目录骨架不再混进列表。
  4. 正常进行对话,每个完成的回合(Turn)将由后台自动提炼关键信息沉淀入库。

3. Agent 侧记忆工具(模型可直接调用)

工具用途关键约束
tlmemory_save显式沉淀一条记忆content 截断到 80 字;tree_scope 决定落 global 树还是当前工程树
tlmemory_queryFTS5 全文检索既有记忆结果已附带节点 id,可直接交给删除工具精确定位
tlmemory_delete删除一条记忆(不可逆)必须 confirm: true;仅叶子(目录级联删请走看板);默认只删当前工程,global / 其它工程需 allow_cross_scope: true;同名多条返回候选要求改用 id

看板上的删除按钮与待确认区的「拒绝」是同一套底层能力(DELETE /api/nodes/:id, 由 trg_nodes_ad 触发器同步 FTS5 索引);Agent 工具只是把这条路径按「必须显式确认 + 作用域隔离 + 仅叶子」收窄后开放给模型,避免一次措辞含糊的调用毁掉正确记忆。