前言¶
DeepSeek Harness (DSH) 是一个基于插件生态的智能体开发框架。在构建长期运行的智能体时,会话隔离导致的上下文丢失是常见痛点。下面介绍的 disc0nct/dsh-memory-plugin 旨在解决这一问题,它为 DSH 提供了跨会话的持久化存储与检索能力,使智能体能够记住关键信息。
插件是什么¶
这是一个由 disc0nct 维护的 DSH 记忆插件,支持将信息保存到磁盘并在会话间存活。它遵循 MIT 许可证,包含配置、存储、搜索等模块,深度集成于 DSH 原生环境。
核心功能¶
该插件具备以下核心能力:
- 持久化存储:记忆保存到磁盘,跨会话存活。
- 灵活搜索:支持 keyword+semantic 混合模式,包含倒排索引与数值排序优化。
- 分类管理:支持为记忆添加可选分类,默认为
general。 - 原子写入:使用
write+rename模式,包含容错恢复机制。 - 验证与安全:
key和category需使用kebab-case校验,并发安全读。 - 七种工具:提供
memory_store、memory_search、memory_get、memory_list、memory_delete、memory_clear、memory_stats。
安装与启用¶
安装过程可以通过以下命令完成:
dsh plugin --profile <your-profile> add github:disc0nct/dsh-memory-plugin
该命令会执行安装,插件即可在配置中生效。
典型用法¶
安装后,智能体可以通过 ctx.tools 调用以下工具:
存储记忆¶
保存用户偏好或项目信息:
// 存储用户偏好
await ctx.tools.memory_store({
key: 'user-name',
value: 'Alice',
category: 'preferences'
});
// 存储项目信息
await ctx.tools.memory_store({
key: 'project-language',
value: 'TypeScript',
category: 'project'
});
搜索记忆¶
支持混合搜索,也可以指定分类:
// 搜索所有包含 'Alice' 的记忆
const results = await ctx.tools.memory_search({ query: 'Alice' });
// 搜索特定分类
const results = await ctx.tools.memory_search({ category: 'preferences' });
// 组合搜索
const results = await ctx.tools.memory_search({
query: 'API',
category: 'decisions',
limit: 5
});
查找与列表¶
快速查找单个键或列出所有记忆:
// 按键查找
const { found, fact } = await ctx.tools.memory_get({ key: 'user-name' });
// 列出记忆
const memories = await ctx.tools.memory_list();
清理与统计¶
管理记忆数据:
// 删除特定记忆
await ctx.tools.memory_delete({ key: 'user-name' });
// 清除所有记忆(需显式确认)
await ctx.tools.memory_clear({ confirm: true });
// 获取统计信息
const stats = await ctx.tools.memory_stats();
适用场景与注意¶
该插件适合需要长期维护上下文的智能体场景。
在配置与使用时需注意以下事实:
- 配置路径:配置文件默认路径为
$DSH_HOME/memory.(即~/.dsh/memory.)。 - 安全清理:执行
memory_clear必须显式传入confirm: true参数。 - 命名规范:
key和category必须使用kebab-case命名。 - 并发安全:读取操作并发安全,写入操作通过锁机制序列化。
- 数量限制:支持最大 5000 条记忆限制(
MAX_FACTS)。 - 数据恢复:包含数据恢复机制,如自动清理孤立临时文件(
.tmp.*)和损坏文件备份(.corrupt.*)。
插件以当前 DSH 进程的权限运行,安装前建议检查源码与许可证。
短结尾¶
该插件为 DSH 智能体提供了基础的持久化记忆能力,配合分类与搜索功能,能有效提升长对话的连贯性。更多细节可参考社区目录或GitHub 仓库。