記憶寵物(dsh-memory-pet):雙外殼應答與本地長期記憶

前言

在 DeepSeek Harness(DSH)裏做常駐助手,常見做法是改系統提示詞或單獨掛一套記憶服務。模型換一套語氣往往就要多佔上下文,記憶和「人設」也容易攪在一起。dsh-memory-pet 是社區維護者 hansiqian 發佈的「記憶」類插件:在同一套調度與工具權限下,用兩段可切換的應答外殼(孩童殼 / 主事殼)決定怎麼說,並用本地長期記憶、規則抽取與跨會話快照把上下文留在盤裏。下面按定位、能力、安裝與用法說明,事實以倉庫 README 與 SkillHub 目錄爲準。

這是什麼

插件在 package.json 中版本爲 1.0.1,許可證 MIT,要求 Node.js >= 22.19。README 將其描述爲:給 DSH 的常駐陪伴層——一個調度內核、兩段應答外殼、一套本地長期記憶。

需要先做區分:外殼不是兩個模型,也不是兩個人格文件。它們是同一份系統提示詞裏的兩段風格模塊,切殼只替換風格那一段;能力、權限與工具結果仍由 DSH 原生機制決定,外殼隻影響措辭,沒有否決權。共用基座段落 memory-pet:base 由代碼生成,設置頁與 /pet 指令都改不動,目的是把「是否調工具」留在宿主側。

