跳到主内容

dsh-task-memory 使用指南

为 DeepSeek Harness 提供任务隔离的长期记忆:每个任务的记忆独立成库,记忆读、写、检索与提示注入都只在当前任务内生效。

本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。

本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。

快速上手

dsh-task-memory

— 源: plugin_wiki.wiki_content

安装与验证

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

复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。

— 源: plugins.install

关键要点

  • 文件是纯 JSON,可直接手工编辑或备份
  • 写入通过临时文件 + 原子 rename,读取永远看到一致快照
  • 同一任务的写入(含 memory_bind_task 的标题更新、save、update)在进程内串行化(per-task 锁),并行 agent 并发写不会丢更新。读改写请优先用 update,避免 load → 修改 → save 覆盖并发写入
  • 置顶条目永不被淘汰;vault 满且可淘汰的只有置顶条目时,新增 key 会被拒绝并返回明确错误(避免「刚写入就被淘汰」的静默丢失);对已有 key 的原地更新(upsert)不受容量限制,仍会尽力收缩
  • 启动时自动清理崩溃残留的 *.tmp(只清理超过 1 小时的,避免误删其他进程的进行中写入)

— 源: plugin_wiki.readme_zh (fallback readme_raw)

常见问题

卸载插件后记忆文件还在吗?

在。记忆以纯 JSON 保存在 ~/.dsh/storages/task-memory/,卸载插件不会删除这些文件;想彻底清理需要手动备份或删除该目录。

提示注入的内容会跨任务串味吗?

不会。提示注入按 agent 作用域注册,每个会话的系统提示只包含它自己所属任务的记忆;其他任务、其他会话的记忆永远看不到。

关键词搜索支持中文吗?

支持。检索会做英文 token 切分 + 中文 bigram 匹配(相邻两字组合),但仍是词法匹配,不支持向量检索或语义相似度。

vault 满了之后再写新 key 会怎样?

会写入失败并报明确错误(提示先 forget 或 unpin),绝不静默丢弃;但对已有 key 的就地更新(upsert)不会因容量被拒,会尽力收缩非置顶条目。

还需要手动指定 taskId 吗?

默认不需要:没绑定时由 session 的工作目录(cwd)自动推导一个稳定任务 id。需要同时跑多个项目时调用 memory_bind_task 显式切换。

怎么在生产环境固定版本?

安装时在包名后追加 40 位 commit SHA,例如 dsh plugin --profile web add "github:wangyihao0001-oss/dsh-task-memory#<sha>",避免上游更新被自动拉到。

升级/卸载后要重启 DSH 吗?

要。插件通过 cordis.patch.yml 注入宿主层,安装或移除后必须重启 dsh web(或重启 profile)让 Cordis 重新加载。

能把敏感信息写进记忆吗?

不建议。README 与工具描述都明确提醒不要写入密钥、token、个人隐私;vault 是纯 JSON,备份或人工编辑时一样会落盘。

— 源: plugin_wiki.faq_json

兼容性

  • DSH: >=0.1.0-rc.8 (peer 依赖 @deepseek-ai/dsh-agent ^0.1.0-rc.8;其他 dsh-* peer 均为 ^0.1.0-rc.6)
  • Node: >=20 (package.json#engines.node)

— 源: plugin_wiki.compatibility_json

踩坑提醒

安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。

— 来源:通用规则