brain-mem-think:会思考的脑子——只存熔出来的判断,不存对话原文

前言

在 DSH(DeepSeek Harness)里给智能体加「记忆」,常见做法是往上下文或向量库里堆原文、摘要或聊天记录。上下文一长,成本和噪声一起涨;堆原文还容易让模型变成「复述机」,而不是在多次往来里形成稳定看法。

entrehuihui 维护的 brain-mem-think(GitHub:entrehuihui/brain-mem-think,社区目录:SkillHub 插件页)走另一条路:不存任何具体输入原文,只存模型从多轮经历里熔出来的「判断」;还会忘、会追问、会改自己,并在宿主侧用唤醒、熔炼、遮蔽、主动说话/做事等机制把这套内核跑起来。分类归属为「模型推理」。

下面介绍它是什么、核心机制、架构边界,以及安装前需要核对的事项。

这是什么

一句话定位:一次对话 = 一次融合。

记忆₀ + 你说的第 1 句  →  模型  →  记忆₁
记忆₁ + 你说的第 2 句  →  模型  →  记忆₂

上一轮写入上下文的,是熔炼后的结论;原始对话不进模型可见上下文——熔完会被遮蔽,只留「我记得的事」。因此它能记住类似「嘴上说让对方自己去网上找,实际要的是对方回来陪着」这类判断,但不会保留那天原话、时间点或中间闲聊的全文。这是设计目标,不是漏记。

  • 维护者:entrehuihui
  • npm 包名(仓库内):@local/dsh-mind,版本 0.1.0(以仓库 package.json 为准)
  • 许可证:MIT
  • 运行要求:Node >=20
  • 入口:plugin/index.mjs
  • GitHub 星标:0(截至资料抓取时)

四个环:醒、熔、遮蔽、说

README 把宿主侧闭环概括为四个环节,缺一环则整体无法按设计运转。

① 醒    每 5 分钟自己醒一次(不烧 token)→ 读记忆 → 决定要不要说话
② 熔    每轮对话结束立刻熔:她的话 + 你的话 → 新的判断进库
③ 遮蔽  熔完把旧对话从模型视野里删掉,只写回一条「我记得的事」
④ 说    决定说了 → followup 投进她的通道 → 跑一轮(带工具,能真干活)

① 醒

  • wakeTickMs 每分钟检查一次,wakeEveryMs 每 5 分钟真正唤醒一次。
  • 醒来后先想再说:先写「此刻心里转着什么」(浅记忆,不落库、12 小时过期),再决定开不开口。「不说」是合法结果。
  • 唤醒与说话的状态通过 wake-store.mjs 等账本原子写入;坏状态默认导向「不说」。

② 熔

每 60 秒检查她的通道是否有新的主人消息(由 digest-cursor.json 记账),有则只熔新增部分。三条纪律:

  1. 只熔新增,不重熔旧内容。
  2. 只收主人说的话(collect.mjs 白名单,source.kind 仅 user / human / owner);助手自己的回话不进熔炼,避免自激放大。
  3. 熔完才推进 cursor;熔失败则下次重试,宁可偶发重复也不漏。

③ 遮蔽

宿主侧通过 session.append 的 surfaceOp: { op: 'replace', startSeq, endSeq } 把已熔段落从 deriveMessages() 结果里拿掉。README 记载实测可从大量可见节点压到极少条;2026-10-28 起的不变量是:熔成功则从 system 之后整段遮掉,只留记忆节点;熔失败则一字不遮,留材料给下一跳重熔。切法在 plugin/shadow-plan.mjs,由 tests/smoke_full_shadow.mjs 覆盖多种边界。

注意:turn/end 事件发布过程中同步 append 可能被宿主拒绝(cannot reenter while another append is being published),唤醒轮无主人消息时的遮蔽需用 setTimeout 挪出事件栈。

④ 说

决定开口时,经 wake-exit.mjs(插件内 followup 的统一出口)把消息投进她的通道,跑完整一轮;该轮具备宿主提供的工具与技能目录,可执行查资料、出图等操作,而非纯文本回复。

自主性、内核归纳与经历层(2026-10-28 文档要点)

在四个环之外,README 还描述了与「像人脑一样运作」相关的扩展,均可在仓库 src/ 与 plugin/ 中对应到模块名。

主动去做点什么

