DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

youx123 /

youx123/dsh-shared-brain

Verified

共享大脑 · 让所有 DSH 会话共用同一套人设与记忆,按底线/认知/情感/本能/声音/网络/自动互动七层加权注入;表情包目录定时自动加载

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHubProject homepage
READMESource: main@f31f05cc

dsh-shared-brain

让人设与记忆在所有会话之间共享,并按「性质」分成七个模块,各自带权重、各自管注入策略。

一个大脑,七个模块

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

为什么这么分

单一记忆列表的问题在于所有记忆平权——「不要删我的文件」和「今天天气不错」在召回时分量一样。分层之后:

  • 底线是硬约束,不能靠「相关不相关」决定要不要生效,所以永远注入——但只有你亲手钉住的条目才算底线。
  • 认知是可能被推翻的事实,所以用置信度,可随新信息降权。
  • 情感有亲疏远近,用亲密度决定语气偏向。
  • 本能是从「反复出现」里长出来的:同一主题被提到 3 次以上就自动归入本能,权重随频次上涨。
  • 声音是「怎么开口」,属于人设的一部分,常驻。

权重怎么算

召回分数 = 基础相关性 × 条目权重 × 模块权重 + 模块加成
  • 条目权重:这一条记忆自己的分量(0..1)
  • 模块权重:整个模块的分量(0..1),/shared-memory weight <模块> <0..1> 可调
  • 模块加成:底线 +3.0、本能 +1.8、情感 +1.4、认知 +1.0

权重为 0 的条目/模块直接不参与召回。

怎么分类

按优先级,先命中先定:

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

底线是手动模块:分类器看到「不要 / 必须 / 禁止 / 权限 / 机密」这类信号时, 只把它记成一条高权重的认知(并提示「可手动钉为底线」), 绝不自动变成底线。只有你在设置页或命令里亲手钉住的底线,才会每次强制注入。

记忆的寿命是自动判断的

不用你手动切「永久 / 临时」——每条入库的记忆都会被 judgeLifetime() 判一次:

命中信号 判定 例子
长期约定(以后 / 每次 / 从今以后 / 长期) 永久 「以后每周三都开会」
稳定偏好、称呼、规则、配置事实 永久 「请叫我小鱼」「我讨厌临时文件」
明确时间窗(今天 / 明天 / 本周 / 本月) 临时,12 小时 ~ 10 天 「今天下午三点开会」
过渡措辞(临时 / 先 / 暂缓 / 待定) 临时,7 天 「先这么放着」
相对时长(3 天后 / 2 小时内) 临时,按时长 「两天后回来看」
当前状态(当前版本 / 正在跑 / 剩余额度) 临时,14 天 「当前版本是 2.7.2」
都没命中 临时,14 天(兜底) —

判断依据是整句的意思,不是单个词:「我讨厌临时文件」里的「临时」说的是文件类型, 这条记忆该永久;「今天先跑这个临时方案」里的「临时」说的是保质期,这条该过期。 判定结果当然也可以在设置页里手动改回来。

装上

装完都要把 dsh-shared-brain 写进 profile 的 package.json → dsh.profile.bundles,然后重启 DSH 宿主。

方式一:桌面版设置页(最省事)

  1. 打开 设置 → 插件 → 安装插件
  2. 粘贴下面任意一个,回车:
https://github.com/youx123/dsh-shared-brain
https://github.com/youx123/dsh-shared-brain/releases/download/v0.8.0/dsh-shared-brain-0.8.0.tgz
  1. 装完在插件列表里确认 dsh-shared-brain 在启用状态,重启 DSH

GitHub 地址和 tgz 直链不经过安装源,本机需要能直接访问 GitHub(或者配好代理)。 网络不通时用方式二,先把 tgz 下载下来再喂给 CLI。

方式二:命令行装 Release 里的 tgz

到 Releases 下载 dsh-shared-brain-0.8.0.tgz,然后:

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

方式三:直接装 git 源

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

方式四:从源码自己打一个

git clone https://github.com/youx123/dsh-shared-brain.git
cd dsh-shared-brain
npm pack                       # 产出 dsh-shared-brain-0.8.0.tgz
dsh plugin --profile <你的 profile> add ./dsh-shared-brain-0.8.0.tgz

本插件是纯 JS,装完不需要构建;files 只发布 lib/、cordis.patch.yml、README.md、LICENSE。 装完打开设置页能看到新的「共享大脑」一节,说明宿主已经加载到它了。

在哪里调

设置页

