前言¶
在 DSH 插件体系里,长期记忆如果按全局或工作区共享,容易把不相关任务的内容带到当前会话。下面介绍 dsh-task-memory。它把 remember、recall、search 限制在同一个 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_task、memory_remember、memory_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
适用场景与注意¶
适合以下场景:
- 希望不同项目、不同任务使用相互隔离的长期记忆。
- 希望
recall、search不跨任务返回结果。 - 希望把少量 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