前言¶
DeepSeek Harness (DSH) 插件生態強調模塊化與靈活性。在構建長對話智能體時,上下文窗口的限制是常見瓶頸,簡單的截斷或摘要往往難以平衡信息密度與計算成本。dsh-infinite-context 針對這一問題,提供了一套完整的多層記憶管理方案。
插件簡介¶
這是一個 DeepSeek Harness (DSH) 插件,旨在通過多層記憶管理、語義檢索和模型上下文感知,爲長對話提供“無限上下文”的體驗。
- 維護者:chocobo77
- 協議:MIT
- 核心價值:解決長對話中的上下文溢出問題,保持對話連貫性與關鍵信息留存。
核心功能¶
插件通過以下機制實現長對話的維護:
- 多層記憶金字塔:將記憶分爲 short(近期原文)、mid(LLM 摘要)和 long(合併摘要)三個層級,分別管理不同時效和重要性的信息。
- 漸進式壓縮與動態閾值:根據 token 使用情況,動態調整壓縮觸發水位。當上下文超過閾值時,自動對舊消息進行摘要,近期對話原樣保留。
- 深度思考介入:包裝 LLM 流,在輸入與輸出逼近當前模型真實窗口時注入溢出信號,觸發壓縮與重試,確保模型在思考過程中也能被介入。
- 語義檢索與三層去重:通過嵌入向量實現語義檢索,並使用精確匹配、歸一化模糊匹配和語義餘弦相似度(閾值 0.92)進行去重,防止重複信息入庫。
- 結構化記憶與持久化:記憶按 user/feedback/project/reference 分類,存儲在 SQLite 中,支持重啓後恢復。
- 模型上下文感知:自動讀取 DSH 解析的真實模型上下文窗口,並支持本地模型探測,確保壓縮在真實窗口範圍內觸發,而非聲明值。
安裝與部署¶
安裝命令爲:
dsh plugin add
根據文檔說明,此安裝方式存在臨時路徑陷阱。dsh plugin --profile <name> add <tgz> 會將 tarball 暫存到臨時目錄,該目錄可能被系統清理,導致後續安裝失敗。推薦做法是使用持久化目錄安裝,或參考 README 中的詳細部署說明(如通過 npm pack 打包並放入 ~/.dsh/packages/)。
配置說明¶
配置主要分爲 memory-context 和 memory-compaction 兩個部分。
memory-context 配置¶
| 鍵 | 默認值 | 說明 |
|---|---|---|
storePath |
dsh-infinite-context.db |
SQLite 數據庫存儲路徑。設爲 :memory: 可禁用持久化。 |
contextWindow |
94000 |
模型上下文窗口(回退值)。插件會優先採用 DSH 解析的真實窗口。 |
headroomRatio |
0.25 |
爲系統、工具、輸入、輸出預留的比例。 |
modelProbe.enabled |
false |
啓用後,主動探測本地服務器(如 llama-server/Ollama)的真實上下文窗口。 |
budget.short/mid/long/retrieved |
10000/20000/5000/15000 |
分層 token 預算。 |
memory-compaction 配置¶
| 鍵 | 默認值 | 說明 |
|---|---|---|
thresholdRatio |
0.7 |
壓縮觸發比例。當上下文超過窗口的 70% 時觸發基礎壓縮。 |
compaction_dynamic_threshold |
true |
當真實窗口小於聲明窗口時,按真實窗口推導閾值,強制壓縮歷史。 |
thinking_guard_enabled |
true |
啓用深度思考介入,在生成流中監控溢出。 |
compress_target_ratio |
0.6 |
壓縮目標水位,僅處理溢出部分。 |
retainRatio |
0.3 |
壓縮時保留最近 30% 的窗口內容。 |
手動工具¶
插件提供 10 個手動工具,用於管理記憶:
memory_search(query?, k?):語義檢索持久化記憶。memory_status:報告分層計數、預算、嵌入器、遺忘策略及模型 CTX。memory_index(limit?):生成 MEMORY.md 風格的結構化索引。memory_maintain:執行只讀審計,檢查重複、衝突和過時信息。memory_model_probe(forceProbe?, model?):報告模型 CTX 來源,可強制探測。memory_forget:執行遺忘掃描(低於forgetting.minScore的記憶)。memory_consolidate:強制金字塔合併。memory_reset:清空所有記憶。memory_force_compress(sessionId?):強制壓縮指定會話。memory_ingest(text, source):手動入庫一條文本。
適用場景與注意¶
- 依賴環境:依賴 DeepSeek Harness 系列插件,且 Node.js 版本要求 >= 22.19.0。
- 權限運行:插件以當前 DSH 進程權限運行,安裝前建議檢查源碼與許可證。
- 測試覆蓋:項目包含 133 個單元測試。
結語¶
dsh-infinite-context 通過分層記憶、動態壓縮和模型感知,爲 DSH 插件提供了實用的長對話管理能力。對於需要處理超長上下文或複雜多輪對話的開發者,該插件能夠有效緩解上下文溢出問題。
- 目錄頁:https://www.skillhub.cn/plugins/chocobo77/dsh-infinite-context
- GitHub 倉庫:https://github.com/chocobo77/dsh-infinite-context