Skip to content

v0.2.0 — 双层记忆:全局偏好 + 对话专属记忆

Choose a tag to compare

@BPTumbleweed BPTumbleweed released this 16 Sep 02:34
· 2 commits to main since this release

本次新增

记忆分成两层,解决所有对话共用一份记忆的问题:

全局层 对话层
文件 preferences/global.md sessions/<会话id>.md
注入者 官方 agent-instructions($DSH_HOME/AGENTS.md) 本插件(agent/pre-step)
生效范围 每个对话 仅该对话
预算 6 KB 告警 2 KB 截断(sessionInjectMax)
python3 bin/memory-note.py "普适习惯" --section "干活"                  # 全局
python3 bin/memory-note.py "只对这个对话有用" --scope session --section "约定"  # 对话层

实现要点

  • 注入位置取自 DSH 核心契约:agent/pre-step 瀑布钩子,返回 {kind:"enter", messages};
    采用官方写法先 await next() 再改结果,不吞掉别人的处理器;消息带
    source:{kind:"plugin",plugin:"dsh-agent-memory",form:"session-memory"},插在最后一条用户消息之前
  • 这层是内部接口,按最坏情况设计:特性探测 + 熔断 + 字节预算;失效只影响本层,
    全局注入与记忆库不受影响,面板会标红说明
  • 会话文件 90 天未更新自动归档到 sessions/archive/(不删除);sessions/index.json 记录大小/条数/是否超预算
  • 面板新增「本对话记忆」卡片;/data/session?id= 带格式校验(实测 ../ 被拒)

实测

在真实会话中验证:注入事件 seq 2891 / 10:33:20 / kind=plugin / form=session-memory / 246 字符,
计数器 injected:1。自测 12 项 + 脱敏自检 8 项全过。

兼容性

全局注入路径完全未动(仍由官方 agent-instructions 负责);新增的会话层是可降级的可选能力。