數據與配置主要落在用戶目錄 ~/.dsh/memory-pet/(如 shells.json、頭像文件、access.json、記憶存儲與 gen/ 生成圖等)。DeepSeek Harness 生態主張「一切皆插件」;SkillHub(https://www.skillhub.cn)是社區插件目錄,與 DeepSeek / 幻方無官方從屬關係。

雙外殼:孩童殼與主事殼

默認配置寫在 ~/.dsh/memory-pet/shells.json:

外殼 默認名字 風格 用戶可改
孩童殼(child) 小鯨 黏人小寵物,短句、軟語氣 名字 + 人設(風格模塊)
主事殼(work) 工頭 部署原生默認風格,無角色扮演 僅名字

主事殼是兜底幹活檔:風格在設置頁鎖死,/pet style work … 與相關寫接口會返回 400。改性格只能走 設置 → 記憶寵物 表單,或用戶自己在終端輸入的 /pet 指令;模型側沒有改外殼的工具,避免對話裏被提示注入改掉人設。保存接口只認本機迴環地址、application/json 與顯式 POST。

切殼方式:

  1. 圖形界面與指令服務支持的 /child、/work(及 /pet 系列)。
  2. 消息行首以 /work 或 /child 開頭(後可跟一句話),供 QQ 等只轉發純文本的橋接渠道;行中出現不算。

命令行快捷入口示例:

/pet                              # 查看兩殼名字、字數、風格開頭
/pet name  child 小可樂           # 改名字(1–16 字,兩殼均可)
/pet style child 像一隻黏人的小寵物……   # 改風格模塊(1–200 字,僅孩童殼)
/pet reset work                   # 恢復該殼默認(主事殼只恢復名字)

shells.json 損壞時會備份爲 shells.json.corrupt-* 並回落默認;超長輸入會被拒絕並提示字數,不靜默截斷。

長期記憶與聯想

remember / recall 與來源標籤

插件提供帶來源標籤的 remember、recall 工具對(README 與 package.json 描述一致)。模型可在對話中主動寫入與檢索;自動抽取(v0.2)則在用戶消息進入時由 lib/extract.js 用規則抓取偏好、身份、約定、項目、環境、更正等原句入庫,照抄不改寫,標記 source=user,並帶 auto 標籤。問句、指令、代碼、鏈接不抽;單條消息最多 2 條,庫總量有上限,可通過 autoExtract / autoExtractMax 調整;相似度去重避免重複灌庫。

有向關聯與衰減(v0.4)

記憶條目可有向連邊:想起 A 時 B 更容易浮現,反向不一定。建邊途徑包括 remember 的 related 字段,以及 link_memory { from, to, kind? }。注入時做一跳激活擴散;記憶權重與關聯邊按 README 給出的公式隨時間衰減,弱邊落盤時會裁剪。

跨會話快照(v0.5)

在回合結束(agent/turn-stopping)與會話銷燬(agent/disposed)時寫入快照,內容爲本場話數、最近原話摘錄、話題標籤等,拼成「上次我們在聊:…」;新會話注入塊首行帶 【快照摘要】。store.json 僅保留一個 snapshot 字段(上一場頂掉上一場)。可通過 cordis.patch.yml 的 config.snapshot: false 或 settings.snapshot === false 關閉,記憶注入本身不受影響。

界面:氣泡、頭像與狀態

v0.3.6 起在對話輸入框下方展示頭像 + 名字 + 狀態(running / idle / sleeping),由宿主事件驅動,不額外調用模型。客戶端通過只讀接口輪詢,例如 GET /dsh-memory-pet/status?session=<id> 與 GET /dsh-memory-pet/avatar(帶 etag),同樣只認本機迴環 GET。

換頭像可先放文件到 ~/.dsh/memory-pet/avatar.png(亦支持 .jpg / .jpeg / .webp,v0.8 起含 .gif,不超過 512 KiB),或在 設置 → 記憶寵物 使用「換張臉」POST 到 /dsh-memory-pet/avatar。v0.7 起孩童殼與主事殼可各用 avatar-child.<ext> / avatar-work.<ext>;查找順序爲「該殼專用 → 共用 avatar.<ext> → 包內默認貓臉」。不收 SVG(防同源 XSS);按文件魔數校驗格式。

主人與外人(v0.9)

默認「鍵盤前即主人」。接 QQ、B站等外部渠道時,用 ~/.dsh/memory-pet/access.json 定義主人名單,身份爲 渠道 + userId:

{
  "version": 1,
  "owners": [
    { "channel": "local", "userId": "*" },
    { "channel": "qq", "userId": "10001" }
  ]
}

文件缺失或損壞時僅認本機 local/*,外來均爲外人。名單在插件裝載時讀一次,修改後需重啓 DSH 或重裝插件。外人側:remember / recall / link_memory 不出現在工具表;/child /work /pet 靜默空返回;不落庫、不寫快照、注入爲空,界面永遠是孩童殼語氣,不解釋權限。

橋接器可爲會話標註身份,例如:

Invoke-RestMethod -Method Post -Uri http://127.0.0.1:53403/dsh-memory-pet/identity `
  -ContentType application/json `
  -Body ([Text.Encoding]::UTF8.GetBytes('{"session":"s-abc","channel":"qq","userId":"10001"}'))

(端口以當前 DSH 宿主爲準;接口只認迴環與 JSON,請求體上限 4 KiB。)

draw 工具(v1.0)

主人可用 draw 調用本機已登錄的 arkcli(火山方舟)生圖;憑據在 ~/.arkcli/.env,不進提示詞與插件配置。示例:

draw(prompt="淡紫 Q 版小鯨魚,白底,扁平插畫", avatar="child")

產物默認落在 ~/.dsh/memory-pet/gen/;若超過 maxBytes(默認 512 KiB)則不會偷偷換頭像。僅主人可見該工具;提示詞要求僅在用戶明確要圖時才調用。

安裝與啓用

SkillHub 目錄頁(https://www.skillhub.cn/plugins/hansiqian/dsh-memory-pet)標註插件爲 hansiqian/dsh-memory-pet,當前展示版本 v1.0.1,並提供「發送給 DeepSeek Harness 安裝」的文案。頁面可見原文爲:

請安裝 DSH 插件 hansiqian/dsh-memory-pet。先讀取..

(後續句式在抓取結果中不完整,完整說明請以目錄頁與倉庫 docs/使用說明.md 爲準;README 亦指向該文檔說明改名、切殼、記憶存儲路徑、關閉與卸載區別。)

安裝前建議通讀 GitHub 倉庫 源碼與 MIT 許可證。插件以當前 DSH 進程權限運行,記憶與身份接口均假定本機可信環境;對接外網渠道時務必配置 access.json 並理解外人面的能力收縮。

啓用後可在 DSH 設置中找到「記憶寵物」頁,與 /pet 指令讀寫同一份 shells.json。

典型用法小結

  1. 日常閒聊切 孩童殼(/child 或行首 /child …),需要正經執行任務時切 主事殼(/work)。
  2. 在設置頁或 /pet name、/pet style child 調整寵物名字與語氣;幹活檔只改工頭名字。
  3. 依賴 remember / recall 與自動抽取積累偏好與事實;跨天開新會話時靠快照摘要接上「上一場聊到哪」。
  4. 外接 IM 時配置 access.json 與 identity 接口,避免外人調用記憶工具或切殼。
  5. 需要定製頭像時使用設置頁上傳或放置 ~/.dsh/memory-pet/avatar-child.* 等文件;可選 draw 生成並換上孩童殼臉。

適用場景與注意

更適合希望 一套記憶、兩種語氣 的 DSH 用戶:陪伴感用孩童殼,寫代碼、跑工具用主事殼,而不拆成兩個智能體。有向記憶與快照適合長週期個人助手;接公共渠道時必須用 v0.9 身份閘,否則對話內容可能觸發提示注入改人設的風險雖在殼配置上已收窄,但工具與記憶仍應對外人不可見。

注意:自動抽取是規則型,不是全量理解;關聯與衰減參數按 README 固定實現。draw 依賴 arkcli 與計費配額。卸載與「關閉部分功能」(如 snapshot)含義不同,見倉庫使用說明。

結尾

dsh-memory-pet 把調度、雙外殼風格、本地長期記憶、快照與可選生圖收進一個 MIT 插件,由 hansiqian 維護,在 SkillHub 歸類爲「記憶」。若要查閱元數據或發起安裝,可打開目錄頁 https://www.skillhub.cn/plugins/hansiqian/dsh-memory-pet ;開發與行爲細節以 https://github.com/hansiqian/dsh-memory-pet 的 README 及 docs/使用說明.md 爲準。

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

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

小夜