dsh-trivium:DeepSeek Harness 的進程內圖記憶插件

前言

用 DeepSeek Harness(DSH)開發智能體時,一個常見的麻煩是記憶不跨會話:這個會話裏確認過的決策、偏好和實體關係,下個會話就沒了。常見的補法是外掛向量庫或獨立記憶服務,但多一個進程就多一份部署和運維成本。

dsh-trivium 的做法是把圖記憶做成 DSH 插件,隨 dsh web 進程一起加載,每個工作區一個 .tdb 文件,不引入 sidecar 服務。DSH 的理念是「一切皆插件」,這個插件把記憶能力收斂成四個工具和一套剋制的注入策略。下面介紹它的定位、功能、安裝與注意事項。

這是什麼

dsh-trivium 是 QWQcool 維護的開源插件,屬於記憶類,定位是「In-process graph memory for DeepSeek Harness, backed by TriviumDB」:基於 TriviumDB 的進程內圖記憶。它只存節點和邊,儘量少注入,並允許人工糾錯。

版本與依賴信息如下:

  • 插件版本:0.4.16
  • 許可證:MIT
  • 依賴:triviumdb ^0.8.4(向量 + JSON payload + 有向加權圖)
  • Node 要求:^22.19.0 || >=24
  • 測試宿主:@deepseek-ai/dsh@0.1.1-rc.2dsh-llm / dsh-tools peers 也接受 0.1.0-rc.8

核心功能

跨會話圖記憶

節點分四類:entity / preference / decision / experience;業務邊爲 about / decided / broke / fixed。會話 A 存下的事實,會話 B 查詢時能帶着關聯一起取回。

默認安靜

新會話只注入一張短圖(≤400 tokens),模型需要更多時按需調用工具,不會每步傾倒內容。首輪短圖每會話只注入一次,若 session-start 與首個模型步驟競態失敗,由 pre-step 補上;不做每步重寫,對前綴緩存友好。

只提供四個工具

ctx_find / ctx_read / ctx_remember / ctx_link。開啓 Chips 或 Session layer 也不會增加第五個工具。

注入與召回

短圖通過 agent.inject() 注入而非系統提示詞,因此 persona.complete: true 不會丟掉短圖。每條召回攜帶路徑:命中來自哪個節點、沿哪條邊。

Chips 記憶白名單與 Session layer

Chips 默認關閉。在 Settings 開啓後標題欄顯示 Chips 標籤,勾選項固定注入下一輪(L0,≤300 tokens),chips 可添加、歸檔、刪除。Session layer 同樣默認關閉,開啓後可將壓縮/分叉繪製爲框圖。

人工可編輯

Settings 中可搜索、重命名、合併、導入/導出。

嚴格抽取與寫入衛生

閒聊、一次性文件編輯和密鑰不會自動從對話記錄寫入。ctx_remember、chip add、extract、外部導入都會經過寫入衛生門,拒絕亂碼、口吃循環、JSON 信封、base64 殘留與密鑰。

可選 embedding

默認關閉。官方 DeepSeek chat API 沒有 embeddings 端點;需要向量召回可填 OpenAI 兼容 URL。不開啓時,關鍵詞 + 圖遍歷仍然可用。

Git sidecar

默認關閉,trivium.jsonl 作爲業務事實的 git 源,開啓後可 Generate / 刪除 jsonl。

其他

  • 失敗不阻塞代理:存儲、embedding、抽取錯誤只記日誌,主循環繼續。
  • 界面跟隨宿主語言(zh / en)。

安裝與啓用

前提是已安裝 DeepSeek Harness 並至少啓動過一次 dsh web。運行:

dsh plugin --profile web add dsh-trivium

重啓 dsh web,打開一個工作區。Settings 會顯示 Trivium memory,Chips 標籤默認關閉。若你用 Dsh_BatStart 啓動 DSH,插件已自動安裝,可跳過這條命令。

安裝後,數據落在以下位置:

<workspace>/.dsh/trivium.tdb           # 本地索引,二進制,需 gitignore
<workspace>/.dsh/trivium.jsonl         # 業務事實,git 源
~/.dsh/trivium.json                    # 設置與 chip pins,可能包含手輸的 embedding API key
<workspace>/.dsh/trivium-pending.json  # 抽取失敗時的本地隊列

本地源碼調試則按下面兩步走,然後重啓 dsh web

npm install
node scripts/link-dsh.mjs

典型用法

跨會話存取

會話 A 中存儲 “auth goes in header X”;會話 B 調用 ctx_find("auth"),得到命中及其 about / decided / broke / fixed 關聯。

Git 協作

提交 trivium.jsonl,在 .gitignore 中忽略二進制文件:

.dsh/trivium.tdb
.dsh/trivium.tdb*
.dsh/trivium-pending.json

禁用但不卸載

數據保留。在該 profile 的 cordis.patch.yml 添加:

- id: dsh-trivium
  disabled: true

然後重啓 dsh web

更新與卸載

更新:再次運行 dsh plugin --profile web add dsh-trivium 並重啓 dsh web;源碼方式則 git pull 後重新運行 node scripts/link-dsh.mjs。更新不會清空記憶,已提交的 trivium.jsonl 可用 git checkout 恢復。

卸載:先停 dsh web,再運行:

dsh plugin --profile web remove dsh-trivium

卸載會刪除 ~/.dsh/trivium.json,以及插件打開過的每個工作區中的 trivium.tdb / trivium.jsonl / trivium-pending.json.dsh/ 下的其他文件保留。

適用場景與注意

適合在 DSH 上做長期項目、需要跨會話記住決策與實體關係、又不想爲記憶單獨部署服務的開發者。

使用前注意:

1、插件加載在當前 dsh web 進程內,以當前進程的權限運行。安裝前應檢查源碼與許可證(MIT)。

2、不要用兩個 Node 進程同時打開同一個 .tdb

3、網絡默認關閉:聊天文本不外發,抽取與搜索在本機執行。僅在你開啓 embedding 並填入 URL 後纔會外發;Settings 的 Check for updates 只取 npm registry 的版本號,不含對話內容。

4、~/.dsh/trivium.json 可能包含你手輸的 embedding API key,注意保管。

結尾

dsh-trivium 把跨會話記憶收斂爲一個進程內文件、四個工具和一套剋制的注入策略:默認安靜、可人工糾錯、失敗不阻塞主循環。如果你在 DSH 上需要記憶能力又不想引入額外服務,可以一試。

  • GitHub:https://github.com/QWQcool/dsh-trivium
  • 目錄頁:https://www.skillhub.cn/plugins/QWQcool/dsh-trivium

skillhub.cn 爲社區維護的插件目錄,與 DeepSeek / 幻方無官方從屬關係。

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

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

小夜