dsh-local-memory:DeepSeek Harness 的跨项目长期记忆插件

前言

DeepSeek Harness (DSH) 的核心设计理念是插件化。Hindsight 是其底层记忆组件,原生的库管理是平级的,没有层级结构。这给开发者带来了一个选择两难:要么所有项目共用一个库,获得全局视角但牺牲项目隔离;要么每个项目一个库,保持隔离但总视角永远为空。此外,原生库列表无法区分“未使用的项目”和“未创建的库”,导致无法诊断缺失的记忆。

dsh-local-memory 插件保留“每项目一库”的隔离模型,同时提供跨库聚合的视图。它解决了总视角缺失的问题,并提供了诊断工具,能够扫描工作区,找出尚未建立记忆的 git 仓库。

功能

本插件提供以下核心能力:

  • memory_projects:列出全部项目,标出哪些有记忆、哪些还没有。它会扫描工作区中的 git 仓库,推导每个项目对应的库名,并与实际存在的库进行对比。
  • memory_banks:列出所有项目记忆库,包含规模(事实数)与活跃度(最后写入时间)。
  • memory_recall_all:跨库查询,结果按项目分组显示。支持通过 banks 参数指定查询范围。
  • memory_seed:给还没有记忆的项目直接建库。支持从 git 历史播种,无需先开一次会话。支持 memory_seed({ all: true }) 批量处理。
  • 图形界面:在 DSH 的设置 -> 本地记忆中,提供项目总览、库列表勾选、跨库查询和一键建立/更新记忆的功能。

安装与启用

在终端执行以下命令安装:

dsh plugin --profile web add github:AllenWES365/dsh-local-memory

安装后需要重启 DSH,并在 设置 -> 本地记忆 中查看界面。

前置条件

本插件依赖 Hindsight 记忆服务,必须先安装并配置好。

  1. 安装 Hindsight 插件:
    dsh plugin --profile web add @vectorize-io/hindsight-coding-agents
  1. 配置 Hindsight 为本地守护进程模式。编辑 ~/.hindsight/coding-agent.json,确保内容为:
    { "serverMode": "daemon" }
**注意**:不要添加 `bankId`、`retainTags` 等字段,否则会强制共用一个库,破坏项目隔离。
  1. 配置 LLM Key。LLM 的 API Key 必须通过环境变量传递给 daemon:
    export HINDSIGHT_API_LLM_PROVIDER=deepseek
    export HINDSIGHT_API_LLM_MODEL=deepseek-v4-flash
    export HINDSIGHT_API_LLM_API_KEY=...
配置后需要开启新终端或重新加载环境变量。

典型用法

扫描项目状态

在终端使用 memory_projects 命令,查看工作区中哪些项目还没有记忆,哪些已经落后:

memory_projects

输出会显示:
* 有记忆的项目及其库的状态(如是否来自 git 历史、是否停在旧提交)。
* 尚无记忆的 git 仓库(这些可以直接播种)。
* 目录里存在但对应不到项目的库(“来历不明的库”)。

跨库查询

使用 memory_recall_all 在所有库中搜索问题。它会将结果按项目分组,并显示耗时:

memory_recall_all 这个项目用什么数据库?

批量建立记忆

对于大量没有记忆的 git 仓库,可以使用 memory_seed 进行批量播种:

memory_seed({ all: true })

这会在后台运行 Hindsight 的 deepen.js 引擎,将 git 历史转化为记忆库。

注意事项

  • 未发布到 npm:由于尚未发布到 npm,安装时必须使用 GitHub 地址,不能使用 dsh-local-memory 这样的简写。
  • 库名规则:库名由前缀 coding-agent:: 和项目目录名组成。例如,目录 /Volumes/SSD-2TB/project/verify 对应的库名为 coding-agent::verify。
  • 视图与副本:memory_recall_all 返回的聚合结果是一份视图,不是第二份副本,因此没有数据同步的问题。
  • 性能成本:查询成本主要由库的规模(事实数量)决定,而非库的数量。对于大库,建议在 memory_recall_all 中指定 banks 参数缩小范围。
  • 非 Git 目录:对于非 git 仓库的目录,只有在里面开一次会话才会建立记忆,无法通过 memory_seed 播种。

结尾

dsh-local-memory 插件通过提供跨库聚合视图和项目级诊断工具,填补了 Hindsight 在多项目场景下的管理空白。它将“不知道去哪找”的缺失记忆,转化为可操作的“建立记忆”按钮。源码与更多细节请访问 GitHub 仓库。

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

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

小夜