DSH Plugins Marketplace

DSH Plugins

Plugins

/

Memory & Context

/

dsh-buwang

d

dsh-buwang

Identified

A private memory library for DSH with customizable personas that only records when you ask, storing everything locally in Markdown.

这是 DeepSeek Harness(DSH)的插件,请先装好 DSH 再使用。

不忘

主动记录的日记与过往,我不会忘记,的私人记忆库。

v0.1.4 · MIT · 纯本地 Markdown · 无数据库、无云、无构建步骤

仓库:https://github.com/cheeseRatRat/dsh-buwang · 问题与建议走 Issues

人的记性是有偏向的。当时觉得天大的事,过两个月只剩一句「好像有过这么回事」;而真正要紧的那些,往往连一句都没留下。

模型更是这样。上下文一关,刚才聊过的一切就散了——不是不肯记,是没处放。

「不忘」这个名字没有典故,就三个字:该记的,不忘。

但它也不是备忘录。备忘录是写给人翻的,而这里放的是「你希望它记得的事」——所以既要记得住,又不能把脑子塞满。后面每一条设计,都是从这个矛盾里长出来的。

只想先看一页?docs/功能介绍.md —— 四个分区、七件工具、怎么用、数据存哪,一页说完。


一、它和常见的记忆插件不一样

大部分记忆插件在解决「模型记不住」,所以让模型自动把东西塞进上下文:每轮开始前召回几条、注入几条。

那是让模型替你决定什么重要。

「不忘」反过来:它什么都不自动做。

  • 你不说「记住这个」,它一个字都不写。
  • 你不说「翻一下那天」,它一个字都不读。
  • 你不说「搜工坊」,那些手艺连名字都不在上下文里。

省下来的每一层,都是你自己在决定,而不是一个召回算法在替你猜。

代价是你要开口。好处是:上下文里出现的每一行,都是你同意过的。

二、三层记忆

层存在哪每轮占多少写法
同游记忆/<人格>/同游.md全文注入,永不截断一行一条,短句,一直成立
近期记忆/<人格>/近期/YYYY-MM-DD.md只挂最近几天,一天一行一次总结一条;同一天再总结落 -2、-3
长期记忆/<人格>/长期/YYYY-MM-DD~YYYY-MM-DD.md只挂一行标题 + 一句话巩固后压成一段日子,细节要翻

下面两层平时只露出一行,所以哪怕存了几百天,也压不垮上下文。需要细节时说一声,它就顺着标题去把正文取回来。

「整理」这个动作是你要它做的(memory_consolidate 列出该整理的、memory_archive 落成月小记)。它不会趁你睡觉偷偷把日记压缩掉。

同游怎么长

同游是咱俩的定数簿,不是资料柜:称呼怎么叫、哪些话不许说、你喜欢我怎么回、一起答应下来的事。它每轮全文注入,所以每条都要短——上限 60 行,面板标题上直接写着 N / 60。

写进来有两条路:

  • 你开口:「记住这个:我不喝冰的」→ 添一行。最清楚的那条路,一直都在
  • 我自己挑(设置里的「同游精选」三档):
    • 关闭:只在你明说「记住」时写
    • 只在总结时(默认):你说「总结今天」,我就顺手从这次对话里挑 1~3 条写进来
    • 聊到就记:平时一出现明显定下来的事(约定、边界、称呼变化)就当场添一条,不设条数上限,但每条都写短

挑什么由我判断,但规矩是死的:只写「过一个月还成立」的——共同的约定、对彼此的方式、称呼与边界、说话与回应的偏好;发生了什么归近期日记,不往同游里塞。写之前先看现有的,同一件事不换个说法再添一遍。

满了 60 条不会再硬塞:我先把现有清单摆给你,挑几条建议搬去长期(原文一字不改,以后照样搜得到),你点头才动;面板那个「整理同游」是同一件事的手动版,默认留最近 30 条。

三、四个分区

