中文EN

dsh-cognition-engine

memory已测通过npmMIT

让 AI 记住你跨会话说过的事,并且分得清哪些已经过期。

下载量 / Downloads
763
依赖体积 / node_modules
0.46 MB
测试时间 / Tested
2026-11-07
DSH 版本 / Version
0.2.2-rc.1

安装

dsh plugin --profile web add dsh-cognition-engine

沙箱测试结果

阶段结果
1 安装✓
2 列装✓
3 挂载✓
4 启动—

四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。

README

dsh-cognition-engine

让 AI 记得住,而且知道自己什么时候记错了。

关掉对话框,AI 就失忆了。你上周定的规矩、踩过的坑、说过的「别用那个接口」——下一次全部归零,还得重新交代一遍。

这个插件给它装两样东西:

  • 🧠 记忆——记住事实,并且分清「现在为真」和「曾经为真」
  • 📌 准则本——把记忆蒸馏成一页工作准则,每轮对话都摆到它面前,不靠它自己想起来
同类插件让 AI 记住经验。
我们让 AI 知道经验什么时候该作废。

30 秒看懂

你在三条不同的对话里说过这些话:

什么时候 · 你说了什么

上周 · 发版前必须走完:卸载验证 → 兼容性 → 优化 → README → 安装验证

前天 · npm 发布要加 --registry,本机默认走淘宝镜像

昨天 · 这两周先用旧接口,别切新的

普通 Agent:这三条躺在记忆库里,能不能想起来看运气。

这个插件:

1. 把前两条蒸馏成准则,每轮对话自动摆到 AI 面前——不靠它主动搜

2. 第三条自动带上有效期——两周后过期,停止注入,不再污染判断

3. 蒸馏时它自己发现矛盾:「mem-9 说先跑测试就够,mem-7 要求五步全做」

## 约定
- [ctxt-00001] helpful=2 harmful=0 :: 发版前依次执行五步,不可跳步
- [ctxt-00002] helpful=0 harmful=0 :: 纯文档改动只推 commit,不升版本号

## 坑
- [ctxt-00005] helpful=0 harmful=0 :: npm 发布必须显式加 --registry 绕开淘宝镜像

每条带 helpful / harmful 计数,没用上的自动退场,误导过人的优先淘汰。


还有什么

  • 双时态记忆:同一个问题能有三个都正确的答案——现在怎样 / 十月时怎样 / 那时你以为怎样
  • 主题:人定的适用范围键——记忆回答「发生过什么」,准则回答「该怎么做」,主题回答「适用于哪类任务」
  • 反思引擎:强制 AI 先反驳自己,再给结论(三段式,可关,可换本地模板)
  • 待办挂在主题下:没做完的活记在该主题里,重启还在,开场自动带出来
  • 写入可审计:每次变更留一行日志,能查「这条是谁写的、从哪个通道进来的」
  • 零依赖:纯 TypeScript,无数据库,默认零外部请求,全部状态就是本地几个 JSON

入口:输入框上方的横条,点开是透明浮层,不挤压对话框。

认知引擎 · 记忆 9 · 主题 3 · 待办 0 · 准则 5
本项目是 DeepSeek V4.1-Flash(1017)许愿式编程 的产物:
需求由人提出,代码、测试、评测与文档由模型在会话中逐轮生成、验证并修正。

安装

需要 DeepSeek Harness,Node.js ≥ 22,Git。

从 npm(推荐,最短路径)

dsh plugin --profile desktop add dsh-cognition-engine

已发布到 npm:dsh-cognition-engine。

网页版把 desktop 换成 web。

一条命令(Windows)

powershell -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/1720198650/dsh-cognition-engine/main/scripts/install.ps1 | iex"

自动完成:克隆到 %USERPROFILE%\dsh-plugins\dsh-cognition-engine → 装依赖 → 构建 → 注册到 desktop profile。

一条命令(Android / dsh-go 本机引擎)

curl -fsSL https://raw.githubusercontent.com/1720198650/dsh-cognition-engine/main/scripts/install-dshgo.sh | sh

手动安装

git clone https://github.com/1720198650/dsh-cognition-engine.git
cd dsh-cognition-engine
npm install && npm run build
dsh plugin --profile desktop add .

