前言¶
在 DSH 裏開發或日常使用智能體時,會話分散在各個工作區,偏好、糾偏和協作習慣很難被穩定記住。常見做法是手抄筆記,或在單個項目裏塞一段 system prompt,但前者難維護,後者無法跨 workspace 彙總,也缺少「上次哪一步錯了、下次改哪」這類可執行的教訓層。
下面介紹社區插件 dsh-persona-memory(維護者 PaangGaaSam,分類:記憶)。它按日讀取 $DSH_HOME/sessions 下的全量會話日誌,經多階段摘要 growing 用戶畫像(profile.md)、陪伴側自我敘述(persona.md)和 只追加的教訓列表(lessons.md),並在每次請求的 system prompt 中按預算注入;數據僅落在本機 $DSH_HOME/persona-memory/,插件自述不會上傳到別處。
這是什麼¶
- 定位:Daily cross-workspace session digest that grows a user profile, a companion personality and a lessons list, then injects them into every prompt — with a settings page to inspect and steer it.
- 版本(package.json):0.3.2;許可證:MIT。
- 運行環境:DSH 桌面端,且需具備
webclient platform(設置頁爲dsh.clientbundle);Node^22.19.0 || >=24.0.0。摘要使用主機已配置的模型,插件自身不要求獨立 API key,也無構建步驟、無原生依賴。
核心功能¶
每日摘要流水線¶
默認 每天 17:00(可在設置中改)執行:
- 讀取窗口內所有 workspace、所有 session 的日誌(含多幀 zstd)。
- Stage 1:每個 session 一張卡片——主題、用戶需求、觀察(偏好 / 風格 / 思維 / 糾偏 / 摩擦)、助手當時的判斷(
self)、可疑雷點、未決事項等。 - Stage 2:合併爲
persona-memory/daily/YYYY-MM-DD.md;「我的判斷」原文進## 我的判斷,可疑項進## 可疑雷點;空回答記爲「(無)」。 - Stage 3:由觀察生成畫像建議,合併進
profile.md(近重複檢測、證據鏈、鎖定項受保護)。 - 每週:僅以助手判斷爲第一人稱素材,整理進
persona.md(我認爲我是誰 / 我和你相處時的樣子 / 還沒想清楚的),同樣遵守證據規則。 - 日終:當日可疑點與已有 lessons 文本交模型一次;由代碼決定上限、近重複合併、90 天過期、哪些規則待審批,寫入
lessons.md。 - 每次 prompt:注入
persona-memory段,順序爲 facts(佔位)→ lessons → profile → persona;默認總長約 1200 字符,profile / lessons / persona 基準佔比 55 / 25 / 20;某層不夠則把份額讓給可截斷層;lessons 硬頂 40%,因其每輪都會出現。
畫像與自我敘述回答「你是誰 / 我是誰」;lessons 單獨回答「上次哪裏錯了、下次改哪一步」,不進入 profile 與 persona。
lessons 如何累積¶
| 分區 | 上限 | 衰減 | 合併 | 誰可增刪 |
|---|---|---|---|---|
| 鐵律 (rule) | 5 | 永不 | 永不 | 僅人;須經人審批 |
| 時效經驗 (exp) | 5 | 90 天無確認則退役 | 同類陷阱 0.85 合併 | 系統可退役,人亦可 |
| 已作廢 (archive) | 不限 | — | — | 只追加備查 |
只追加、只作廢,不改寫已有句;若寫入前後任一既有條目的 id / 句 / scope / anchor 被改,寫入會被拒絕。人僅在設置頁通過 replace 改寫:舊句進已作廢,新句追加。
教訓來源包括:日報中的 ## 可疑雷點;後果信號(工具失敗、當場糾偏、返工、未解失敗)觸發時重讀近三日日報;用戶說「記一下」作爲候選寫入日報(無新工具)。模型提議步驟與分區,代碼裁定 cap、合併、過期與 新鐵律待審批。scope v1 僅 當前 workspace (cwd) 與 global。
persona 如何沉澱¶
Stage 1 在用戶觀察旁單獨記 self(助手當時判斷):observations 只喂 profile,self 只喂 persona。要求第一人稱、禁止第三人稱舞臺說明與語氣類形容詞;無「我」或仍像舞臺說明的行留在文件但不進 prompt。升級後若舊 persona.md 全是腳本式描述,注入層會暫時安靜,待新證據累積——屬預期行爲。
條目先落 還沒想清楚的(默認不注入);滿足 personaMinEvidence(默認 3 個不同 session)可進 我和你相處時的樣子;另滿足 personaCoreMinDates(默認 3 個不同日期)可進 我認爲我是誰。矛盾時模型可標 supersedes;無新證據超過 personaDemoteAfterDays(默認 30 天)回退候選。用戶定義的規矩進 profile(手動鎖定 / 雷區),不混入自我敘述。
安裝與啓用¶
先做插件安裝,再重啓桌面端:
dsh plugin add github:PaangGaaSam/dsh-persona-memory
重啓 DSH 桌面應用後,打開 設置 → 插件 → 記憶與畫像(英文:Settings → Plugins → Memory & persona)。在此可改調度、模型、預算或 scope;可點 立即運行 做首次摘要,或用 強制合併自述 演練 self-account 合併。
本地數據目錄:
$DSH_HOME/persona-memory/
典型用法¶
- 安裝並重啓後,在設置頁確認模型與每日時間(默認 17:00),需要時執行 立即運行。
- 日常對話在各 workspace 正常進行;插件自動讀
$DSH_HOME/sessions。 - 查閱
daily/YYYY-MM-DD.md、profile.md、persona.md、lessons.md或在設置頁審閱;鐵律類 lesson 在審批前不生效。 - 若需顯式記錄教訓意圖,在對話中說「記一下」,由日報流程承接。
- 新請求中會自動帶上 persona-memory 段;可在設置頁調節預算與範圍,避免 lessons 擠佔過多每輪額度。
適用場景與注意¶
適合:長期在多個 DSH workspace 協作、希望畫像與協作教訓跨目錄沉澱、又需要本機可控與可審閱證據鏈的開發者。
注意:
- 插件以當前 DSH 進程權限運行,安裝前請閱讀 GitHub 源碼 與 MIT 許可證,自行評估是否安裝。
- 依賴主機已配置 LLM;Node 版本需滿足
^22.19.0 || >=24.0.0。 - 社區目錄 SkillHub 插件頁 與 DeepSeek / 幻方無官方從屬關係;DSH 生態理念是「一切皆插件」,本文事實以倉庫 README 與 package 爲準。
結尾¶
dsh-persona-memory 把跨 workspace 會話變成可審計的日報、畫像、第一人稱自我敘述與硬上限的 lessons,並在每輪 prompt 中按預算注入;設置頁負責調度、審批與人工替換。進一步細節見倉庫 README(含 lessons / persona 細則)。
- 目錄頁:https://www.skillhub.cn/plugins/PaangGaaSam/dsh-persona-memory
- GitHub:https://github.com/PaangGaaSam/dsh-persona-memory