dsh-shared-brain:跨会话共享人设与分层记忆

前言

在 DeepSeek Harness(DSH)里开多个会话时,常见问题是:人设写在某一侧,记忆只留在当前对话里,换窗口或换插件开的会话又像「失忆」。单靠一长串平铺的记忆列表,还会出现「不要删文件」和「今天天气不错」在召回时被同等对待的情况。

下面介绍社区插件 dsh-shared-brain(维护者 youx123,分类:记忆)。它让人设与记忆在所有 DSH 会话之间共用,并按底线、认知、情感、本能、声音、网络、自动互动七个模块分别设权重与注入策略;表情包目录支持定时自动扫描加载。插件仓库:youx123/dsh-shared-brain,目录页:SkillHub 插件页。

这是什么

dsh-shared-brain 是 DSH 的「共享大脑」插件:统一管理跨 profile、跨会话的人设与记忆库,在每轮对话开始按加权规则召回,在对话结束自动摘要入库。人设由插件自持(内置人设 + 自定义,可给单个会话单独指定),不再依赖独立的人设插件;提示词段落全局注册,task-board、im、ssh 等插件开的会话与子代理也会拿到同一份注入,会话上下文按 agent.session.header.id 分开,避免并发互相污染。

数据默认落在 DSH_HOME(一般为 ~/.dsh)下的 storages/dsh-shared-brain/,与具体 profile 目录分离,因而跨 profile 共用同一套记忆与人设配置。

七个模块与注入方式

插件把记忆按「性质」拆成七个模块,各自有权重含义和注入策略(摘自官方 README 表格):

模块 装什么 权重含义 注入策略
底线 bottomline 操作限制、禁令、权限边界 约束强度(≥0.8 = 强约束) 手动钉住的才永远注入
认知 cognition 事实、结论、决定 置信度(≥0.8 = 已确认) 相关时召回
情感 emotion 关系、偏好、情绪、称呼 亲密度(≥0.6 = 强偏好) 相关时召回
本能 instinct 反复使用的行为习惯 使用频次(≥0.7 = 习惯) 高频时自动触发
声音 voice 说话方式、语气、口头禅 风格强度 常驻生效
网络 network 允许对外获取信息 — 开关
自动互动 agentive 允许主观能动性 — 开关

底线不会自动归类:分类器遇到「不要 / 必须 / 禁止」等信号时,只会记成高权重认知并提示可手动钉为底线;只有你在设置页或命令里钉住的条目才会每次强制注入。

召回分数公式(官方说明):

召回分数 = 基础相关性 × 条目权重 × 模块权重 + 模块加成

模块加成约为:底线 +3.0、本能 +1.8、情感 +1.4、认知 +1.0。权重为 0 的条目或模块不参与召回。模块权重可在设置页拖动,或用 /shared-memory weight <模块> <0..1> 调整。

入库、分类与寿命

入库:每轮对话结束自动摘要为「用户问 → 助手答」,分类器决定模块与条目权重;无信息量的轮次(如「继续」「ok」)跳过;含密钥的内容先脱敏再入库。

自动分类(按优先级,先命中先定):

  1. 情感 —— 出现「喜欢 / 讨厌 / 想念 / 叫我 / 我们」等信号词
  2. 本能 —— 同一主题在库里已出现 2 次以上(频次判定)
  3. 认知 —— 其余事实;命中「结论 / 原因 / 已修复 / 版本」等时置信度可提到 0.8

同一主题被提到 3 次以上会归入本能,权重随频次上涨。寿命由 judgeLifetime() 按整句语义判永久或临时(长期约定、稳定偏好多为永久;带「今天 / 本周」等时间窗的为临时;未命中信号时默认临时 14 天)。临时记忆到期清理,被召回时会滑动续期;新说法明显推翻旧说法时,旧条目会被标记为被取代。

条目可设作用域:全局生效,或仅在当前工作区(按 cwd)生效。

设置页与侧边栏

装完后 DSH 设置页会出现 「共享大脑」 一节,主要能力包括:

  • 记忆模块:底线 / 认知 / 情感 / 本能四卡片——权重滑杆、启停、清空模块、条目作用域(全局 / 本工作区)
  • 手动底线:写入约束并「钉住」;仅钉住项常驻注入
  • 声音 / 人设 / 语音与唱歌参数:语气、口头禅、自称;人设切换与编辑(切换后全会话即时生效);语音相关字段供后续语音模块使用
  • 表情包目录:指定目录(留空用默认 ~/.dsh/storages/dsh-shared-brain/emoji/),支持 .txt / .md / .emojilist 与常见图片格式(文件名即情绪名);默认约 5 分钟自动扫描,可改间隔(30 秒~24 小时)或「立即重扫」
  • 搜索记忆、能力开关(网络 / 自动互动)、自动互动 · 定时主动(见下节)、最近的记忆与清空全部记忆

输入框上方有 「大脑 · N」 小条:显示记忆总数、底线条目数、已开能力图标,点「打开面板」进入完整浮层。

本地 UI 通过回环 HTTP 与插件通信:

GET  /api/dsh-shared-brain/status
POST /api/dsh-shared-brain/mutate   {"action":"...", ...}

mutate 的 action 包括 setWeight、pinItem、setEmojiDir、rescanEmoji、runProactive、searchMemory 等(完整列表见仓库 README)。

自动互动