醒来后的路径扩展为:说(对主人) / 做(自己的事) / 歇着。动机须能追溯到记忆里的原话(why);最近 10 分钟主人说过话则不出门;收获型与满足型活动用不同标准,并受驱动阈值、日次数、间隔、安静时间等「五道闸」约束。自主行动使用 source.kind = 'mind-act',不在 collect.mjs 白名单内,因此不会进熔炼库自造证据。

内核归纳(阶段 C)

每次熔出一个结论会记一条观测 Event(含 actor、action、polarity 等字段)。按 (actor, action) 分组,用纯计数规则(见过 ≥3 次、方向一致率 ≥0.7 等)做归纳,不调模型。reconcile() 将模型判断与内核统计分为 confirmed / contested / novel / thin;其中 novel 表示内核数出来、模型未给出的方向。README 强调:每一次熔出结论都要入账,否则加固旧判断时观测不足,minSupport=3 永远无法满足。

经历层(Episode)

除 judgment(看出了什么)外,一次熔炼还可产出 episode(那天到底怎么了):含 who、what(≤48 字)、feel(≤24 字)、arousal 等,且 what/feel 与原文最长公共连续长度须 ≤8 字,避免变成逐字复述。经历不参与判断合并;判断与经历在同一次原子写中落盘。渲染进「世界」时经历最多两条,没有则整段不出现。

架构:内核与插件分层

src/          一颗纯的脑子(零文件 IO、不认识宿主)
  forge / judge / episode / fade / curiosity / revision / flash / mind / world …
  strength / motive / preference / budget / event / induct …

plugin/       接宿主的一层
  index.mjs / collect.mjs / awake.mjs / wake-exit.mjs / synth.mjs …

内核不 import 宿主,便于单测与模拟。宿主依赖(peerDependencies)包括 @deepseek-ai/cordis、 @deepseek-ai/dsh-system-prompt、 @deepseek-ai/dsh-session。仓库还通过 dsh.bundle.patch 指向 ./cordis.patch.yml 做 bundle 补丁。

仓库提供 tools/verify.mjs 用于改完后的自检。README 另有一整节「踩坑记录(2026-10-27)」,涉及唤醒 tick 与 inject、followup 的 content 格式、会话事件 id/role、换 channel 清说话账等——集成时可对照该节,本文不逐条展开。

安装与启用

已抓取资料与目录页未给出统一的 dsh plugin add … 一类官方安装命令;请勿凭插件名自行拼接命令。启用前建议:

  1. 在 SkillHub 插件页 与 GitHub 仓库 查阅当前维护者发布的安装说明与 cordis.patch.yml 用法。
  2. 确认运行环境 Node >=20,并满足 package.json 中的 peer 依赖。
  3. 安装前阅读源码与 MIT 许可证;插件以当前 DSH 进程权限运行,会读写会话、通道与记忆落盘路径,需自行评估信任边界。

SkillHub 为社区目录站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,具体装配方式以你使用的 Harness 发行版文档为准。

典型用法(从设计推导的操作面)

README 未提供独立的「复制即用」CLI 教程,典型集成形态是:为智能体挂载该插件后,在独立 channel 中与「她」对话;主人消息经熔炼进入判断库,会话 surface 在熔成功后仅保留 system 与记忆节点。自主行为、唤醒说话由插件定时与账本驱动,无需每条消息手动触发。

开发或二次集成时,可关注这些配置与文件名(均来自 README):

  • 唤醒:wakeTickMs、wakeEveryMs
  • 熔炼游标:digest-cursor.json
  • 通道会话:channel-store.mjs
  • 自检:node tools/verify.mjs(路径以仓库为准)

适用场景与注意

更适合:希望智能体长期保留「立场与判断」而非聊天记录;需要会忘、会自我修正、会在空闲时主动开口或执行轻量自主任务(在闸口规则内)的 persona / 伴侣型 agent 实验。

需要接受:原文刻意不可检索;记忆质量依赖熔炼模型与遮蔽是否成功;唤醒与 followup 与宿主 session API 耦合紧,升级 DSH 或 cordis 时需回归 README 中的踩坑表。

务必:插件不是官方内置能力;0 星标只说明社区关注度,不表示质量结论。生产使用前请自行审计 plugin/index.mjs 与落盘逻辑。

结尾

brain-mem-think 把「记忆」从存储原文改成反复熔炼后的判断,并用醒、熔、遮蔽、说闭环接在 DSH 会话之上;2026-10-28 文档还补充了主动行动、内核计数归纳与经历层,使「记得什么」与「记得那天怎么了」分开记账。

羽毛球分组比赛记分
小程序二维码

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

小夜