deepseek-harness-memory-core:零依赖的 Agent 长期记忆核心

前言

在 DeepSeek Harness(DSH)里跑长会话时,智能体容易「聊着聊着就忘了」:要么每轮把整库记忆塞进上下文,拖垮 prompt cache、撑爆窗口;要么指望模型自己记住,既不可靠,也缺乏审计痕迹。社区里不少做法停在「按需拼几段关键信息」或「靠文件名搜 Markdown」,缺少带预算的常驻索引、条目级检索,以及可复核的整理流程。

下面介绍维护者 cairunze3 发布的记忆类插件 deepseek-harness-memory-core(npm 包名 vanwork-memory-core,当前资料记载版本 0.8.1)。它以磁盘上的纯 Markdown 为权威正文,只维护可删除、可重建的派生索引与审计产物,面向 VanWork / DSH 装配,记忆引擎本身与宿主解耦。

这是什么

deepseek-harness-memory-core 是面向 AI Agent 的零运行时依赖记忆核心:指针/核心预加载、带硬预算的常驻索引、BM25/混合检索、按日优先写入、会话边界抽取、以 supersede 替代粗暴删除、可审计的 consolidation,以及默认离线的云分级判断。许可证为 MIT;运行环境要求 Node >= 22.5.0;资料中单元测试规模为 476 通过。

目录页:SkillHub 插件页。源码与说明:GitHub — cairunze3/deepseek-harness-memory-core。

相对常见现状,资料用四组对比概括其侧重点:

缺口 常见做法 本插件做法
索引非一等公民 按需注入片段,无全局预算 每轮注入双预算常驻索引;正文按指针展开
无条目级检索 仅文件名/全文文件搜索 mem_search:CJK bigram + FTS5 BM25,可选向量 + RRF
整理靠自觉 由模型即兴「 consolidate」 mem_consolidate:可重算计划 + 指纹校验 + 备份回滚
无云上边界 Git 同步但无分级判断 classifyEntry / redactForCloud:离线评判(v0.1 不接网)

核心原则:不拥有记忆正文(仍是磁盘 Markdown);拥有的是派生索引(随时可 mem_reindex)与 ledger、修订、备份等审计工件。

核心功能

常驻索引与 prompt-cache 意识

每轮向上下文注入受 indexMaxLines / indexMaxChars 约束的 resident index;条目采用 slot-stable、仅追加、按内容寻址的设计。README 称在实测中可复用字符占比从约 11% 提升到约 78%(以仓库自述为准,非独立复现数据)。

在记忆条目维度检索,返回指针(path#id)、片段与来源。searchMode 支持 auto | bm25 | hybrid;embedding 默认关闭,避免隐式外呼与隐私代价。

读写与纠错层级

  • mem_read:按指针/id 读全文,含陈旧度与云分级结论。
  • mem_write:追加、替换、移除或 supersede,并带逐级确认门。
  • 三级纠正:archive(退出注意、可恢复)→ supersede([superseded-by:<id>,可恢复)→ destroy(资料写明尚未实现);默认不静默删除。

其他工具包括:mem_extract(会话边界 → QUEUE.md 候选)、mem_health(预算/陈旧/整理/重复/supersede/云/ledger)、mem_query_log、mem_global、mem_audit(只读「谁在管存储」报告)、mem_consolidate(plan 无副作用,apply 校验指纹)、mem_reindex(安全重建索引)。

整理与压缩

Consolidation 产出带内容指纹的计划;记忆在 review 后若已变,apply 会拒绝执行。默认大量整理为零 token 的本地确定性计算(近重复合并、冷归档、日志蒸馏);仅在你明确要求时才让模型改写摘要。分层压缩:hot(30 日日报)/ warm(月 digest)/ cold(月 archive pack),幂等且不删原文。

可疑记忆标记与云分级

低证据条目可静默打标(fragment / inferred / contested / lowconfidence),仅在再次 surfacing 时说话;过敏、凭证、法律等受保护内容不打标。云相关逻辑默认离线,无网络、无密钥。

实现与质量约束(资料摘要)

  • 纯 ESM,仅 node: 内置模块,0 运行时依赖;无构建/transpile 步骤。
  • 跨进程文件锁与陈旧恢复;写路径为临时文件 → fsync → rename;变更前备份。
  • 后端 backend: auto | sqlite | json;node:sqlite 仍为实验特性(启动可能出现 ExperimentalWarning,可设 json 规避)。
  • 锁为单机;跨设备并发由 Git 层解决。

安装与启用

官方推荐从 npm 安装(勿自行拼接 dsh plugin add github:owner/repo):

dsh plugin --profile web add vanwork-memory-core

亦可从本地 tarball 或检出目录安装(README 示例为 PowerShell 路径形式):

dsh plugin --profile web add <path-to-vanwork-memory-core-0.8.1.tgz>

安装后重启 DSH / VanWork,执行 mem_audit,应能看到 10 个 mem_* 工具已注册。

profile 配置片段(完整默认值与注释见仓库 lib/config.js):

- id: vanwork-memory-core
  config:
    indexMaxLines: 120
    indexMaxChars: 8000
    searchMode: auto
    embedding:
      enabled: false
    supersedeEnabled: true
    monthlyPackEnabled: true
    backend: auto

典型用法

安装验证与只读审计:

  1. 重启环境后调用 mem_audit,确认工具注册与存储治理报告。
  2. 需要找回历史上下文时,用 mem_search 查询关键词,再用 mem_read 按返回指针读全文。
  3. 会话结束时可用 mem_extract 生成队列候选;经确认后用 mem_write 写入正文(慎用 supersede,留意确认门)。
  4. 磁盘 Markdown 手工改动或索引异常时,执行 mem_reindex;整理前先用 mem_consolidate 生成 plan,审阅后再 apply。
  5. 排查检索质量时查阅 mem_query_log;整体健康度用 mem_health。

开发者可在仓库根目录自测(需 Node >= 22.5.0):

npm test
node --test "tests/*.test.js"

中文技术文档位于仓库 docs/(如 docs/记忆插件技术文档.md、docs/安装说明.md)。

适用场景与注意

适合谁: 长期在 DSH / VanWork 中运行、需要可审计、可重建索引、条目级 BM25/混合检索,并希望记忆仍以 Markdown 留在本机的开发者与插件作者。

权限与安全: 插件在当前 dsh 进程权限下读写记忆目录与索引;安装前请阅读源码与 MIT 许可证,确认记忆路径、备份与云分级策略符合你的合规要求。默认不向量化、不上云评判接网;启用 embedding 或未来网络能力前需自行评估 egress 与密钥管理。

生态说明: DSH 倡导「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

已知限制(README): 向量检索默认关闭;destroy 级删除未实现;单机锁不覆盖多机同时写同一工作区的竞态(依赖 Git 协调)。

结尾

deepseek-harness-memory-core 把长期记忆拆成「Markdown 正文 + 可重建索引 + 可审计整理」,用十个 mem_* 工具覆盖检索、写入、健康检查与 reindex,适合作为 DSH web profile 上的记忆底座。进一步了解可看 SkillHub 目录页 与 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