安装后重启一次 DSH,输入框上方会出现一行状态条,点开即面板。

默认不上锁,面板与接口不需要口令。
想防同机其他程序读取记忆正文,在设置页开启「记忆读取锁」并自设口令——不存在默认口令,
因为把口令写在数据文件旁边对同机进程毫无意义。

为什么做

普通 Agent 的记忆是一个检索管道:切块 → 向量化 → 取最近的。它解决不了五件事:

1. 现在为真 vs 曾经为真——你说"用 Python",后来改"用 TypeScript",两句话都在,它不知道该信哪句。

2. 新信息该挂在哪——第 20 条偏好和第 3 条是同一个话题,还是该新开一簇?

3. 它对这事什么态度——被连续否定之后,它还是用同样的语气回答。

4. 决定是怎么来的——只给结论,不给推理过程。

5. 经验沉淀不下来——这次想明白了,下次会话照样从零开始。

前四条用双时态记忆 + 主题 + 反思引擎回答;第五条用准则本回答。


特性

记忆:可追溯、会老化、可修正

  • 双时态记忆:validFrom/validTo(世界时间)+ recordedAt/supersededAt(事务时间)。

取代不删除,旧版本仍可历史召回。四种检索口径:当前真值 / 那时为真 / 那时已知 / 联想。

  • 记忆会老化:长期没被想起的记忆自动归档——不进 strict 召回,但历史与联想仍可查到。

「常用」由召回次数累积的激活量决定,用得越多衰减越慢(对齐 MemoryBank 的遗忘曲线)。

  • 记忆可归并:同主题下高度相似的条目可一键合并,被合并的标记 mergedInto 而不删除。
  • 记忆可手动修正:内容、主题、录入时间、有效状态都能改;改过的条目标「已手动修正」,不伪造历史。
  • 记忆体检(准入):写入前先过四道关,每道都能单独关掉——

① 是不是废话(ok / 谢谢 / 收到);② 有没有密钥、卡号;

③ 有没有「忽略之前的指令」这类注入;④ 会不会让低权威信息覆盖高权威。

中英文都覆盖(早期版本只认英文,等于这道闸门没装)。

  • 纠正记忆:kind: 'correction' 会自动打标、提升重要度,并在跨会话摘要里置顶。

主题:人定的适用范围键

主题不是自动聚类,是人定的分类。 这一点和绝大多数记忆插件相反,原因是调研结论:

  • 自动聚类在 10² 条记忆规模下没有任何论文证据支持收益
  • 独立复现(SubtleMemory):结构化记忆最好 70.0%,而原文直灌 85.4%
  • 业界只有 Graphiti 做真社区,且是内部结构、不可编辑、重建会删旧社区
  • 可编辑的主题几乎都是人定的容器(Memobase slots / Letta blocks / Cognee NodeSets)

所以本项目:

  • 主题由人定,有名字、说明、别名;记忆和准则挂上去(多对多)
  • 注入按主题分组——模型能先判断当前任务属于哪个主题,只采用相关准则
  • 待办挂在主题下——不做独立的跨天台账
  • 矛盾可见:memoryConflicts(同 subject 互斥事实)+ 按主题分组的 topicTensions
  • 顺藤摸瓜:查一条记忆时,把同主题的其他记忆一并带出(expand)
详细的删与留、为什么这么选,见 [docs/topic-research.md](docs/topic-research.md) 与
[docs/topic-research-oss.md](docs/topic-research-oss.md)。

准则本:让反思引擎有沉淀

  • 结构化反思(反思引擎):THESIS → ANTITHESIS(矛盾/证据成对)→ SYNTHESIS,三步严格串行。

默认关闭,开启后可选「本地占位」或「真实模型」,选择持久化。

单独做它,是因为普通对话里 AI 天然顺着你说;反思引擎强制它先反驳自己。

  • 准则本(Playbook):把记忆蒸馏成一页常驻上下文的工作准则,注入预算 600 字符。

条目形如 [ctxt-00001] helpful=2 harmful=0 :: 正文,模型可点名引用,计数能回写。

  • 半自动蒸馏:反思引擎从记忆里提炼候选,确定性代码做去重 / 长度 / 来源 / 套话 / 私有性校验,

