前言¶
在 DeepSeek Harness (DSH) 的插件化生态中,让多个会话在同一工作区保持一致的上下文是常见需求。现有的方式通常难以兼顾可复用的行为规则与稳定的项目事实。下面介绍 dsh-workspace-memory 插件,它提供了一种基于审批的工作区指令与项目记忆维护方案。
该插件由 luyy9apples 维护,采用 MIT 许可证。它允许用户在工作区内维护两类共享上下文:AGENTS.md(可复用的行为规则)和 .dsh-memory.md(稳定的项目事实与决策)。通过这种分离,行为指令保持聚焦,而事实上下文则被保留供后续会话使用。
核心功能¶
该插件提供以下能力:
1. 文件维护:维护 AGENTS.md(可复用规则)和 .dsh-memory.md(稳定事实/决策)。
2. 交互式审批:模型识别到长期指令或记忆时,会通过 Diff 预览请求用户确认,防止静默推断写入。
3. 并发会话共享:同一工作区打开的新对话会自动读取最新的上下文文件。
4. 本地存储:仅使用标准 Markdown 文件存储,无网络请求、遥测、数据库或隐藏内存存储。
5. 聚焦的 Diff:仅显示变更内容,便于审查。
6. 防冲突机制:防止旧更新覆盖新工作,基于文件版本进行校验。
7. 沙箱感知:写入操作使用调用会话的会话策略和当前工作目录(cwd),而非插件启动目录。
安装与启用¶
安装前请确保环境满足要求:
* DeepSeek Harness 0.1.1-rc.2
* Node.js ^22.19.0 或 >=24.0.0
使用官方插件安装命令:
dsh plugin --profile web add dsh-workspace-memory
该包声明了 dsh.bundle,安装后 DSH 会自动将配置层添加到 web profile 中。无需手动编辑配置文件。安装或更新后,需重启已运行的 profile。
如需更新或移除:
# 更新
dsh plugin --profile web update dsh-workspace-memory@latest
# 移除
dsh plugin --profile web remove dsh-workspace-memory
典型用法¶
插件在工作区目录下维护两个标准 Markdown 文件。
- 定义规则:将可复用的规则保存到
AGENTS.md。- 示例:
Whenever you change files here, finish by summarizing what changed and what you verified.
- 示例:
- 定义事实:将稳定的项目决策保存到
.dsh-memory.md。- 示例:
This project prioritizes backward compatibility over adopting new APIs.
- 示例:
- 验证上下文:在同一工作区打开新对话,询问当前应遵循的指令和项目决策。
- 提议更新:在对话中,模型可以使用
workspace_memory工具提议更新上述文件。- 用户在 DSH Web 中查看聚焦的 Diff(显示行号、颜色标记的增删)。
- 确认后,变更才会被写入。
配置说明¶
Bundle 安装时包含默认配置:
memoryFile: .dsh-memory.md
instructionFile: AGENTS.md
suggestUpdates: true
maxBytes: 32768
若需覆盖,可在 $DSH_HOME/profiles/web/cordis.patch.yml 中添加:
- id: workspace-memory
config:
memoryFile: .dsh-memory.md
instructionFile: AGENTS.md
suggestUpdates: false
maxBytes: 65536
注意:DSH 会替换整个 config 值,因此需重写所有字段。文件名必须在同一目录且不含路径分隔符。
注意事项与限制¶
- 兼容性:已验证 DeepSeek Harness
0.1.1-rc.2、Windows x64 和 Ubuntu(Node.js 22/24)。macOS 兼容性未验证。 - Headless 模式:在无交互界面的 Headless profile 中,建议设置
suggestUpdates: false。 - 存储范围:仅限会话当前工作目录(cwd)中的两个配置文件。
- 符号链接:最终路径组件的符号链接会被拒绝。
- 生态背景:DSH 理念是“一切皆插件”,社区目录(如 SkillHub)与 DeepSeek / 幻方无官方从属关系。
生态背景¶
该插件遵循 DSH 插件化设计,旨在解决本地化、可控的工作区上下文管理问题。