前言¶
DeepSeek Harness (DSH) 的核心理念是“一切皆插件”。在構建智能體時,LLM 會話是無狀態的,這導致智能體無法利用歷史經驗或長期上下文。OpenViking 負責持久化存儲,而 dsh-ov-memory 插件負責將記憶“注入”對話,或者將對話流“鏡像”回 OpenViking,打通對話與記憶之間的壁壘。
是什麼¶
dsh-ov-memory 是一個把 OpenViking 持久記憶接入 DeepSeek Harness(DSH)的插件。它由開發者 xiaono1 維護,遵循 MIT 許可證。該插件通過複用 DSH 已安裝的 peer 包,實現了記憶的自動召回、會話鏡像、閾值提交、離線重放以及 MCP 工具橋接等能力。
核心功能¶
- 自動召回:在每一步開始前,插件會檢索當前輸入在 OpenViking 中的相關內容並注入對話。去重與 token 預算控制由服務端完成。
- 會話鏡像:將 user / assistant 消息實時寫入 OpenViking 的
dsh-<會話id>會話流,供後臺抽取爲長期記憶。 - 閾值提交:當 pending_tokens 達到閾值時自動 commit(保留最近 N 條爲活躍消息);在會話關閉時執行兜底提交。
- 離線出站隊列:當 OpenViking 不可達時,寫操作會落盤持久化,恢復連接後自動冪等重放。
- /memlearn 人工沉澱:通過斜槓命令直接把一條經驗寫入長期記憶。支持密鑰脫敏、語義查重合並,離線時自動進 outbox。
- 自研 MCP 工具橋:提供 stdio 服務器 + streamable-HTTP 上游,將服務器工具以
mcp__openviking__*暴露。 - viking:// URI 守衛:攔截本地工具,將
viking://虛擬路徑當成本地文件處理。 - 零運行時依賴:複用 DSH 已安裝的
@deepseek-ai/*peer 包,無額外 npm 依賴。
安裝與啓用¶
在安裝前,請確保環境滿足以下要求:
* DeepSeek Harness 0.1.x(≥0.1.0-rc.6)release 線
* Node.js ^22.19.0 或 >=24
* 一個可訪問的 OpenViking 服務器(本地或遠程)
安裝命令如下:
dsh plugin --profile <profile> add github:xiaono1/dsh-ov-memory
注意:若 profile 中已存在其它佔用 mcp__openviking__* 命名空間的插件,兩者不能共存,請先移除後再啓用本插件。
典型用法¶
配置連接¶
默認連接 http://127.0.0.1:1933。憑據沿用 OpenViking 生態的統一解析順序(環境變量、~/.openviking/ovcli.conf、~/.openviking/ov.conf)。如需顯式覆蓋,在 profile 的 cordis.patch.yml 中寫入:
- insert:
- id: ov-memory
config:
- id: ov-memory-runtime
config:
endpoint: 'http://127.0.0.1:1933'
apiKey: 'your-user-key'
recall:
enabled: true
budgetTokens: 2000
scoreFloor: 0.35
capture:
toolResults: false
skipSubagentSessions: false
commit:
thresholdTokens: 20000
keepRecentCount: 10
learn:
minScore: 0.5
使用斜槓命令¶
在對話中使用 /memlearn 命令直接把一條經驗寫入長期記憶,無需開啓模型回合,原文不進會話日誌。
環境變量¶
可通過環境變量配置連接信息:
* OPENVIKING_URL / OPENVIKING_BASE_URL:服務器地址
* OPENVIKING_API_KEY / OPENVIKING_BEARER_TOKEN:鑑權憑據
* OPENVIKING_ACCOUNT / OPENVIKING_USER:租戶/用戶
* OPENVIKING_PEER_ID:固定 actor peer
* OPENVIKING_PENDING_DIR:outbox 目錄(默認 ~/.openviking/pending)
適用場景與注意¶
本插件適合需要長期記憶、上下文複用以及離線容錯的智能體開發場景。由於插件以當前 DSH 進程權限運行,建議在安裝前檢查源碼與許可證。
結尾¶
dsh-ov-memory 通過標準化的接口將 OpenViking 的記憶能力引入 DSH 生態,幫助開發者構建具備持久化記憶的智能體。更多細節與文檔可參考 目錄頁 或 GitHub 倉庫。