DeepSeek Harness 角色設定與長期記憶管理插件 (dsh-plugin-persona-memory)

前言

DeepSeek Harness(DSH)採用插件化架構,允許在宿主組合層註冊行爲。dsh-plugin-persona-memory 插件解決了傳統記憶管理方案(如 memory-boot、ptc-memory)僅在選中特定預設時才注入記憶的問題。該插件將角色設定與長期記憶管理註冊在宿主組合層,使得記憶對所有 agent 預設的每個會話生效。它替代了舊版的三 agent 預設加載方式,提供了一套統一的角色庫、全局/項目兩級記憶以及長期日誌管理方案。

核心功能

該插件提供以下核心能力:
* 角色設定與長期記憶管理:支持角色庫的增刪改查及切換。
* 宿主組合層註冊:安裝後追加進 dsh.profile.bundles,通過 cordis.patch.yml 插入宿主組合。
* 右側欄管理面板:提供可視化的角色、記憶和日誌管理界面。
* 工具與技能:提供 memory 和 persona 兩個全局工具,以及 persona-creator 技能。
* 長期日誌 (JOURNAL.l):支持追加與檢索,但不注入提示詞。

安裝與啓用

使用 DSH 內置插件管理器進行安裝。安裝命令如下:

dsh plugin --profile <profile> add github:hu568/dsh-plugin-persona-memory

安裝後,本包被追加進 profile 的 dsh.profile.bundles。驗證安裝是否成功,可以在 agent 中請求接口:

GET /persona-memory/api/state

返回 200 且 ok: true 即表示面板路由已註冊。

文件結構與注入邏輯

插件會在宿主環境生成以下文件和注入段落:
* 角色庫:$DSH_HOME/personas/<id>/{persona.yml,SOUL.md,USER.md}
* 全局記憶:$DSH_HOME/memory/FACT.md
* 項目記憶:<項目根>/MEMORY.md
* 長期日誌:$DSH_HOME/memory/JOURNAL.l

注入的提示詞段落使用 memory: 前綴(如 memory:soul, memory:user, memory:facts),並設置 interpolate: false。這確保了即使在精簡模式(router-standard)下,這些段落也能保留,同時避免了宿主 renderPrompt() 對未註冊變量的錯誤處理。

寫入限制

爲了防止上下文無限膨脹,插件在寫入側設置了硬性閘口(超限直接報錯,不靜默截斷):

文件 限制規則 說明
全局 FACT.md 行數 AND 字節 默認 100 行 / 8000 字節(UTF-8)。任一超限即拒絕寫入。
項目 MEMORY.md 字符數 默認 8000 字符。與注入側 maxChars 同口徑。
長期日誌 JOURNAL.l 無限制 僅追加,不注入提示詞,用於流水賬存儲。

子代理行爲

子代理會話的注入邏輯與主會話不同:
* 不注入:角色 (memory:soul/memory:user)、全局記憶 (memory:facts → FACT.md) 及長期日誌 (JOURNAL.l) 均不注入。
* 僅注入:項目記憶 (memory:facts → MEMORY.md) 會被注入,因爲這是子代理執行具體委派任務所需的上下文。
* 配置:可通過 subagentProjectOnly: false 恢復舊版(子代理與主會話一致)的行爲。

工具與面板

插件註冊了兩個全局工具 memory 和 persona,以及右側欄面板。

工具命令

  • memory:
    • action=read: 讀取 FACT.md、MEMORY.md 並報告當前體量。
    • action=update, scope=global: 覆蓋寫入 FACT.md(受行數/字節限制)。
    • action=update, scope=project: 覆蓋寫入 MEMORY.md(受字符數限制)。
    • action=append: 向 JOURNAL.l 追加日誌。
    • action=search: 按子串檢索日誌。
  • persona:
    • action=list/current/show/use/create/update/delete: 管理角色庫。

面板 API

右側欄面板通過 HTTP 路由提供服務,前綴默認爲 /persona-memory:

GET  /persona-memory/api/state
POST /persona-memory/api/persona/{show,use,save,delete,order}
POST /persona-memory/api/memory/save
POST /persona-memory/api/journal/{append,search}

注意事項

  1. 卸載不會清理數據:執行 remove 操作不會刪除 $DSH_HOME/personas 和 $DSH_HOME/memory 目錄下的文件,需手動清理。
  2. 更新操作:若插件內容更新但安裝規格字符串未變,DSH 會報 ambiguous-install 錯誤。更新時需先 remove 再 add。
  3. 依賴項:運行依賴 schemastery(別名安裝 npm:@deepseek-ai/schemastery@3.18.2)。
  4. 版本兼容:實測 DSH 版本爲 0.1.5-rc.1 ~ 0.2.0-rc.2。
羽毛球分组比赛记分
小程序二维码

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

小夜