dsh-memory:DeepSeek Harness 共享持久记忆插件

在 DeepSeek Harness (DSH) 的使用中,会话通常是独立的,Agent 很难跨对话保留上下文。dsh-memory 插件为此提供了解决方案,它将所有会话连接到一个共享的持久存储中。

这是一个 DSH 插件,由 joyiok 维护。它为所有会话(web、headless 等)创建一个共享记忆库,存储在 $DSH_HOME/storages/dsh-memory.json。所有会话都可以读取和写入同一份数据。

核心功能

共享记忆库

Web、headless 和任何工作目录的会话都读写同一份数据。这意味着 Agent 在一个会话中写入的信息可以在后续会话中直接检索。

Agent 工具

插件提供了四个核心工具:
* memory_add:写入一条共享记忆。
* memory_search:搜索内容、标签或分类。
* memory_list:列出记忆。
* memory_remove:按 id 删除记忆。

Agent 在新会话里会自动先检索记忆,遇到值得记住的事实会主动写入。

Web 侧边栏

在 Web 界面中,左下角有一个 Memory 按钮。点击后打开的面板支持查看、搜索、添加和删除记忆。

原子写入

插件使用临时文件 + 重命名的方式实现原子写入,确保跨进程写入安全;读取时基于文件修改时间感知外部更新。

安装

cd /home/joy/Documents
dsh plugin --profile web add /home/joy/Documents/dsh-memory-plugin
dsh plugin --profile headless add /home/joy/Documents/dsh-memory-plugin

安装完成后重启 dsh web:

dsh web

验证:运行 dsh --profile web --dump-config,配置中应出现以下内容:

# == dsh-memory
- id: memory
  name: dsh-memory

典型用法

让 Agent 记忆

用户可以直接告诉 Agent 需要记住的内容,Agent 会调用工具将其存入共享库。

用户:记住:我们的正式语言是中文,token 预算每月 5000 万
Agent:调用 memory_add(content: ..., tags: ["preference", "budget"])

让 Agent 回忆

在新的会话中,Agent 可以先检索记忆,再进行回答。

(新会话)
用户:我们之前说过 token 预算多少?
Agent:调用 memory_search(query: "预算") 后回答

Web 面板操作

在 Web 界面左下角点击 Memory 按钮:
1. 在输入框中输入内容。
2. 使用逗号分隔标签(例如:工作, 待办)。
3. 点击保存。
4. 在列表中可以搜索、删除记忆。

工具参数

工具 参数 说明
memory_add content 必填;tags / category 可选 写入一条共享记忆
memory_search query 必填;limit 可选 搜索内容 / 标签 / 分类
memory_list category / tags / limit 可选 列出记忆
memory_remove id 必填 按 id 删除记忆

配置

可在 profile 的 cordis.patch.yml 中覆盖配置:

- id: memory
  config:
    file: /path/to/shared-memory.json   # 默认 $DSH_HOME/storages/dsh-memory.json
    maxContentChars: 20000              # 单条记忆最大字符数
    defaultSearchLimit: 20
    maxToolLimit: 100

如需禁用插件,可在配置中添加:

- id: memory
  disabled: true

注意事项

  • 敏感信息:记忆内容对所有会话可见,请勿写入密钥、口令等敏感信息。
  • 文件损坏:如果 JSON 文件损坏,插件会把损坏文件备份为 dsh-memory.json.corrupt-<ts> 并重新开始。

总结

dsh-memory 通过提供共享、持久的上下文层,弥合了 DSH 会话之间的间隙。它允许 Agent 主动记忆和检索信息,而无需人工干预。

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

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

小夜