Marquez807/dsh-experience-memory ↗★ 1

@marquez807/dsh-experience-memory

基于SQLite提供跨会话的长期经验记忆管理 适合需要跨会话积累和复用经验的用户,通过严格的证据定级确保注入内容的可靠性。

包名
@marquez807/dsh-experience-memory
兼容性
待验证
Harness 依赖范围
*
Cordis 依赖范围
*
版本
0.5.0
许可证
MIT
最近更新
2026年9月25日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Marquez807/dsh-experience-memory

配置

键默认含义
enabledtrue整体开关
dbPath$DSH_HOME/experience-memory/memory.db数据库位置
residentMaxRecords5每段条数上限
residentMaxBytes1536整个摘要(所有段合计)的字节硬上限
coreMaxRecords2核心层条数上限;0 关闭核心层
standingMaxRecords3常驻规矩条数上限;0 关闭常驻层
standingMaxBytes768常驻规矩那一段自己的字节上限(整份摘要仍受 residentMaxBytes 约束)。按实测每行最多 240 字节、标签 49 字节,这一段装得下约 3 条短规矩或 2 条长规矩
recallMaxBytes16384单次召回字节上限
defaultDomain''固定领域;空则推断
maintenanceBatchSize32每次维护处理的记录数
failStreakLimit2连续失败几次退役
harvestEnabledtrue是否在每轮结束时自动采集候选
harvestBroadfalse是否启用实测不可靠的宽判据(宽陈述句、失败后成功、目标变更)
harvestMaxPerTurn1每轮最多采集几条(0 = 关闭采集)
harvestPoolLimit200候选池上限,超了退役最旧的
harvestCandidateTtlDays14候选多少天没人确认也没被查过就退役
precallEnabledtrue是否在工具调用即将做某件事时,把关于那件事的经验递到它眼前
precallMaxPerSession20一个会话最多提醒几条(按真正递出去的条数算)
precallCooldownMinutes30同一条记录多少分钟内不重复提醒
failureTrackingtrue是否统计本工作区反复出现的工具失败(只统计:不注入、不写记录)
failureShapeLimit200每工作区最多留多少种失败形状,超了淘汰最少最旧的
disabledPresets[]哪些模式完全没有记忆(按模式的 id 填)。列进去的模式:不注入、不提醒、不采集、不统计,工具被调用时直接拒绝
anchorCostTabletrue声明锚点时先查它"有多贵":一个锚点如果在真实调用里命中太多次,丢掉它并告诉你(记录照写,摘要与检索不变)。防的是"一条记录吃掉整个工作区的提示预算"
anchorCostMaxHits300命中多少次算"太常见"。默认与预注册的单记录门槛同值(<300),一个数字两处必须一致
effectWeight0实测出来的"删除效果"(删掉这条记录、结果变不变)在排名里占多大权重。默认 0=一点都不占:效果照记、照显示,但不改排名。只有 docs/GROWTH.md G5 的对照实验通过(同字节预算下按决策损失保留比按复用次数保留赢 ≥5 个百分点)才该改它
decisionLossRetirementfalse是否允许"实测证明不影响结果"的记录因此退役。默认关;且只有真的测过(effect 不为空)的记录才可能被这条规则退休——没测过不等于没用
guardHintstrue记录写的是不可撤销的动作(删库/清空/覆盖)时,memory_remember 的返回里附上一条由框架算出来的提示:真库路径是哪个、可丢弃范围在哪,好让规则写成"默认拒绝 + 永不动这个文件",而不是写成"路径含某个词才放行"这种会被真库路径自己满足的清单。只提议、绝不写入——记录正文一字不改

非法值在加载期报错并拒绝启动插件,而不是静默降级。允许为 0 的限额只有三个: coreMaxRecords(0 = 关闭核心层)、standingMaxRecords(0 = 关闭常驻层)和 harvestMaxPerTurn(0 = 停止采集), 其余限额为 0 与「关闭」无法区分,所以最小是 1。

audit/legacy-memory-selection.json 建议子集的可执行清单,供 --selection 使用,可直接编辑