Repository navigation
v0.2.0 — 双层记忆:全局偏好 + 对话专属记忆
本次新增
记忆分成两层,解决所有对话共用一份记忆的问题:
| 全局层 | 对话层 | |
|---|---|---|
| 文件 | 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 负责);新增的会话层是可降级的可选能力。