前言¶
在 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