dsh-long-term-memory:在 DSH 设置里填一次,每个新会话都带着

前言

用 DeepSeek Harness(DSH)做日常开发时,有些偏好并不属于某个仓库:回复用简体中文、别开场客套、常用构建命令、代码风格约定,或者「先给可回滚命令」这类硬规矩。~/.dsh/AGENTS.md 管的是指令与规则,改它要动文件、要熟悉目录结构;若把同样内容写进每个仓库的 AGENTS.md,又是一份一份地维护。DSH 原生也缺少一个专门放「跨会话长期偏好」的入口。

下面介绍社区插件 dsh-long-term-memory(维护者 Yang-Yin734):在 Harness 设置侧栏增加「长时记忆」文本框,保存后正文会作为系统提示词的一部分注入到之后每一个新会话(跨工作区、跨重启)。分类属于「记忆」;仓库采用 MIT 许可证,当前 package 版本为 0.1.0。

这是什么

dsh-long-term-memory 是一个给 DSH 用的双半插件(host + browser):host 半向系统提示词注册固定顺序的段落,browser 半在设置页提供编辑界面。填一次、点保存,不必为每个新会话重复说明同一套偏好。

核心功能

设置页「长时记忆」

保存后界面状态行会显示「当前内容已生效」。配置字段 text 为 volatile:host 侧会立刻重算系统提示词,不需要重启 Harness;下一个新会话即携带更新后的内容。

空字符串表示不注入任何内容(不会在提示词里留下空标题)。

与 AGENTS.md 的分工(README 对照)

场景 没有本插件 有本插件
每次都想让 agent 用简体中文、别开场客套 每个新会话重说一遍 填一次,全局生效
常用目录、构建命令、代码风格约定 写进每个仓库的 AGENTS.md 一处填写,跨工作区生效
硬规矩(例如先给可回滚命令) 容易忘 系统提示词里常驻
临时换一套偏好做实验 改文件还要记得改回 设置页改完保存,随时清空

host 侧注入方式

host 半在 lib/index.js 中注册 systemPrompt 段,名称为 long-term-memory:user-text,order: 10250(排在一方 persona 后缀 10200 之后),interpolate: false(用户文本里的 {{…}} 保持字面,避免未解析引用导致提示词组装失败)。正文为空时该段返回空字符串,DSH 的 renderPrompt 会过滤掉零长度段。

browser 半通过 configForms.whileServed(['long-term-memory'], …) 仅在 host 真正服务该条目时挂载 UI,向 settings.section 槽注册分区(order: 60)。

安装与启用

插件以当前 DSH 进程权限运行;安装前建议自行查看仓库源码与 MIT 许可证。DSH 要求 0.2.x(桌面版 / web 版),依赖 settings.section 槽、configForms、volatile 配置;cordis ^4.0.1;Node ≥ 18 仅用于包管理。

方式 A:DSH 插件市场(推荐,若已收录)

在 Harness 打开 设置 → 插件市场,搜索 long-term memory 或 dsh-long-term-memory,一键安装。

方式 B:从 GitHub 手动挂载

先把仓库放到插件目录:

git clone https://github.com/Yang-Yin734/dsh-long-term-memory.git \
  ~/.dsh/plugins/dsh-long-term-memory

让 profile 能解析到包(须为实体目录,不要用符号链接):

cp -r ~/.dsh/plugins/dsh-long-term-memory \
      ~/.dsh/profiles/desktop/node_modules/dsh-long-term-memory

在 ~/.dsh/profiles/desktop/package.json 的 dependencies 增加一行(路径按本机用户目录替换):

"dsh-long-term-memory": "file:C:/Users/<you>/.dsh/plugins/dsh-long-term-memory"

在 ~/.dsh/profiles/desktop/cordis.patch.yml 末尾追加:

- insert:
    - id: long-term-memory
      name: 'dsh-long-term-memory'
      config:
        text: ''

重启 Harness。host 不 watch 该 patch 文件,新增插件行必须重启才生效。

方式 C:plugin_manager

若 DSH 版本自带 plugin_manager,可用 action: install_bundle、target 指向包目录;返回 application: applied 表示已 live。

配置

字段 类型 默认 说明
text string(volatile,textarea) "" 要注入的正文;空表示不注入

保存会写回 profile 的 cordis.patch.yml(insert 建条目 + 顶层同 id 覆盖),重启后仍在。

典型用法

  1. 打开 Harness 设置,进入侧栏 长时记忆(Long-term memory)。
  2. 在文本框写入希望全局生效的说明,例如 README 界面示例中的项目文件夹约定,或语言、风格、命令偏好。
  3. 点击 保存;确认状态为「当前内容已生效」。
  4. 新开一个会话(任意工作区)验证 agent 是否按注入内容行为;修改 text 后同样保存即可,无需重启(与「新增插件行需重启」不同)。

建议控制正文长度(README 建议 < 2 KB):插件只注入系统提示词,不做检索与 token 预算管理。

适用场景与注意

适合:需要全局、跨仓库、跨会话的稳定偏好;不想为每个项目复制同一段 AGENTS.md 规则;希望在 UI 里临时试验一套提示再清空。

注意:

  • text 明文保存在 profile 的 cordis.patch.yml 中,不要写入密码、token、私钥。
  • 避免与其它「往系统提示词里塞内容」的插件同时使用,容易重复注入。
  • 改了 client 或 CSS 需整页刷新(Ctrl+R);host 侧代码改动需重启 Harness。
  • 仓库说明插件运行时不发起任何网络请求。

兼容性:纯 JS、无原生依赖,支持 DSH 所覆盖的平台。

结尾

dsh-long-term-memory 把「跨会话长期偏好」从文件编辑搬到设置页的一个文本框:保存即写入 profile,并在每个新会话的系统提示词中生效。若你在用 DSH 0.2.x 并需要全局记忆位,可从插件市场安装,或按 README 手动挂载。

羽毛球分组比赛记分
小程序二维码

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

小夜