dsh-seed:從經歷長出來的人格與記憶

前言

DeepSeek Harness(DSH)新開一個會話就從頭開始:你說過的規矩、定過的邊界、踩過的坑,下一輪往往全沒了。人設卡能影響「它像不像一個人」,但解決不了「它還記不記得你」;常見的記憶插件能留住事實,卻未必因此形成穩定的人格表述。

下面介紹社區插件 dsh-seed(維護者 990718xyh),它在 DSH 裏同時做兩件事:記住發生過什麼,再從經歷裏更新「我是誰」。插件歸類爲「記憶」,當前 GitHub 星標爲 0;生態上 DSH 奉行「一切皆插件」,目錄站 SkillHub 插件頁 與 DeepSeek / 幻方無官方從屬關係。

這是什麼

dsh-seed 的定位是:給 DSH 從零長出來的人格——「A persona that grows from experience: remembers what happened, becomes someone from it.」

它不預設完整人設,靠輪次內的抽取、治理、反思與自述,把關於你的稱呼、邊界和禁忌寫進上下文,並在證據足夠時修訂自述版本。實現上僅使用 node: 內置模塊,無原生擴展、無需構建;許可證爲 MIT,package 版本在資料中爲 0.7.2,要求 DSH ≥ 0.2.0。

裝上之後多出什麼

新會話不用重講。 每輪開頭會把你們談定的稱呼、邊界、踩過的坑重新注入上下文。例如你說過「週日別找我」,下一輪它會自行帶上這條約定。

人格會隨經歷變化。 攢夠未處理的條目會觸發反思,抽出帶事件 id 的判斷;再攢夠判斷會生成「我是誰」的候選,經審查後才落盤,證據不足則駁回。

過程可觀測。 配置面板後可在 /persona 查看九層各有多少條、自述當前第幾版、本輪向上下文注入的字數等。

每輪在跑什麼

一輪對話結束後,插件在後臺大致按下列鏈路運行(抽取與提煉走小模型;失敗只寫審計,不打斷對話):

輪末
 │
 ├─ 抽取:這一輪裏有什麼值得留
 │
 ├─ 治理:新來的跟舊的什麼關係
 │     ADD / UPDATE / DELETE / NOOP / DEFER
 │
 ├─ 攢夠 5 條沒嚼過的 → 反思:抽出判斷,每條掛事件 id
 │
 └─ 攢夠判斷 → 自述:出候選 → 審查 → 落盤或駁回

資料中強調的設計約束包括:

  • 事實不物理刪除:說錯了標 invalid、留失效時間,便於事後追溯。
  • 記憶強度:被檢索一次 +0.05(封頂 1.0),未使用則每天 ×0.998(下限 0.1);稱呼、約定、禁忌釘住,不衰減且每輪固定注入。
  • 反思必須帶證據:每條判斷掛真實事件 id,掛不上則丟棄。
  • 自述有閘門:改「我是誰」先出 proposal,review 通過才落盤。
  • 檢索:Unicode 分詞(CJK bigram / 其他語言整詞 / NFKC),idf 加權與 BM25 長度歸一化;匹配到本輪最高分 85% 的條目不參與時間衰減。
  • 只收三類關於你的事:怎麼稱呼你、談定的邊界、明確禁止的。

安裝與啓用

在 DSH「Add plugin」嚮導裏搜索 dsh-seed,或使用官方 CLI(命令以 README 爲準):

# 瀏覽器版
dsh plugin --profile web add github:990718xyh/dsh-seed

# 桌面版
dsh plugin --profile desktop add github:990718xyh/dsh-seed

裝完重啓 DSH。不要急着看面板——先聊兩句;第一輪結束後它纔開始記。

卸載示例(桌面 profile):

dsh plugin --profile desktop remove dsh-seed

插件以當前 DSH 進程的權限運行;安裝前請自行查看 GitHub 源碼 與 MIT 許可證,確認符合你的環境與安全要求。

配置

在 ~/.dsh/profiles/<profile>/cordis.patch.yml 中插入 persona 段(示例來自 README):

- insert:
    - id: persona
      name: 'dsh-seed'
      config:
        id: seed
        dir: ~/.dsh/persona
        heartbeat: { enabled: true, everyMinutes: 30 }
        study: { enabled: false }
        panel: { enabled: true, route: /persona, port: 8787 }

說明要點:

  • id 決定數據目錄名(見下文「數據落盤」)。
  • llm 不寫則跟隨當前選中的模型;寫死模型可能在換模型後出現 no API key,抽取鏈會靜默停止。
  • study(自學)默認關閉;開啓需要聯網與 API 費用,按需再開。
  • 面板默認端口 8787;被佔用時改 panel.port,否則面板起不來,僅在審計裏留下 panel-error。

數據落盤

數據在 ~/.dsh/persona/<id>/,純文本可直接查看:

journal/<host>.jsonl   所有寫入,只追加
snapshot/base.json     壓實後的基線
heartbeat.json         心跳狀態

典型用法

  1. 按上文命令安裝並重啓 DSH。
  2. 先進行至少一輪正常對話,讓輪末抽取與治理跑起來。
  3. 在後續新會話中驗證:稱呼、邊界、禁忌是否自動出現在上下文,無需重複口述。
  4. 需要可視化時啓用 panel,訪問配置的 route(默認 /persona)查看層級與自述版本。
  5. 若希望插件聯網自學,再將 study.enabled 設爲 true 並確認 API 與費用可接受。

適用場景與注意

適合:長期用同一 DSH profile 協作、希望跨會話保留約定與禁忌,並讓人格自述隨真實對話緩慢演進,而不是每輪重講規則或只靠靜態人設卡。

注意:

  • 記憶範圍刻意收窄爲「稱呼 / 邊界 / 禁止」,不是通用知識庫;什麼都記等於什麼都抓不住。
  • 反思與自述依賴小模型與證據鏈;異常時查審計,而非假設已 silently 寫入人格。
  • 面板與 heartbeat 會佔用本地端口與定時任務;端口衝突務必改配置。
  • 社區目錄與 GitHub 爲獨立信息源;版本、星標與行爲以你安裝時的包與 README 爲準。

結尾

dsh-seed 把「記住發生過什麼」和「從經歷里長出是誰」放在同一條輪末流水線裏:治理、反思、自述閘門與可讀的落盤目錄,面向 DSH 開發者做可覈對、可運維的長期人格記憶。

  • 目錄頁:https://www.skillhub.cn/plugins/990718xyh/dsh-seed
  • 源碼與文檔:https://github.com/990718xyh/dsh-seed
羽毛球分组比赛记分
小程序二维码

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

小夜