dsh-sui(穗):三層記憶與可覈對的人格

前言

在 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)。

核心能力(已覈實)

記賬,而不是填空。

  • 每條記憶可掛原始記錄(證據鏈),不是孤立一句斷言。
  • 感覺需兩個獨立提煉者都挑中才進人格;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。

自動行爲(掛上會話後)。

  1. 每輪想起:約每分鐘緩存「該想起的」與「此刻語氣」,拼到 systemPrompt.context 末尾;用戶話裏雙字能對上記憶字面時優先注入,否則取活躍度最高的幾條(默認條數見調參表)。
  2. 自動落盤:上下文到 pressureMid 提醒該記,到 pressureHigh 自動把最近用戶原話落成記錄(只存原話)。
  3. 異議上桌:刷新時跑 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 寫得很具體,核心是另一上下文、最好另一模型挑詞,並帶七情六慾座標:

  1. sui export --out pending.txt 導出待對賬原文(含證據,不帶自己的詞)。
  2. 交給 DSH 子代理等另一 provider/model,只給原文。
  3. 要求對方給出座標(七情一格 + 六慾一條)。
  4. 回填:sui witness <id> --feel 詞1,詞2 --coords "詞1:喜/耳,詞2:思/生" --by "旁聽:<模型名>",--by 必填。
  5. 對不上再考慮真同義才 sui_merge;不要爲湊交集而歸併。
  6. 查賬: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 查漏洞。

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

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

小夜