dsh-engram:DeepSeek Harness 极简长期记忆插件(目标:节省 Token)

DeepSeek Harness(DSH)采用插件化架构。在智能体开发中,长期记忆往往导致上下文膨胀和 token 消耗。dsh-engram 从 symbolic-index 和 pi-esr 概念中汲取灵感,为 DSH 提供了一个极简的长期记忆系统,核心目标是节省 token。

核心功能

零 LLM 自动捕获

插件通过纯模式匹配捕获有意义的事件,不调用 LLM 进行热路径处理。
* 事件类型:支持 git milestones(带有 -m 提交信息的里程碑)、关键文件编辑、重复错误。
* 敏感信息脱敏:所有写入前会经过确定性脱敏处理,API keys、JWT、Bearer tokens、私钥等被替换为 <REDACTED:...> 标记。
* 排除项:静默提交(git push / git stash)被有意排除,不记录在案。
* 测试失败:通过纯模式(npm test、node --test、vitest/pytest/jest 的失败行)识别测试失败,作为 tags:["error","test"] 的条目捕获。

符号索引与渐进披露

  • 索引结构:在提示词组装时注入紧凑的 [ENGRAM] 块(默认预算 700 个字符,约 175 tokens,每行一条记忆)。
  • 会话冻结:该块在会话开始时生成并冻结,保持请求前缀字节稳定,以支持 KV-cache 重用。
  • 下钻工具:使用 engram_recall 或 engram_detail 进行下钻,而非直接将原始命中结果倾倒到上下文中。
  • 召回算法:进程内 BM25 召回(TF·IDF + 标签/短语加权 + 时间衰减因子)。包含实体邻居表(esr_link 格式)。
  • 重复失败唤醒:当新失败与旧错误高度相似时,基于最近期和命中爬升(promoteHits)唤醒旧的错误条目,避免失败记录堆叠。
  • Fallback 机制:本地无命中时,回退到 DSH 自身的跨会话全文索引(ctx.sessionQuery);若仍为空且包含 CJK 字符,则扫描最新的会话日志(zstd 解压,LRU 缓存)。

会话开始自动召回

  • 默认开启:autoRecallOnStart 默认开启。
  • 机制:在会话第一条用户消息上运行一次确定性 BM25 召回。
  • 注入形式:将前 ≤ autoRecallLimit 个命中注入为 [RECALL] 块(默认 700 字符预算)。
  • 行为:纯读操作(不增加命中次数),排除已被覆盖的旧条目。

记忆间语义管理

  • 关系定义:engram_store 支持可选的 supersedes(覆盖)和 contradicts(矛盾)参数。
  • 覆盖处理:被覆盖的条目(“陈旧真相”)被降级到召回列表尾部,并排除在 [ENGRAM] 块之外,但依然可通过 engram_detail 检索。
  • 矛盾处理:被矛盾的条目保留排名,但标记为 · contradicted by <id>。
  • 自动覆盖:autoSupersede 配置(默认关闭)可自动将“改用 / no longer / switched…”类的更新标记为覆盖旧条目。

失败→修复闭环

  • 命令标签:错误记忆携带 cmd: 标签签名。
  • 自动修复:当该命令后续执行成功时,插件自动沉积一条 procedure 记忆(fixed: <cmd> — N earlier failing runs now succeed),并将旧错误条目标记为 resolved,召回时优先展示修复方案。

ESR 轻量级证据闭环协议

  • 命令集:esr_task / esr_close / esr_link。
  • 生命周期:任务经历 draft → active → stable 生命周期。stable 状态要求真实证据(artifact / evaluation / memory_ref)。
  • 证据验证:verifyArtifact(默认开启)检查非 URL artifact 是否存在于工作区(session cwd)。若不存在,任务保持 ACTIVE 状态并附带原因。force:true 可跳过磁盘检查。
  • 依赖管理:esr_dep 将依赖边写入任务的 deps(阻塞逻辑)和共享链接表,使依赖关系成为图中的可见边。

会话结束待办自动下沉

  • 默认开启:autoSinkTodosOnEnd 默认开启。
  • 下沉机制:会话结束时,若计划仍有待办事项,它们被自动下沉为 ESR draft 任务(名称为待办文本,描述标记「源自会话计划」)。
  • 状态:下沉为 draft 而非 active,避免产生证据义务。需通过显式 esr_claim / esr_task 才能激活。

技术细节

  • 依赖环境:Node.js >= 22.19.0;DSH >= 0.1.2-alpha.2 < 0.2.0-0。
  • 存储位置:数据存储于 ctx.storageDomain。
  • 运行模式:以当前 DSH 进程权限运行。

典型用法

插件提供以下工具和接口用于操作记忆与任务:

// 记忆操作
engram_store(supersedes: string, contradicts: string)
engram_recall()
engram_detail()

// ESR 任务操作
esr_task(entity: string)
esr_close(taskId: string)
esr_link(taskId: string, targetId: string)
esr_dep(taskId: string, depId: string)
esr_status()
esr_claim(taskId: string)

// HTTP 接口
GET /api/dsh-engram/goals
GET /api/dsh-engram/triggerstats

适用场景与注意

  • 适用场景:需要为 DeepSeek Harness 智能体引入长期记忆,但希望严格控制上下文 token 消耗,同时需要结构化任务管理和证据闭环能力的开发者。
  • 注意:插件以当前 DSH 进程权限运行,请确保安装前检查源码与许可证(MIT)。
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