前言¶
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 倉庫。