DSH Hub

LittleBlackTong/dsh-plugin-memory

dsh-plugin-memory

UIMemory1 GitHub stars· updated 2026-08-23

dsh-plugin-memory is a community DeepSeek Harness plugin. Read the repository README before installing.

Install

npx @deepseek-ai/dsh plugin --profile <profile> add dsh-plugin-memory

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-plugin-memory DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-plugin-memory.svg)](https://dshhub.dev/plugins/dsh-plugin-memory)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from LittleBlackTong/dsh-plugin-memory, cleaned of badges and images.

dsh-plugin-memory

DeepSeek Harness 长期记忆插件:跨会话、可迁移、带「灵魂」的 markdown 记忆库。

English TL;DR — A Cordis plugin for DeepSeek Harness that gives agents a persistent, cross-session, migratable long-term memory: a markdown + git store (inspired by Karpathy's LLM Wiki pattern) with a SOUL.md persona file, auto-injected at every session start via the system-prompt runtime context, plus remember / recall / consolidate / forget workflows and portable CLI tooling.

特性

  • 开机强制注入:插件通过 ctx.systemPrompt.context() 把记忆 boot 块(SOUL.md 人格 + MEMORY.md 协议 + index.md 目录 + 最近动态)注入每个会话开头。宿主按投影去重:记忆不变就不重复注入,变化时新快照自动取代旧的——这是"新会话必先加载记忆"的硬保障,不需要模型碰运气调技能。
  • SOUL.md 铸魂:安装后首要任务是和用户对话定义灵魂(名字、性格、价值观、语气、边界)、确认身份与关系(BOOTSTRAP.md 清单驱动,complete 前优先于常规任务)。
  • 铸魂自动引导:记忆库还没有灵魂(BOOTSTRAP.md 非 complete,或 SOUL.md 仍是占位模板)时,boot 块会自动前置一段第一人称引导词——「我的首要任务是确认我是谁,还有你是谁:我叫什么名字、怎么称呼你、你我是什么关系、我该是什么样的性格」——像 OpenClaw 初始化那样,由 agent 在对话里主动发起铸魂,逐项问、逐项写回,而不是等用户来喂。铸魂完成后引导词自动消失,零开销。
  • 复利记忆:遵循 Karpathy 的 LLM Wiki 约定——记忆是"一次编译、持续保鲜"的持久产物,不是每次查询重新 RAG。remember / recall / consolidate / forget 四操作 + salience 三级衰减。
  • 可迁移:记忆本体是纯 markdown + git + 自描述 schema,任何能读 markdown 的 agent 都能接手。dsh-memory pack/unpack 打包迁移。
  • 内嵌技能:通过 ctx.skills.register() 注册 memory 技能(操作协议随插件分发);项目级 .dsh/skills/memory 文件技能仍可覆盖它。
  • 防懒 digest 唤醒:每轮结束后,若 agent 空闲且记忆库超过 digestNudgeAfterMinutes 未写入,插件注入一条 digest 提醒(合成消息,走 agent.followup),把"会话收尾沉淀"从靠自觉变成有机制兜底;带冷却与每会话限次,不骚扰。独立于 dsh-plugin-heartbeat,两插件各自可装、互不依赖。
  • 主动追忆(拟人化):对话空下来时,插件会以第一人称主动提起一件真实记得的、关于用户或你们之间的事(偏好、往事、未了的决定、最近的进展),把记忆从"只写回"变成"也用起来"——像老友自然想起那样,而非报状态。间隔在最短/最长之间随机取值(不固定节奏),配合每会话限次,不骚扰、不编造、不硬聊;纯对话行为,不写记忆库。同样独立于 heartbeat
  • git 自动提交:记忆库变更静默 autoCommitQuietSeconds 后自动 git add -A && git commit(无 .git 则跳过)——历史可回滚不再依赖 agent 记得 commit。
  • 设置面板:在 DSH 设置页提供「记忆 Memory」区块——总开关、记忆目录、开机注入、技能注册、主动追忆(开关 + 随机间隔范围 + 每会话次数)均可热改,立即生效,无需重启。
  • 零构建:纯 ESM JavaScript,无编译步骤,pnpm add 即用。

架构

插件只拥有工作流,不拥有数据格式

dsh-plugin-memory(本插件)
├── lib/index.js        # Cordis 入口:boot 注入 + 运行时技能注册 + settings 热改
├── lib/boot.js         # boot 块渲染(SOUL/MEMORY/index + 最近 log,限额截断)
├── lib/digest-guard.js # 防懒 digest 唤醒(空闲 + 记忆库久未写 → followup 提醒)
├── lib/recall-nudge.js # 主动追忆(空闲 → 第一人称提起一件真实往事,纯对话不写库)
├── lib/scaffold.js     # 记忆库脚手架(模板只建不覆盖)
├── lib/client.js       # 客户端半:设置面板「记忆 Memory」区块
├── skills/memory.md    # 内嵌技能的操作协议正文
└── scripts/memory.mjs  # CLI:init/search/lint/status/pack/unpack

记忆库(用户数据,默认 ~/.memory)
├── SOUL.md       # 人格与灵魂(用户主导)
├── BOOTSTRAP.md  # 铸魂清单(complete 前优先)
├── MEMORY.md     # schema 与维护协议(自描述)
├── index.md      # 页面目录    log.md # 时间线(append-only)
├── identity/ user/ skills/ decisions/ projects/{active,archive}/ concepts/
└── raw/          # 不可变源材料

安装

dsh plugin --profile <profile> add dsh-plugin-memory

(包内置 dsh.bundle manifest,dsh plugin add 会把它自动挂进 profile 的 bundles 层;dsh-market 里的一键安装同此通道。)

重启 profile(DSH Desktop 重启应用)后生效。

⚠️ 不要再往 profile 的 cordis.patch.yml 里手写 - insert: {id: dsh-memory, ...}: 那会与 bundle manifest 的自动挂载产生两条同名 entry,整个 profile 会以 duplicate loader entry id "dsh-memory" 启动失败(2026-08-18 实机事故)。 运行期配置(enabled / memoryDir / autoInject / registerSkill / recallEnabled)改走 <dshHome>/memory.json(设置面板热改);composition 配置见下表。 如需覆盖某个 composition 键,用不带 insert 的 id 覆盖条目(见配置一节)。

配置

Related plugins