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
羽毛球分组比赛记分
小程序二维码

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

小夜