为会话建立持久记忆,跨轮次记住项目上下文
29.7/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add zhang-guo-wen/dsh-memory该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · model
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 37 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 21 处,展示前 14 条)
- 读取本地文件lib/index.mjs:162
const content = await readFile(path, { encoding: "utf8" }); - 写入本地文件lib/index.mjs:178
await mkdir(this.root, { recursive: true }); - 写入本地文件lib/index.mjs:179
await writeFile(join(this.root, MEMORY_INDEX_NAME), content, { encoding: "utf8" }); - 读取本地文件lib/index.mjs:227
const text = await readFile(target.absolute, { encoding: "utf8" }); - 写入本地文件lib/index.mjs:241
await mkdir(dirname(target.absolute), { recursive: true }); - 写入本地文件lib/index.mjs:243
await writeFile(target.absolute, fileText, { - 删除本地文件lib/index.mjs:309
await rm(target.absolute, { - 写入本地文件lib/index.mjs:322
async rename(requested, destination) { - 写入本地文件lib/index.mjs:327
await mkdir(dirname(target.absolute), { recursive: true }); - 读取本地文件lib/index.mjs:357
return { content: await readFile(absolute, { encoding: "utf8" }) }; - 读取本地文件lib/index.mjs:517
return await stat(path); - 读取本地文件lib/index.mjs:524
return await realpath(path); - 读取本地文件lib/index.mjs:531
return await readdir(path, { withFileTypes: true }); - 读取本地文件build-client.mjs:30
const css = await readFile(fileId)
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-api-gateway@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-api-workspace-controller@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-store@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-renderer@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-host-directory-picker给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 自选记忆目录
- 跨轮次记住项目上下文
为 DeepSeek Harness 提供兼容 Claude 的记忆:用户自选记忆目录,含 MEMORY.md 索引与主题文件、memory 工具和设置页
README
由 DeepSeek 最新模型翻译生成dsh-memory
背景:DeepSeek Harness
DeepSeek Harness(dsh)是 DeepSeek AI 开源的 agent harness,几乎所有能力都是 Cordis 插件。它处于 developer preview 阶段、迭代很快,会有破坏性变更(文档站,0.1.7-alpha.);本插件是独立第三方包,@deepseek-ai/ 运行时从宿主解析。
这个插件解决什么问题
会话一结束就什么都不记得;本插件给它一个 Claude 形态的记忆目录(MEMORY.md + 一个记忆一个文件)、一个 memory 工具和设置页区块。
截图
截图待补 —— 本插件目前还没有可捕获的界面截图。
安装
npx @deepseek-ai/dsh plugin --profile web add @guowenzhang/dsh-memory
来自 npm 官方源:。装完重启宿主;本地目录开发安装、git 源与排查见 AGENTS.md。
用法
打开或关闭记忆
设置 → 记忆 的第一项是 启用记忆,默认开启。它是总开关:关掉后新会话不再注入索引、memory 工具不再注册,磁盘上已有的东西一个都不删。
展开完整文档(README 剩余 1 节)
dsh-memory
背景:DeepSeek Harness
DeepSeek Harness(dsh)是 DeepSeek AI 开源的 agent harness,几乎所有能力都是 Cordis 插件。它处于 developer preview 阶段、迭代很快,会有破坏性变更(文档站,0.1.7-alpha.);本插件是独立第三方包,@deepseek-ai/ 运行时从宿主解析。
这个插件解决什么问题
会话一结束就什么都不记得;本插件给它一个 Claude 形态的记忆目录(MEMORY.md + 一个记忆一个文件)、一个 memory 工具和设置页区块。
截图
截图待补 —— 本插件目前还没有可捕获的界面截图。
安装
npx @deepseek-ai/dsh plugin --profile web add @guowenzhang/dsh-memory
来自 npm 官方源:。装完重启宿主;本地目录开发安装、git 源与排查见 AGENTS.md。
用法
打开或关闭记忆
设置 → 记忆 的第一项是 启用记忆,默认开启。它是总开关:关掉后新会话不再注入索引、memory 工具不再注册,磁盘上已有的东西一个都不删。
记忆目录里有什么
/
├── MEMORY.md # 索引:一行一个记忆,无 frontmatter,会话开始时加载 ├── debugging.md # 一个记忆一个文件,带 frontmatter └── ...
索引行格式:
Memory Index
Project
- build-and-test.md — 构建约 45s,Vitest,dev server 在 3001
- architecture.md — API client 单例,refresh-token 鉴权
话题文件格式:
name: debugging-patterns
description: 认证令牌轮换与数据库连接排查 metadata: type: reference
认证令牌 ...
选择记忆目录
记忆目录模板 决定存储放在哪;~ 是用户目录,{project} 是当前项目的目录名。
| 写法 | 解析结果 |
| ~/.dsh/memory/{project}(默认) | 每个项目一个独立子目录,互不串味 |
| ~/.dsh/memory | 所有项目共用一份(去掉 {project} 即为共享) |
| ~/.claude/projects/{project}/memory | 等价于打开 兼容 Claude 目录 开关 |
{project} 取会话工作目录所属的 git 仓库根(.git 文件即链接 worktree,会回溯到主仓库),把 [A-Za-z0-9] 以外的字符全部换成 -:C:\02-codespace\deepseek-harness → C--02-codespace-deepseek-harness,与 Claude 写在 ~/.claude/projects/ 下的目录名一致。
选择目录… 在宿主提供系统选择框时打开它,否则打开内置目录浏览器;直接在输入框里填路径在任何环境下都可用。旁边的 目录状态 报出当前项目解析到的目录、索引的行数与字节、文件数与合计大小,以及单文件上限。
与 Claude Code 共用同一个目录
兼容 Claude 目录默认关闭。 关闭时记忆写进你自己的目录(可选、可改);打开后不需要选目录——存储就是 Claude Code 的 ~/.claude/projects//memory,与 Claude 共用同一份。再关掉就回到你原先配置的目录。
查看另一个项目
记忆按项目存,所以设置页一次只显示一个:目录状态 与 MEMORY.md 索引 编辑器针对 项目 下拉里选中的那个项目。下拉内容 =
- 当前项目(宿主进程所在的那个);
- 每个 DSH 工作区;
- 打开 兼容 Claude 目录 时,再加上 /projects/ 下的每个项目目录。
按解析出来的目录去重,所以同一个仓库只出现一次;只有一个项目时下拉不显示。切换只影响看和编辑哪一份,不改模板、也不影响会话——每个会话永远按自己的工作目录解析。
保存一条记忆
保存是两步:先写记忆文件,再往 MEMORY.md 加一行指针——索引里只放指针,不放正文。这套协议由注入的 instructions 说明,模型自己执行;你也可以直接在设置页的 MEMORY.md 索引 编辑器里改。
使用 memory 工具
模型通过一个 memory 工具触达整个存储,路径统一寻址到 /memories;每个返回都是工具自己的原文——包括失败,它们是返回而不是抛出(Error: File … already exists、Please ensure it is unique 等)。view 的文件行数上限、view_range、目录 2 层、隐藏项与 node_modules 排除、/memories 寻址、create 遇已存在即失败、str_replace 要求唯一匹配、insert 的 0 基行号、delete 拒绝根目录、rename 拒绝覆盖——这些都与 Claude 的 memory 工具一致。
| 命令 | 行为 |
| view | 列目录两层,排除隐藏项与 node_modules;或带行号显示文件,view_range: [start, end] 只取窗口 |
| create | 写新文件并创建父目录;路径已存在即失败 |
| str_replace | 替换必须唯一出现的 old_str;出现多次时报出行号 |
| insert | 在第 insert_line 行(0 基)插入文本 |
| delete | 删除文件,或删除目录及其内容;拒绝 /memories 根 |
| rename | 移动条目;拒绝覆盖已存在的目标 |
会话加载什么
每个会话的第一次请求折叠一条 instructions 消息:记忆协议加当前 MEMORY.md 的前 200 行或 25 KB——与 Claude 的加载上限相同。该消息记进 Session 日志,恢复的会话不会重复注入;这个上限是加载上限而不是裁剪,索引剩下的部分留在磁盘上、不进请求。
注意事项
- 不写 frontmatter 的 modified 时间戳。 Claude Code 用普通文件工具写入时会补一个 ISO-8601 时间戳;本插件让「模型写什么,文件里就是什么」,不做隐式改写。
- 单文件上限 1 MiB。 本插件读写单个记忆文件的默认上限就是 1 MiB。
- # 快捷追加不是本插件的能力:Claude 现行官方文档里也没有这个前缀(交互模式文档只列了 /、!、@、:、?)。要手动记一条,直接在设置页编辑索引,或让模型用 memory 工具写入。
- 不做自主维护:插件不会自己总结、归档或删除记忆——写入只发生在模型调用 memory 工具时,删除只能由模型的 delete 或你在设置页手动发起。
- 记忆目录之外的路径一律拒绝:../、绝对路径、盘符路径都不会逃出 /memories,目录内的软链接也无法把写入引到外面。
- 新的设置区块要硬刷新浏览器(Ctrl+F5),因为页面持的是它加载时的 boot 图;只重启宿主不会重建它。
- CLAUDE.md 一类的指令文件不属于本插件——那是 @guowenzhang/dsh-claude-compat 的职责。两者互不依赖,可单独安装。
许可
插件本体是 Apache-2.0——见 LICENSE 与 NOTICE。插件契约、设置区块与 Remote 界面中有部分派生自 DeepSeek Harness,这些部分仍按 MIT 许可,原文收在 NOTICE 里。
延伸阅读
- AGENTS.md —— 安装的各种变体、插件如何被组合进 profile、每个配置字段与默认值、构建与部署语义、发版步骤与排查。
- docs/implementation.md —— 实现参考:目录解析、存储、注入时机与设置页的 Remote。
- tests/README.md —— spec 运行方式与每个 spec 的覆盖范围。
- @guowenzhang/dsh-claude-compat —— 姊妹插件,负责 CLAUDE.md 指令文件、技能与作用域规则。
- @guowenzhang/dsh-mcp-manager —— 姊妹插件,负责 MCP。
- DeepSeek Harness 文档。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
zhang-guo-wen/dsh-memory
为会话建立持久记忆,跨轮次记住项目上下文
相关插件 · 模型接入
API 中继安全审计toby-bridges/api-relay-audit
面向 AI API 中转与 LLM 代理的本地安全审计。
★ 897已汉化DSH
69.4
免费搜索插件DDDMUC/dsh-free-search
DeepSeek Harness 免费搜索插件 —— 无需 API key,零成本,多引擎可切换。 一个给…
★ 761已汉化DSH
68.7
免费联网搜索liustack/modsearch
在官方 App 里模型能联网,切到 API 就不能了。ModSearch 把联网补回来:网页搜索、X…
★ 863已汉化DSH
68.5
OpenCode 免费模型FishBottle7/opencode2dsh
在 DSHDeepSeek Harness里原生使用 OpenCode Zen 的免费匿名模型。
★ 379已汉化DSH
67.8
AI 模型网关tingly-dev/tingly-box
Tingly Box Web UI 演示
★ 373已汉化DSH
67.4
WorkBuddy 账号池XDTrees/dsh-xdpool
把你能白嫖的模型额度接进 DSH 同一个池:WorkBuddy 多账号自动容错、十三家扫码登录、76…
★ 359已汉化DSH
67.1