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
踩坑提醒
安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。
— 来源:通用规则