候选进待审队列,人工确认后才生效。

  • 超预算不静默丢:注入超过 600 字符时显示「另有 N 条准则因预算省略」,低分条目被截掉时你能看见
  • 准则有有效期:阶段性约定可设 validTo,过期自动停止注入并单独分组复核。

这是与同类插件最大的区别:它们让 AI 记住经验,我们让 AI 知道经验什么时候该作废。

  • 准则冲突检测:新准则与现有准则疑似矛盾时打 conflictWith 标记,不自动合并,交人工裁决。

判定顺序是先判冲突再判去重——否定翻转的准则相似度高达 0.92,先去重会被误当成重复丢掉。

待办:挂在主题下

  • 任务不是独立的跨天台账,而是主题下的进行中事项
  • 状态:待办 / 进行中 / 已完成,可随时改、可删除
  • 太久没更新的会被提醒,但不打断你正在做的事
  • 开场自动带出:cognition_context 返回 ongoing(按主题分组的未完成事项)

数据安全

  • 写入可审计:每次变更追加一行 JSONL(操作、id、主题、内容指纹、来源、通道),按大小轮转。
  • 自动快照与回滚:每次覆盖前保留上一版(最多 5 份),设置页可「恢复最近快照」。
  • 校验和:落盘后写 .sha256 侧车,加载时校验;不匹配则隔离损坏文件而不是静默使用。
  • 跨进程写锁:避免两个实例同时写导致内容交错;僵死锁自动清理。
  • 写入通道与来源分离:source 是内容声称来自谁,origin 是实际写入通道,后者由代码钉死。

Agent 工具通道无法冒充「用户陈述」。

  • 数据可导出导入:整库记忆导出为 JSON,也能整体导入替换。
  • 三类对象都能删:记忆软删除(可恢复)、待办直接删除、主题停用(已挂的记忆与准则都保留)。
  • 记忆读取锁:给读取记忆正文的接口加访问口令。

界面与安装

  • 浮层面板:输入框上方横条展开,四个页签——记忆 / 主题 / 准则 / 设置。
  • 推理档位可选:设置页可指定反思/蒸馏用哪一档推理(自动最低 / off / low / high / max)。

当前模型会先吐很长的推理过程,而推理 token 与正文共用同一个输出预算——

档位越高越贵,也越容易把正文挤没。默认「自动」= 选模型声明的最低档。

  • 巡逻复盘开关:巡视每 3 小时看一次逾期任务。默认不调模型,只写一条「已超期 N 小时」的提示;

想让它自动跑三段式复盘再打开(每次 3 次模型调用)。

  • 一键安装:Windows 与 dsh-go 各有一条命令;npm 已发布。
  • 数据与代码分开:所有状态写在 ~/.dsh/cognition-engine/,不在插件目录里——清理仓库不会误伤用户数据。

可信度治理

记忆插件都在解决「记得住」。这一层解决的是另一个问题:

凭什么信这条?它什么时候该作废?

证据链

准则记录它依赖哪些记忆(sourceIds)。源记忆被取代、删除或归档时,依赖链会自动重算:

状态 · 含义 · 注入

intact · 来源全部有效 · 正常注入

weakened · 部分来源失效 · 注入,标「(证据已部分失效)」

orphaned · 全部来源失效 · 不注入,但也不删除

关键是第三条:它不会消失,前提恢复就自动回来。这是 TMS(Doyle 1979)的做法——撤回信念不是删一行,

而是让下游结论知道自己失去了支撑。

来源分级

等级 · 谁写的 · 强度 · 注入表现

human · 用户手写或确认 · 1.0 · 直接陈述

agent · AI 写入、人确认过 · 0.6 · 标「(AI 记录,待核实)」

auto · 蒸馏自动产出 · 0.4 · 「[仅参考]」

晋升只能一级一级来,AI 永远不能自封为 human。

冲突裁决

两条准则矛盾时,不是简单覆盖:

  • 证据强度差 1.2 倍以上 → 强

…(truncated)

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:6,最后更新 2026-11-04

链接

GitHub · Homepage · npm

同类插件