dsh-persona:爲 DeepSeek Harness Agent 添加可切換人設與記憶

DeepSeek Harness(DSH)採用插件化架構。雖然內置指令很方便,但它們通常是靜態的文本模板。如果你希望 Agent 具備特定的角色性格,或者在多個會話中保持一致的行事風格,就需要更高級的機制。dsh-persona 插件通過注入人設提示詞和跨會話記憶,解決了這個問題。

是什麼

dsh-persona 是一個由 haimuhaimu 維護的插件,旨在給 DSH 的 Agent 裝上一個可切換、會記住的“人設”。它支持持久化人設注入、跨會話角色記憶和運行時切換,內置了三個精寫人設和一個“本尊”模式。

核心功能

  • 持久人設注入:在每輪請求前,將當前人設作爲上下文注入。Agent 全程以該身份回應。
  • 跨會話角色記憶:每個人設獨立保存一套記憶(存儲在 ~/.dsh/persona-memory.json)。重啓後依然記得,激活時自動注入最近記憶。
  • 運行時切換:通過工具命令一鍵換人設,選擇會持久化到磁盤。
  • 內置人設:包含 3 個精寫人設和 1 個“default”模式。
  • 純 JS、零構建:與 dsh-image-gen 一樣,即裝即用。

安裝與啓用

使用官方命令安裝:

dsh plugin --profile <profile> add github:haimuhaimu/dsh-persona

如果通過 pnpm 安裝遇到 prepare 腳本攔截,需將包鍵加入 profile 的 pnpm-workspace.yaml 的 allowBuilds 後重新 add。安裝完成後重啓 DSH Desktop 或重載 profile。

使用方法

安裝並啓用後,agent 默認以 an-ruotong 身份回應。

列出人設

list_personas

切換人設

switch_persona("yan-guan")

關閉人設恢復默認:

switch_persona("default")

記憶管理

  • 記住:將一件事記進當前人設的跨會話記憶。
    persona_remember("用戶喜歡清晨的光線、討厭網紅風")
  • 回想:查看當前人設的記憶(可傳關鍵詞過濾)。
    persona_recall
  • 遺忘:按序號刪除一條記憶(序號對應 recall 的列表)。
    persona_forget 1

內置人設

id 名字 特點
an-ruotong 安若童 清冷敏銳的視覺觀察者,用照片和短句記錄普通日常
yan-guan 嚴觀 眼光毒辣、有品位的審美與文案裁判
lao-jie 老街 舊書店裏的說書人,把瑣事講成有畫面感的小故事
default 本尊 關閉人設,回到 DSH 默認助手

配置與機制

配置項

在 cordis.patch.yml 中可以配置:

鍵 默認值 說明
activePersona "an-ruotong" 首次運行的默認人設 id
statePath ~/.dsh/persona-state.json 狀態文件路徑(保存當前人設)
memoryPath ~/.dsh/persona-memory.json 跨會話記憶文件路徑
personas [] 追加自定義人設

人設選擇的優先級:持久化狀態 > activePersona > default。想重置,刪除狀態文件即可。

工作原理與限制

  • 注入機制:人設文本(提示 + 記憶)作爲一條 kind: 'plugin' / form: 'instructions' 的用戶消息注入,進入會話日誌、跨輪可見。
  • 去重邏輯:注入按“人設 id @ 記憶版本”去重。切換人設或記憶變化時,下一次請求會重新注入完整上下文。
  • 記憶限制:每個人設最多 100 條、單條最多 400 字。注入時最多攜帶最近 40 條,防止上下文無限膨脹。
  • 已知限制:會話經歷 compaction(上下文壓縮)後,早期注入的人設可能被摘要掉。此時可再次 switch_persona 觸發重注入。

總結

dsh-persona 通過簡單的命令和配置,爲 DSH Agent 增加了性格和記憶。它適合希望獲得更穩定、更擬人化交互體驗的用戶。插件以當前 dsh 進程權限運行,安裝前請檢查源碼與許可證。

  • 插件目錄:https://www.skillhub.cn/plugins/haimuhaimu/dsh-persona
  • 源碼地址:https://github.com/haimuhaimu/dsh-persona
羽毛球分组比赛记分
小程序二维码

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

小夜