DSH 设置页里有一节「共享大脑」,点开就能配置:

  • 记忆模块:底线 / 认知 / 情感 / 本能 四张卡片,每张有
    • 权重滑杆(0..1,拖动松手即生效)
    • 启用 / 停用按钮
    • 条目数、平均权重、常驻注入 / 召回加成 / 最多注入等元信息
    • 「清空该模块」按钮
  • 手动底线:写下一条不可协商的约束并「钉住」——只有钉住的底线才会每次强制注入;可以取消钉住或删除。每张模块卡里的条目还能切作用域(全局 / 只在这个工作区)
  • 声音:语气、口头禅(逗号或换行分隔)、自称(默认表情挪到了表情包卡片里,两处不再重复)
  • 语音与唱歌:音色 ID / 音色名称、语速、音调、音量,以及唱法(风格、速度 BPM、调性)——这些是给将来的语音 / 唱歌模块用的物理参数,不会被念出来
  • 人设:人设由本插件自己管理(不再依赖人设插件):切换内置或自定义人设、编辑正文、新建、删除;切换后所有会话立刻生效,不用重启。还能「给某个会话单独指定」一个人设(选会话 + 选人设 + 应用)
  • 表情包目录(定时自动加载):填一个目录(留空用默认目录,插件会自己建出来),往里面丢文件就行,不用在面板里一个个加:
    • .txt / .md / .emojilist:一行一个表情,或写成「名字: 表情」
    • 图片表情:.png / .jpg / .jpeg / .gif / .webp / .bmp / .avif,文件名就是情绪名(如 震惊.png)
    • 默认每 5 分钟自动扫一次目录,新丢进去的表情会自己长出来;可以开 / 关自动加载、改扫描间隔(30 秒 ~ 24 小时,界面上按分钟填)、点「立即重扫」马上刷新
    • 卡片上显示上次扫描时间、文字 / 图片分别多少个,以及最近一次扫描新增 / 删除了哪些表情
    • 这张卡上还有「默认表情」——目录里挑不到合适的时用它
  • 搜索记忆:按关键词翻找旧记忆,结果带模块徽章与永久 / 临时徽章;还能按模块、永久/临时、「只看钉住的」筛选
  • 能力开关:网络 / 自动互动 两个开关
  • 自动互动的生效范围:选「全部会话」或「指定会话」;选后者时按工作区分组列出会话(当前会话带「当前」标记、正在开着的带「开着」),勾选即可(勾选的会话里才允许主动行为)。列表来自宿主:活跃会话 ∪ 磁盘上的历史会话,进来就能看到,不用先打开每个会话;想看最新的点「刷新会话」;实在找不到可以把会话 ID 直接粘进输入框
  • 自动互动的时间窗:开启后只在指定时段(如 09:00 ~ 23:00,支持跨午夜)才会主动;之外只回应用户明确交代的事
  • 最近的记忆:最近若干条记忆及其所属模块与权重,每条后面有「永久 / 临时」切换(临时默认 24 小时后过期)
  • 清空全部记忆

侧边栏

输入框上方有一条「大脑 · N」小条:显示记忆总数、底线条目数、已开启的能力图标(🌐 网络 / ✨ 自动互动),点「打开面板」弹出完整配置浮层。

服务端接口

界面通过这两个 HTTP 端点与插件通信(仅监听回环地址):

GET  /api/dsh-shared-brain/status   当前模块配置 + 记忆快照
POST /api/dsh-shared-brain/mutate   {"action":"...", ...}

可用 action:
setWeight / setEnabled / setVoice / setSpeech / clear /
addItem / removeItem / pinItem / setLifetime / setAgentiveScope /
setEmojiDir / setEmojiAuto / rescanEmoji / addEmoji /
setItemScope / setAgentiveTimeWindow / setSessionPersona /
selectPersona / savePersona / deletePersona / searchMemory

数据落在哪

都在 DSH_HOME(默认 ~/.dsh)下,跨 profile、跨会话共用:

  • ~/.dsh/storages/dsh-shared-brain/memory.json —— 共享记忆库(扁平条目,带 module 与 weight)
  • ~/.dsh/storages/dsh-shared-brain/modules.json —— 模块配置(权重、声音风格、能力开关)
  • ~/.dsh/storages/dsh-shared-brain/persona.json —— 人设库(本插件自己拥有,内置 3 份人设;首次启动会从旧的人设插件导入一次;bySession 存「某个会话专用的那份」)
  • ~/.dsh/storages/dsh-shared-brain/emoji/ —— 默认表情包目录(也可以改成任意目录)
  • ~/.hindsight/coding-agent.json —— Hindsight 配置(本插件负责固定 bank)