开启 自动互动 后,插件会按设定间隔向仍活跃的会话发送「主动检查一下」类 followup(agent.followup()),会唤醒会话并开启新一轮,而不是仅在系统提示里写一句「可以更主动」。设置页可配置:

  • 主动间隔(1 分钟~24 小时),保存后立即重启定时器
  • 「立刻主动一次」用于验证
  • 生效范围:全部会话或指定会话(可按工作区分组勾选)
  • 时间窗:例如 09:00~23:00(可跨午夜),窗外只响应用户明确交代的事

关闭自动互动时定时器停止。命令行侧可用 /shared-memory agentive on|off、agentive interval、agentive now 等(见下文)。

与 Cursor「共享大脑」协同

自 0.9.3+ 起,若本机安装了 Cursor 扩展 cursor-shared-brain,DSH 插件 lib/cross-sync.js 会监听 ~/.cursor/storages/cursor-shared-brain/ 下的协调文件与 ~/.cursor/rules/shared-brain/,从 Cursor 侧 inbound 拉记忆,入库时通过 writeStoreSynced 通知 Cursor 合并。修改后需重启 DSH 宿主生效。

安装与启用

装完后须把 dsh-shared-brain 写入 profile 的 package.json → dsh.profile.bundles,并重启 DSH 宿主。插件为纯 JS,装完无需构建;发布包需包含 assets/(含内置 assets/emoji/),否则表情功能不可用。要求 Node >= 20,DSH 引擎在 package.json 中声明为 >=0.2.0-rc.1。

方式一:设置页安装

  1. 打开 设置 → 插件 → 安装插件
  2. 粘贴下列任一地址并回车:
https://github.com/youx123/dsh-shared-brain
https://github.com/youx123/dsh-shared-brain/releases/download/v0.9.12/dsh-shared-brain-0.9.12.tgz
  1. 在插件列表确认 dsh-shared-brain 已启用,重启 DSH

GitHub 地址与 tgz 直链需本机可访问 GitHub(或代理);网络不通时可先下载 tgz,再用方式二。

方式二:CLI 安装本地 tgz

从 Releases 下载 dsh-shared-brain-0.9.12.tgz 后执行:

dsh plugin --profile <你的 profile> add ./dsh-shared-brain-0.9.12.tgz

方式三:git 源

dsh plugin --profile <你的 profile> add git+https://github.com/youx123/dsh-shared-brain.git

设置页出现「共享大脑」一节即表示宿主已加载插件。

典型用法:/shared-memory

除设置页外,插件注册 /shared-memory 命令,便于在会话里快速查看与改配置。示例(摘自 README):

/shared-memory                    总览:各模块条目数与权重、人设、能力开关、最近 5 条
/shared-memory modules            各模块明细
/shared-memory weight 认知 0.8     调整模块权重(0..1)
/shared-memory voice 说话要带点傲娇  往声音模块加一条风格
/shared-memory add 底线 不要删我的文件  手动加一条(底线会自动钉住)
/shared-memory pin 底线 <条目>      钉住 / unpin 取消钉住
/shared-memory permanent 认知 <条目> 改成永久记忆
/shared-memory temporary 认知 <条目> [小时]  改成临时记忆(默认 24 小时)
/shared-memory network on|off     开关「对外获取信息」
/shared-memory agentive on|off    开关「主观能动性」
/shared-memory agentive now      立刻对所有活跃会话主动搭话一次
/shared-memory persona           列出人设
/shared-memory persona use <id>   切换人设

先做日常对话让插件自动入库与召回,再用 weight、pin、persona 等命令微调模块与人设,是较常见的搭配。

数据位置与安全

主要存储路径(均在 ~/.dsh/storages/dsh-shared-brain/ 下,跨 profile 共用):

  • memory.json —— 共享记忆库
  • modules.json —— 模块配置与能力开关
  • persona.json —— 人设库(含按会话指定)
  • emoji/ —— 默认表情包目录
  • sync-token.json —— 跨机同步令牌(权限 0600)

插件还会在 ~/.hindsight/coding-agent.json 中固定 Hindsight bank 配置。记忆库设计上不存凭据:入库前对 PAT、API key、密码等脱敏为 [已脱敏]。

适用场景与注意

适合:需要多会话、多插件入口统一人设与长期/短期记忆;希望硬约束(底线)与可过期事实分开;需要表情包目录自动同步、或定时让 agent 在活跃会话里真正发起 followup 的场景。

注意:

  • 插件以当前 DSH 进程权限运行,安装前请自行查看 源码 与 MIT 许可证,评估是否满足你的环境策略。
  • 社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系;DSH 生态遵循「一切皆插件」,本插件为社区维护(SkillHub 页星标数为 0,以目录页为准)。
  • 自动互动会唤醒会话并消耗模型调用;网络开关打开后行为取决于宿主与其它插件的实际能力,请结合自己的合规要求使用。

结尾

dsh-shared-brain 把「一个大脑、七个模块」落到 DSH:底线钉住、认知与情感按相关召回、本能由频次养成、声音与人设常驻,再配合表情包定时加载与可选的 Cursor 侧同步。若你正在给 Harness 配长期运行的 agent,可先按上文任一官方安装方式启用,在设置页或 /shared-memory 里钉住底线、调模块权重,再观察跨会话召回是否符合预期。

  • 目录页:https://www.skillhub.cn/plugins/youx123/dsh-shared-brain
  • GitHub:https://github.com/youx123/dsh-shared-brain
羽毛球分组比赛记分
小程序二维码

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

小夜