dsh-task-memory:DeepSeek Harness 的按任务隔离长期记忆

前言

在 DSH 插件体系里,长期记忆如果按全局或工作区共享,容易把不相关任务的内容带到当前会话。下面介绍 dsh-task-memory。它把 rememberrecallsearch 限制在同一个 task 边界内,并可选地把当前任务的 pinned / recent facts 注入当前 agent session 的系统提示。

这是什么

dsh-task-memory 是一个面向 DeepSeek Harness 的长期记忆插件,仓库 owner 为 wangyihao0001-oss,许可证为 MIT。

它为每个任务保存独立的 memory vault,默认目录为:

~/.dsh/storages/task-memory/

插件要求:

Node.js >= 20

适用 profile:

web

也可以用于任何加载 Host tools 的 profile。

核心功能

任务隔离

dsh-task-memory 以 task 作为记忆隔离边界。一个 session 可以绑定到指定任务 vault,也可以用当前 session 对应的默认 vault。

主要工具包括:

memory_bind_task
memory_current_task

其中:

  • memory_bind_task:把当前 session 绑定到指定 task vault。
  • memory_current_task:查看当前 session 正在使用哪个 vault。

记忆读写

写入和读取都发生在当前任务边界内:

memory_remember
memory_recall
memory_search
memory_forget

其中:

  • memory_remember:按 key 写入或更新一条事实。
  • memory_recall:按精确 key 读取。
  • memory_search:按关键词搜索,支持英文 token 和中文 bigrams;空 query 会列出 recent / pinned 条目。
  • memory_forget:删除一个 key

这里的搜索是 lexical 搜索,不是 embeddings / vector search。

任务 vault 管理

插件提供以下管理工具:

memory_list_tasks
memory_clear_task

其中:

  • memory_list_tasks:列出 vaults。
  • memory_clear_task:清空一个 vault;需要传 confirm: true

可选 prompt injection

当启用 prompt injection 时,插件会把当前 active task 的 pinned / recent facts 注入当前 agent session 的系统提示。

注入范围只针对当前 session 对应的任务记忆,其他任务的记忆不会出现在这个注入块中。

安装与启用

先安装到 web profile:

dsh plugin --profile web add "github:wangyihao0001-oss/dsh-task-memory"

安装完成后,可以用下面命令确认 bundle layer 是否存在:

dsh --profile web --dump-config

经过上面的步骤,如果确认插件已加载,就可以在 session 中开始使用 memory_bind_taskmemory_remembermemory_recall 等工具。

如果之后要移除插件,使用:

dsh plugin --profile web remove dsh-task-memory

注意,vault 文件不会因为卸载而被删除。若需要清理本地数据,请自行处理:

~/.dsh/storages/task-memory/

典型用法

先绑定任务:

memory_bind_task
taskId: "my-app"

title 可选。

接着写入一条事实:

memory_remember
key: "stack"
content: "Node 22 + Postgres"

也可以把这条记忆标记为 pinned:

memory_remember
key: "stack"
content: "Node 22 + Postgres"
pinned: true

然后在同一个任务内读取或搜索:

memory_recall
memory_search

如果不确定当前 session 是否绑到了正确的 vault,可以执行:

memory_current_task

适用场景与注意

适合以下场景:

  • 希望不同项目、不同任务使用相互隔离的长期记忆。
  • 希望 recallsearch 不跨任务返回结果。
  • 希望把少量 pinned / recent facts 注入当前 agent session 的系统提示。

使用前需要注意:

  • 不要在 memory entries 中存储 secrets、credentials、tokens 或 personal secrets。
  • 目前为 Host-only bundle,还没有用于浏览 vaults 的 Web UI。
  • memory_search 是 lexical 搜索,不是 embeddings / vector search。
  • 隔离只针对本插件内的 task id,不会 sandbox DSH 的其他部分。
  • 卸载插件不会删除 vault 文件,需要自行备份或删除。
  • pinned entries 不会被 eviction;当 vault 达到 maxEntries 上限时,新 key 会被拒绝,而已存在 key 的 upsert 不受容量限制。
  • dsh.pub 上的目录展示是 automated contract check,不是 security audit。
  • 插件会在当前 dsh 进程所拥有的权限范围内运行;安装前应检查源码和 MIT 许可证。

链接

目录页:

https://dsh.pub/en/plugins/dsh-task-memory/

GitHub 仓库:

https://github.com/wangyihao0001-oss/dsh-task-memory
羽毛球分组比赛记分
小程序二维码

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

小夜