分区放什么谁能看见
人格它是谁、怎么说话、什么底线只注入启用的那一个,全文
记忆同游 / 近期 / 长期,还有只给自己看的「自述」同游全文,其余一行
工坊可复用的手艺、踩过的坑、做法默认完全不加载
封存不要了的文档、删掉的人格不出现,随时接回来

人格可以有很多个,同一时间只有一个醒着。每个人格一套独立档案(记忆、工坊都是分开的),互不串味。删掉一个人格时,它的档案整盒进封存,不是删掉——想起来了,点「接回来」,三块各自归位。

共享是主动的、只读的:默认谁都不共享;你让 A 共享出去,B 那边也只是「可以翻的别人」,能读不能写。

自述是写给自己的一页日记。它不进索引、不进检索,也不占任何上下文——只在面板里放着,你想看才看。同一小时最多一条,可以写长。正文顶上会写一句日期(2026年10月20日 星期二),像手写日记那样;点开任意一页,页边就能接着翻。

封存有两条路,别混:

  • 封存一个文档 → 落进 封存/<当前人格>/,恢复后回原位
  • 删除一个人格 → 整盒落进 封存/<人格>/,接回来时三块各自归位

四、四条铁律

  1. 你不开口,它不记。
  2. 你不开口,它不读。
  3. 工坊默认完全不加载。 说「搜索工坊」才列目录,挑中再开,这件事办完就关掉。
  4. 人格默认不共享。 要共享得你主动点开,而且只给读、不给改。

第 1、2 条写在工具描述里,模型每轮都看得见;第 3 条写在系统提示的分区规则里;第 4 条由数据结构保证——共享出去的人格在别人那儿是只读快照。

五、安装

前提

  • 先装好 DeepSeek Harness(dsh),能打开 Web 界面。桌面版下载在 这里。
  • DSH 0.1.7-rc.1 或更新(我们在 0.2.1-rc.2 上验证过,门槛压在 0.1.7-rc.1,尽量让老一点的版本也能装)。真比这更老的会被 engines 在安装时拦下并说明原因。
  • 版本之间接口有变化时,插件只在自己那一块降级(缺哪个接口就少哪个功能,写进 _debug.log),不会把宿主带崩。
  • 把本仓库放到任意一个固定目录,比如 D:\plugins\dsh-buwang。路径里别有空格和奇怪符号。

装进来

只走这一条路:在 DSH 里对 Agent 说一句

把这个目录装成插件:D:\plugins\dsh-buwang(换成你自己的路径)

Agent 会用 plugin_manager 的 install_bundle,把绝对路径当安装目标。它改的是你 profile 的 package.json,所以可能弹一次授权。装完就能用:侧栏会多一个书页样的图标;没看到就先 Ctrl+R 刷一下页面。

别手改 profile 的 package.json。 那个文件多一个逗号、少一个括号,整个宿主就起不来,弹窗只说一句 Unexpected token ',' ... is not valid JSON——看着像插件崩了,其实是在装配插件树的时候就断了,插件根本还没跑。

真要手动改,只有两处:dependencies 里加一行 "dsh-buwang": "link:<你的绝对路径>"(最后一项后面不能有逗号),以及 dsh.profile.bundles 数组里加一项 "dsh-buwang"(不能出现 ,,)。改完先校验一遍 JSON 再重启。

装不上怎么查

  • 看库根目录里有没有 _debug.log:有 apply start, root=… 就说明宿主已经起来、插件也跑到了,问题在界面;整个文件都没有,说明插件根本没被加载(看路径和清单)。
  • 侧栏没图标但没报错:先 Ctrl+R;还不行就关掉整个宿主重开(关窗口常常只是缩到托盘)。

第一次打开

第一次打开会自动建库:~/Documents/buwang(Windows 上是 C:\Users\<你>\Documents\buwang),里面有一个叫「默认」的人格,和一张空的同游。

想让它住别处(比如挪到 D 盘或者备份盘):面板 → 设置 → 换位置… → 选文件夹 → 选「连文件一起搬」或「只改指向」。旧目录它永不自动删,只复制,你自己确认没问题了再手动清。

