前言¶
在 DSH 裏跑智能體,常見做法是往系統提示裏塞「長期記憶」:字多了占上下文,字少了不夠用;更重要的是,這些句子不會隨複習變牢、也不會淡,更談不上「這條信什麼、證據在哪」。
「穗」(dsh-sui)是維護者 xiaoman-mai 發佈在 DSH 插件生態裏的一類記憶插件。它把跨會話信息拆成記錄 / 記憶 / 感覺三層,用 SQLite 記賬,用 ACT-R 思路算活躍度,用雙提煉者(含七情六慾座標)把關後才進人格;會話側還提供約 30 個讀寫工具、每輪自動注入、以及側欄人格面板。下文按「它是什麼 → 怎麼裝 → 怎麼用 → 注意什麼」說明,事實均出自倉庫 README 與 package.json(版本 0.1.0,許可證 MIT,要求 DSH >= 0.2.0)。
這是什麼¶
一句話:給 DSH 掛一套有賬本的長期記憶——發生過什麼在「記錄」,我信什麼在「記憶」,滋味在「感覺」;性格、情緒、語氣由上層演算,不單獨落表。
| 層 | 回答什麼 | 數據表(README 所列) |
|---|---|---|
| 記錄 | 發生過什麼 | facts |
| 記憶 | 我信什麼 | memories + memory_facts |
| 感覺 | 那是什麼滋味 | feelings + memory_feelings + feeling_hits |
之上還有三項衍生結果(不算獨立存儲):性格(sui_character)、情緒(sui_mood)、語氣(sui_voice)。
- 目錄頁:skillhub.cn/plugins/xiaoman-mai/dsh-sui
- 源碼:github.com/xiaoman-mai/dsh-sui
- 設計細節:
tools/sui/README.md(三層規矩與理論依據,在倉庫內)
核心能力(已覈實)¶
記賬,而不是填空。
- 每條記憶可掛原始記錄(證據鏈),不是孤立一句斷言。
- 感覺需兩個獨立提煉者都挑中才進人格;README 強調旁聽不能在同一上下文裏自證蓋章。
- 活躍度按 ACT-R 基礎激活計算,複習過的條目不易淡出。
- 人格由多次「撞擊」長出,不是靜態標籤列表。
工具面(README 分組摘要)。
- 寫:
sui_fact、sui_memory、sui_witness、sui_supplement、sui_coord、sui_verify、sui_retract、sui_reword、sui_merge、sui_wish等。 - 讀:
sui_load(加載並記一筆)、sui_recall、sui_day、sui_mems、sui_dissent、sui_feelings、sui_persona、sui_character、sui_mood、sui_voice等。 - 回查:
sui_quote——在要替別人轉述前,把記憶/記錄掛着的內容攤開;抄本不等於可核源。 - 管:
sui_snapshot、sui_snapshots、sui_diff、sui_rebuild、sui_backup。
自動行爲(掛上會話後)。
- 每輪想起:約每分鐘緩存「該想起的」與「此刻語氣」,拼到
systemPrompt.context末尾;用戶話裏雙字能對上記憶字面時優先注入,否則取活躍度最高的幾條(默認條數見調參表)。 - 自動落盤:上下文到
pressureMid提醒該記,到pressureHigh自動把最近用戶原話落成記錄(只存原話)。 - 異議上桌:刷新時跑
dissent --brief,把「旁聽挑過、一次沒認領」的詞帶進注入,避免刺耳分歧躺在庫裏看不見。
側欄面板:「穗」四頁籤——人格(七情+六慾柱狀)、記憶、存檔、參數。參數改 tools/sui/settings.json,約一分鐘生效;衰減類改完需 sui_rebuild。
安裝與啓用¶
README 未給出 dsh plugin add … 一類命令;安裝路徑是:包自帶 bundle patch,由 Loader 自動插入。
在 profile 的 cordis.patch.yml 裏不要再寫同 id 的 insert,否則會 duplicate id。若要改配置,用同 id 的頂行覆蓋,例如:
- id: sui
name: dsh-sui
config:
workspace: 'D:/Users/張鍇/Documents/deepseek-harness/default-workspace'
python: 'C:/Users/張鍇/.dsh/dsh-runtimes/dsh-primary-runtime/dependencies/python/python.exe'
presets:
- daughter-agent
- standard
scopeWorkspaces:
- 'D:/Users/張鍇/Documents/deepseek-harness/default-workspace'
| 配置項 | 含義 |
|---|---|
workspace |
工作區根;庫文件在 <workspace>/tools/sui/sui.db |
python |
執行 sui.py 的解釋器;不填則讀環境變量 DSH_sui_PYTHON |
presets |
僅這些預設會話自動想起;空則 README 寫明默認只認 daughter-agent |
scopeWorkspaces |
僅這些工作區生效;空則不限 |
改配置後需重啓宿主才生效。
安裝前建議:插件以當前 DSH 進程權限運行,應自行閱讀 源碼倉庫 與 MIT 許可證;社區目錄站點與 DeepSeek / 幻方無官方從屬關係,並非「官方應用商店」。
典型用法¶
1、日常讀寫與加載¶
模型或用戶通過工具寫入記錄/記憶;每輪由插件調用 sui_load 邏輯注入上下文。需要按詞翻檔時用 sui_recall,看近期記憶用 sui_mems。
對外轉述前先 sui_quote,覈對源是否可達。README 註明:寫記錄時若文本像轉述(含「說/告訴/問」等)卻未帶 quote,寫入結果會提示日後回查只能回到自己的概括。
2、旁聽對賬(感覺進人格的前置)¶
旁聽流程 README 寫得很具體,核心是另一上下文、最好另一模型挑詞,並帶七情六慾座標:
sui export --out pending.txt導出待對賬原文(含證據,不帶自己的詞)。- 交給 DSH 子代理等另一
provider/model,只給原文。 - 要求對方給出座標(七情一格 + 六慾一條)。
- 回填:
sui witness <id> --feel 詞1,詞2 --coords "詞1:喜/耳,詞2:思/生" --by "旁聽:<模型名>",--by必填。 - 對不上再考慮真同義才
sui_merge;不要爲湊交集而歸併。 - 查賬:
sui_mems看「旁聽來自 xxx」;空或same-context視爲漏洞。
3、面板與調參¶
側欄調 pressureMid / pressureHigh、recallItems、voiceItems、maxChars 等(完整默認值見下表)。衰減相關改動後執行 sui_rebuild。
| 名字 | 默認 | 意思 |
|---|---|---|
pressureMid / pressureHigh |
55 / 75 | 上下文到幾成提醒 / 自動落盤 |
recallItems / voiceItems |
3 / 3 | 每輪注入記憶條數 / 語氣詞數 |
maxChars |
700 | 注入字數上限 |
autoRecordBatch |
6 | 一次最多自動落幾條 |
decayThreshold |
0.2 | 活躍度低於則淡出 |
loadWindowDays |
30 | 檢索窗口天數 |
decayPower |
0.5 | ACT-R 的 d |
4、自測(倉庫內命令)¶
# 數據層:臨時庫,不碰 sui.db
python tools/sui/test_sui.py
# 插件層:工具名 ↔ 命令行契約
node dsh-sui/test/contract.mjs
適用場景與限制¶
適合誰
- 需要在 DSH 多輪會話裏保留「有證據、可淡入淡出、可異議」記憶,而不是靜態 prompt 塊;
- 願意維護旁聽流程(換模型)與 SQLite 庫備份;
- 使用 Web 側欄面板觀察人格/記憶曲線。
README 列出的已知限制(節選)
- 旁聽者與主會話爲同一模型時,長期偏好難以完全擋住。
- 一個庫對應一張臉;混寫不同
owner的記錄會攪亂人格。 - 相關性僅靠字面重疊弱校驗,不相干記錄仍要人看。
- DSH 工具全局註冊,
memoryGate只能讓未綁定會話調用時返回提示,工具名仍在列表。 - 面板默認庫須顯式配置,否則可能誤連空
sui.db顯示全 0。
結尾¶
穗把 DSH 的長期記憶從「提示詞裏的死句子」改成「記錄—記憶—感覺」三層賬,並靠 ACT-R 活躍度、雙提煉旁聽和每輪注入,讓跨會話行爲更像「記得住、會對賬、敢留異議」。上手路徑是:通過 bundle 啓用 → 配好 workspace 與 python → 寫記錄/記憶 → 旁聽見證 → 看面板與 sui_dissent 查漏洞。