windrover/dsh-long-term-memory0

dsh-long-term-memory

适用于 DeepSeek Harness 的分层确定性长期记忆插件:支持中文 BM25 检索、JSONL 存储及人工审批

AI 分析

核心用途是为 Agent 提供精准的长期记忆能力,支持项目和用户画像分层存储,并在每轮对话自动注入相关摘要。适合需要 Agent 具备跨会话业务知识记忆的场景。

包名
dsh-long-term-memory
版本
0.1.0
许可证
MIT
最近更新
2026年8月26日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:windrover/dsh-long-term-memory

使用

重启后,让模型记忆/取回即可,例如:

“记住我喜欢喝美式咖啡,记到用户画像里。” (模型会调 memory_writescope: user

“这个项目之前决定过关于依赖管理的约束吗?” (模型会调 memory_recall("依赖 约束", scope: "workspace")

模型默认会看到每轮注入的记忆摘要(user 优先),因此不一定要先召回;相关任务开始时建议显式 memory_recall 以便拿到带分数的相关命中和 id

配置

在 profile 的 cordis.patch.yml 覆盖(dsh.profile.bundles 装载后应用):

- id: long-term-memory
  config:
    # 写入前是否需人工审批(默认 false)
    requireApprovalForWrite: false
    # 注入策略:recent(默认)/ full / off(兼容旧布尔 true/false)
    injectContext: recent
    # 写入内容是否做威胁扫描(默认 true)
    scanThreatsOnWrite: true
    # 自动总结:每轮对话结束后用 LLM 蒸馏值得长期记住的事实(默认 false,每次是辅助模型调用)
    autoSummarize: false
    # 两次自动总结间的最小间隔(ms,默认 30000,防抖)
    summarizeIntervalMs: 30000
    # 至少产生多少条新用户消息才触发总结(默认 1)
    summarizeMinMessages: 1
    # 超限时用 LLM 精炼压缩(默认 false = 纯规则压缩:淘汰最冷 + 合并子串重复)
    compressWithLLM: false
    # 用户画像文件(默认 $DSH_HOME/dsh-memory/user.jsonl)
    userFile: null
    # 全局记忆文件(默认 $DSH_HOME/dsh-memory/global.jsonl)
    globalFile: null
    # 工作区记忆文件,绝对或相对 workspace 根(默认 .dsh/memory.jsonl)
    workspaceFile: null
    # session 无 cwd 时的 workspace 根回退(默认 process.cwd())
    workspaceRoot: null
    # 注入摘要的字符上限(默认 2400;full 模式也受它约束)
    maxInjectedChars: 2400
    # 工具 limit 的上限(默认 25)
    maxResults: 25
    # 每库字符预算;超限时先自动压缩(规则或 LLM),仍超才拒绝(默认 20000)
    charLimit: 20000