设置里还有一个 备份一份:点一下,整个库复制到隔壁文件夹 <库名>-备份-YYYYMMDD-HHMM,旧备份不删也不覆盖,同一分钟再点自动加 -2。

六、怎么用

日常几乎不用背命令,开口说话就行:

你说它做的事
「记住这个:我不喝冰的」写成同游里的一行(定数/偏好)
「记住今天:装好了不忘」写进今天的近期日记
「这个做法存进工坊,叫『部署前检查』」存成一条按需技能,默认不加载
「总结一下今天」把今天的日记、学到的手艺归档
「翻一下 10 月 19 号」读那天,全文
「搜工坊」列出技能目录,你挑一个,它帮你开
「封存这条」文档进封存,随时能恢复

问得含糊也没关系:中文长句会被切成 2~4 字的小段去匹配,「昨天那个搬家的麻烦」这种不带空格的话也翻得到,只是标题命中的会排在前面。

面板里也能直接动手:点条目改内容、工坊页「+ 写一个技能」。自述直接就地翻——点开任意一页,编辑页顶上有一条翻页带:左「‹ 10-20 03:45」是更早,右「10-20 19:53 ›」是更晚,中间是第几页,方向不用猜。

七、数据存在哪

全部是本机明文 Markdown,没有数据库、没有云、没有隐藏格式。你可以用任何编辑器改,也可以直接把整个文件夹复制走——它就是你的记忆库。