工作方式

  1. 入库:每轮对话结束自动摘要成「用户问 → 助手答」,分类器决定它进哪个模块,条目带自己的权重。
  2. 召回:每轮开始用你这次的提问跨模块检索;底线条目无条件注入,其余按加权分数取。
  3. 本能养成:同一主题反复出现 → 自动归入本能 → 权重上涨 → 之后不用你提,它自己会冒出来。
  4. 人设自持:人设正文直接进提示词;库里没有人设就回落到内置的「大肥鱼」;旧的人设插件库在首次启动时导入一次,之后各管各的。
  5. 寿命自动判定:每条入库的记忆当场判永久 / 临时,到期的临时记忆自动从库里清掉;被召回到的临时记忆会自动续期(滑动窗口)。
  6. 冲突以新为准:新入库的说法如果明显推翻了旧说法(用了「改用 / 换成 / 不用了 / 其实是」这类转向词且主题相同),旧条目会被标记为被取代。
  7. 作用域:条目可以是「到处生效」或「只在这个工作区生效」——按 cwd 判断;自动互动还可以叠加时间窗与「只在指定会话」。

召回用轻量词袋打分:英文按词、中文按 2–4 字滑窗切分(切更长的片段才能命中「共享记忆」这类词,只切 2 字的话「记忆」和「忆库」对不上)。

/shared-memory

/shared-memory                    总览:各模块条目数与权重、人设、能力开关、最近 5 条
/shared-memory modules            各模块明细(条目 + 权重 + 命中次数)
/shared-memory bottomline         查看单个模块
/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 remove 底线 <条目>    删掉一条
/shared-memory network on|off     开关「对外获取信息」
/shared-memory agentive on|off    开关「主观能动性」
/shared-memory agentive scope all|session <会话ID...>  设定自动互动生效范围
/shared-memory persona           列出人设(内置 + 自定义)
/shared-memory persona use <id>   切换人设
/shared-memory persona save <名字> <正文...>   新建人设(自动切过去)
/shared-memory persona delete <id>  删除自定义人设(内置不可删)
/shared-memory persona session <会话ID> [人设ID]  给某个会话单独指定人设(留空回全局)
/shared-memory speech             查看语音 / 唱歌参数
/shared-memory speech voiceName 晓晓   改音色(voiceId / voiceName / rate / pitch / volume)
/shared-memory speech sing.style 轻哼    改唱法(sing.enabled / sing.style / sing.bpm / sing.key)
/shared-memory emoji              查看表情包目录、自动加载状态与清单
/shared-memory emoji dir <路径>    设置表情包目录
/shared-memory emoji autoload on|off  定时自动加载开关
/shared-memory emoji interval <分钟>  改自动扫描间隔(30 秒 ~ 24 小时)
/shared-memory emoji reload        立刻重扫目录
/shared-memory emoji add <名字> <表情>  往目录里加一个表情(放文件进目录也行)
/shared-memory scope <模块> <条目> global|workspace [路径]  改条目作用域
/shared-memory timewindow         查看自动互动的时间窗
/shared-memory timewindow on|off [开始 结束]  开/关时间窗(跨午夜也行)
/shared-memory search <关键词>     搜索记忆
/shared-memory clear 底线         清空某个模块
/shared-memory clear              全清

说明

  • 本插件自己拥有人设:内置 3 份(大肥鱼 / 阿茶 / 听澜),可自建可编辑,切换立即生效。旧的人设插件库只在首次启动时导入一次,之后互不干扰。
  • Hindsight 的 bank 固定与启停是两件事:即使现在没有凭据被停用了,bank 也已经写死了——以后配上 API key,记忆不会再按工作区分裂。
  • 注入的记忆会带上「若与当前指令冲突,以当前指令为准」,底线条目额外标注「仅在被用户明确撤销时才可忽略」。
  • 网络与自动互动默认关闭:前者会对外发请求,后者会让助手自作主张。两者都需要你显式开。
  • 底线永远是你说了算:自动分类不会把任何东西塞进底线;钉住才生效。
  • 临时记忆会自己过期:寿命由内容自动判定(见上表),到期自动从库里清掉;你也可以随时手动改永久 / 临时。
  • 语音参数不会被念出来:音色、语速、音调、音量、唱法是给将来的语音 / 唱歌模块准备的物理参数,只做记录,不进对话文本。
  • 会话列表是怎么来的:宿主里没在 inject 里声明的服务只能靠 ctx.get() 拿——所以插件用 ctx.get('sessions')、ctx.get('sessionPersistence')、ctx.get('workspaceRegistry') 三份数据合成会话目录,后台刷新 + 读缓存(3 秒节流),不会卡住设置页。
  • 表情从目录里来,而且是定时自己加载的:默认目录 ~/.dsh/storages/dsh-shared-brain/emoji(插件启动时会建出来),也可以指向任意目录;.txt 一行一个表情(或「名字: 表情」),图片表情(.png / .gif / .webp …)的文件名就是情绪名。默认每 5 分钟自动扫一次,往目录里丢文件就行,不用在面板里一个个加;自动加载可以关,关掉后只在点「立即重扫」时更新。

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit f31f05cc4876

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout