Marquez807/dsh-experience-memory ↗★ 1
@marquez807/dsh-experience-memory
基于SQLite提供跨会话的长期经验记忆管理 适合需要跨会话积累和复用经验的用户,通过严格的证据定级确保注入内容的可靠性。
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Marquez807/dsh-experience-memory说明文档
阅读完整 README ↗配置
| 键 | 默认 | 含义 |
|---|---|---|
enabled | true | 整体开关 |
dbPath | $DSH_HOME/experience-memory/memory.db | 数据库位置 |
residentMaxRecords | 5 | 每段条数上限 |
residentMaxBytes | 1536 | 整个摘要(所有段合计)的字节硬上限 |
coreMaxRecords | 2 | 核心层条数上限;0 关闭核心层 |
standingMaxRecords | 3 | 常驻规矩条数上限;0 关闭常驻层 |
standingMaxBytes | 768 | 常驻规矩那一段自己的字节上限(整份摘要仍受 residentMaxBytes 约束)。按实测每行最多 240 字节、标签 49 字节,这一段装得下约 3 条短规矩或 2 条长规矩 |
recallMaxBytes | 16384 | 单次召回字节上限 |
defaultDomain | '' | 固定领域;空则推断 |
maintenanceBatchSize | 32 | 每次维护处理的记录数 |
failStreakLimit | 2 | 连续失败几次退役 |
harvestEnabled | true | 是否在每轮结束时自动采集候选 |
harvestBroad | false | 是否启用实测不可靠的宽判据(宽陈述句、失败后成功、目标变更) |
harvestMaxPerTurn | 1 | 每轮最多采集几条(0 = 关闭采集) |
harvestPoolLimit | 200 | 候选池上限,超了退役最旧的 |
harvestCandidateTtlDays | 14 | 候选多少天没人确认也没被查过就退役 |
precallEnabled | true | 是否在工具调用即将做某件事时,把关于那件事的经验递到它眼前 |
precallMaxPerSession | 20 | 一个会话最多提醒几条(按真正递出去的条数算) |
precallCooldownMinutes | 30 | 同一条记录多少分钟内不重复提醒 |
failureTracking | true | 是否统计本工作区反复出现的工具失败(只统计:不注入、不写记录) |
failureShapeLimit | 200 | 每工作区最多留多少种失败形状,超了淘汰最少最旧的 |
disabledPresets | [] | 哪些模式完全没有记忆(按模式的 id 填)。列进去的模式:不注入、不提醒、不采集、不统计,工具被调用时直接拒绝 |
anchorCostTable | true | 声明锚点时先查它"有多贵":一个锚点如果在真实调用里命中太多次,丢掉它并告诉你(记录照写,摘要与检索不变)。防的是"一条记录吃掉整个工作区的提示预算" |
anchorCostMaxHits | 300 | 命中多少次算"太常见"。默认与预注册的单记录门槛同值(<300),一个数字两处必须一致 |
effectWeight | 0 | 实测出来的"删除效果"(删掉这条记录、结果变不变)在排名里占多大权重。默认 0=一点都不占:效果照记、照显示,但不改排名。只有 docs/GROWTH.md G5 的对照实验通过(同字节预算下按决策损失保留比按复用次数保留赢 ≥5 个百分点)才该改它 |
decisionLossRetirement | false | 是否允许"实测证明不影响结果"的记录因此退役。默认关;且只有真的测过(effect 不为空)的记录才可能被这条规则退休——没测过不等于没用 |
guardHints | true | 记录写的是不可撤销的动作(删库/清空/覆盖)时,memory_remember 的返回里附上一条由框架算出来的提示:真库路径是哪个、可丢弃范围在哪,好让规则写成"默认拒绝 + 永不动这个文件",而不是写成"路径含某个词才放行"这种会被真库路径自己满足的清单。只提议、绝不写入——记录正文一字不改 |
非法值在加载期报错并拒绝启动插件,而不是静默降级。允许为 0 的限额只有三个:
coreMaxRecords(0 = 关闭核心层)、standingMaxRecords(0 = 关闭常驻层)和
harvestMaxPerTurn(0 = 停止采集),
其余限额为 0 与「关闭」无法区分,所以最小是 1。