设置.json                         { format:2, name, budget, recentLimit, keepDays, activePersona }
人格/<人格名>.md                  人格本体,只启用一个
记忆/<人格>/同游.md               同游:每轮全文
记忆/<人格>/近期/YYYY-MM-DD.md    短期:一次总结一条(同日 -2、-3)
记忆/<人格>/长期/YYYY-MM-DD~YYYY-MM-DD.md  长期:巩固后的区间小结
工坊/<人格>/常驻|按需/*.md        工坊:常驻=启用,按需=关闭
自述/<人格>/YYYY-MM-DD.md         只给自己看的日记:一次一页,一小时最多一条
封存/<人格>/*.md                  封存的文档
封存/<已删人格>/                  删掉的人格整盒(含 人格.md + 记忆/ + 工坊/)

库住哪儿,由一个指针文件决定(指针不能放在库里,鸡生蛋):

%USERPROFILE%\.buwang\root.txt     一行路径

优先级:插件配置 dataDir > 指针 > 环境变量 BUWANG_HOME > 默认 ~/Documents/buwang。 面板写的指针压过环境变量——你在界面上选的才算数。换完要重载插件才生效。

索引分块顺序(每轮注入的那段):

【人格】→【同游】→【可以翻的人格 · 只读】→【最近的日子】→【更早】→【工坊 · 已启用】

人格和同游是全文、不截断、不算进记忆预算;近期长期各一行;工坊不启用就一点痕迹都没有;自述永远不出现。

写入是原子的:先写同目录的临时文件,再改名盖过去。断电或崩溃最多丢「还没落盘的那一篇」,不会把已有记忆写成半截。

八、工具

工具干什么
memory_list列目录,一行一条(不返回正文)
memory_recall按日期、标题、关键词读正文
memory_save写一条:tongyou / diary / workshop / self
memory_seal把一条挪进封存,之后不再索引、不再检索
memory_consolidate列出该整理的日子(带正文),给「写月小记」用
memory_archive落成月小记,并把清单里那些日子搬进档案区
memory_workshop开/关一条工坊技能(开了才每轮注入正文)

九、隐私

  • 所有数据只在你自己的磁盘上。插件不发任何网络请求。
  • 唯一的「联网」是你的模型自己在说话,跟记忆库无关。
  • 你不开口,记忆不会进上下文;工坊不启用,连名字都不会。
  • 面板里能看到、能改、能删所有东西。想彻底清掉,删掉库文件夹即可。

十、示例

examples/示例库/ 里放了一个填满的库(虚构的人物「蓝色小肥鱼」和「小满」),想看看长什么样可以直接翻。它不会被自动加载——插件只会用你自己的库。

想照着摆,把 examples/示例库/ 里的目录复制进你的库目录即可(设置.json 别覆盖,那个 activePersona 得指向你的库里的名字)。

十一、仓库结构

dsh-buwang/
├── package.json           插件清单(dsh.bundle / dsh.client / exports)
├── cordis.patch.yml       bundle 补丁:插入 buwang 这一行
├── index.js               宿主侧:服务、十条 exact 路由、工具注册
├── client.js              界面侧:侧栏图标、四个标签面板、自述就地翻页
├── icon.svg               展示图标(市场用,运行时不用)
├── locale/{zh,en}.json    标题与描述
├── src/host/store.js      全部读写:布局、索引、迁移、封存、指针、保存
├── src/host/tools.js      七个工具的描述与执行
├── examples/示例库/       一个填满的库,纯示例
├── docs/介绍.md           这个项目是什么(长版介绍 + 可直接贴市场的短文案)
├── docs/功能介绍.md       一页看完:分区、工具、用法
├── docs/设计笔记.md       七个设计决定为什么长这样
├── README.md
├── CHANGELOG.md
└── LICENSE

十二、常见问题

装了但侧栏没图标? 先 Ctrl+R。还没有,就检查它有没有进 dsh.profile.bundles(只写进 dependencies 是不加载的);再确认宿主是重启过的。

换位置以后打不开? 指针写在 %USERPROFILE%\.buwang\root.txt,里面那行路径要真实存在。换完要重载插件——root 是在插件启动时读一次的。

能不启用任何人格吗? 不行。至少有一个——第一次打开会自动建「默认」。人格不是一个可选装饰,它是「它在跟谁说话」这件事本身。

会不会把不该记的记下来? 不会,因为它不自动记。唯一会写的时机是你说了「记住」。

它和「自动召回」类插件能一起装吗? 能,互不干扰。只是两者理念相反,一起用的话,上下文里那部分你就不完全可控了。


MIT,随便用、随便改。要是它替你记住了一点什么,那就是它该干的事。

忘掉的是风,记住的是岸。

Comments

Loading…

Similar plugins

dsh-memory-plugin

by ly028716

Intelligent memory system for DSH - Track user preferences, tool usage, and project context to provide personalized recommendations

Manifest valid

★ 0

MIT

JavaScript

Sep 28, 2026

dsh plugin --profile web add @ly028716/dsh-memory-plugin

by CuteSamurai24

Small file memory for DeepSeek Harness. The model writes markdown, the host injects it.

Tools & CapabilitiesManifest valid

★ 0

MIT

JavaScript

Aug 18, 2026

dsh plugin --profile web add dsh-md-memory

Human-governed cross-session memory spaces with independent source and consumer relationships, provenance, versioning, and pre-send injection review.

Memory & ContextManifest valid

★ 0

dsh plugin --profile web add dsh-memory-spaces

by disc0nct

A persistent memory plugin for DeepSeek Harness that enables agents to store and recall information across sessions — DSH-native tools with atomic storage, validation, and concurrency-safe reads

Tools & CapabilitiesManifest valid

★ 0

MIT

JavaScript

Aug 22, 2026

dsh plugin --profile web add @deepseek-ai/dsh-tool-memory

by CraZY222123

Self-evolve memory plugin for DeepSeek Harness: learns from your own sessions, injects token-budgeted preference summaries into every step. /memory commands, memory tool, settings panel. Local-only da

Memory & ContextManifest valid

★ 8

↓ 40/wk

MIT

JavaScript

Aug 21, 2026

dsh plugin --profile web add dsh-self-evolve

by kkwings

该仓库暂未提供项目说明。

Memory & ContextSessions & MessagesManifest valid

★ 1

MIT

JavaScript

Oct 12, 2026

dsh plugin --profile web add dsh-super-memory