长期记忆 & 自进化插件,用于 DeepSeek Harness完全本地。
35.8/100
综合分
12
GitHub 星标
262
npm 周下载
—/5
用户评分
数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-self-improvednpm 源 · dsh-self-improved 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · chat
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 79 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-self-improved @ 0.1.1
✓Node 引擎要求 >=22.16.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/31 12:34:26
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 25 处,展示前 25 条)
- 写入本地文件lib/storage.js:25
mkdirSync(dir, { recursive: true }); - 写入本地文件lib/storage.js:245
mkdirSync(dir, { recursive: true }); - 写入本地文件lib/storage.js:248
writeFileSync(path, lines, { encoding: "utf8", flag: "a" }); - 读取本地文件lib/storage.js:279
raw = readFileSync(path, "utf8"); - 写入本地文件lib/storage.js:340
mkdirSync(dir, { recursive: true }); - 写入本地文件lib/storage.js:350
writeFileSync(main, content, { encoding: "utf8" }); - 读取本地文件lib/storage.js:437
files = readdirSync(dir); - 读取本地文件lib/storage.js:446
if (statSync(join(dir, f)).mtimeMs < olderThanMs) { - 删除本地文件lib/storage.js:447
unlinkSync(join(dir, f)); - 读取本地文件lib/storage.js:467
jieba = Jieba.withDict(readFileSync(dictPath)); - 读取本地文件lib/storage.js:489
return existsSync(path); - 写入本地文件lib/storage.js:497
copyFileSync(from, to); - 发起网络请求lib/recall.js:14
const response = await fetch(`${baseUrl}/embeddings`, { - 读取本地文件lib/evolve.js:69
if (!existsSync(join(dir, "SKILL.md"))) - 删除本地文件递归lib/evolve.js:72
rmSync(dir, { recursive: true, force: true }); - 读取本地文件lib/evolve.js:83
return readdirSync(root, { withFileTypes: true }) - 写入本地文件lib/evolve.js:108
mkdirSync(root, { recursive: true }); - 写入本地文件lib/evolve.js:116
mkdirSync(join(store.dir, "skills-debug"), { recursive: true }); - 写入本地文件lib/evolve.js:117
writeFileSync(join(store.dir, "skills-debug", "rejected-latest.txt"), text, { encoding: "utf8" }); - 读取本地文件lib/evolve.js:132
while (existsSync(join(dir, "SKILL.md")) && suffix < 20) { - 读取本地文件lib/evolve.js:137
if (existsSync(file)) - 写入本地文件lib/evolve.js:139
mkdirSync(dir, { recursive: true }); - 写入本地文件lib/evolve.js:140
writeFileSync(file, finalText.endsWith("\n") ? finalText : finalText + "\n", { encoding: "utf8" }); - 读取本地文件lib/commands.js:107
dirNames = readdirSync(root, { withFileTypes: true }) - 读取本地文件lib/commands.js:119
raw = readFileSync(file, "utf8");
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-home-paths@deepseek-ai/dsh-llm@deepseek-ai/dsh-schedule@deepseek-ai/dsh-session@deepseek-ai/dsh-settings@deepseek-ai/dsh-skill@deepseek-ai/dsh-storage-domain@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-tools@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 长期记忆捕获与提取
- 场景归组与用户画像
- 自动召回注入
DeepSeek Harness 长期记忆与自进化插件:L0 捕获 → L1 记忆提取 → L2 场景归组 → L3 用户画像,自动召回注入 + 技能合成,全程本地。
README
由 DeepSeek 最新模型翻译生成dsh-self-improved
长期记忆 & 自进化插件,用于 DeepSeek Harness(完全本地)。
状态:M0–M6 已完成,并部署到真实环境(web 配置档)。设计/调研文档只留在本地(见 .gitignore)。
这是什么
给 DSH 补上两块缺失的能力——「跨会话记忆 + 自进化」:
- 记忆:自动从对话里提炼要点(事实 / 偏好 / 事件 / 指令),存进本地记忆库;每轮新对话开始前,把相关记忆注入模型——AI「记得你」。
- 自进化:对记忆做整合、衰减和纠正;成功的工作流可以提炼成可复用的技能;用户画像随对话不断演进。
架构沿用 TencentDB Agent Memory 的四层记忆金字塔(L0 采集 → L1 提炼 → L2 场景归组 → L3 画像),但复用 DSH 原生服务(ctx.llm / session 事件 / agent/pre-step 注入 / dsh-skill / storageDomain),配一套完全本地的 SQLite 存储(FTS5 + sqlite-vec)。数据不上传到任何地方。
展开完整文档(README 剩余 1 节)
dsh-self-improved
长期记忆 & 自进化插件,用于 DeepSeek Harness(完全本地)。
状态:M0–M6 已完成,并部署到真实环境(web 配置档)。设计/调研文档只留在本地(见 .gitignore)。
这是什么
给 DSH 补上两块缺失的能力——「跨会话记忆 + 自进化」:
- 记忆:自动从对话里提炼要点(事实 / 偏好 / 事件 / 指令),存进本地记忆库;每轮新对话开始前,把相关记忆注入模型——AI「记得你」。
- 自进化:对记忆做整合、衰减和纠正;成功的工作流可以提炼成可复用的技能;用户画像随对话不断演进。
架构沿用 TencentDB Agent Memory 的四层记忆金字塔(L0 采集 → L1 提炼 → L2 场景归组 → L3 画像),但复用 DSH 原生服务(ctx.llm / session 事件 / agent/pre-step 注入 / dsh-skill / storageDomain),配一套完全本地的 SQLite 存储(FTS5 + sqlite-vec)。数据不上传到任何地方。
路线图
| 里程碑 | 范围 | 状态 |
| M0 | 探针:事件采集 / 召回注入 / 工具注册 / 设置命名空间 | ✅ 已验证(隔离无头环境) |
| M1 | 记忆库:SQLite + FTS5 + jieba + sqlite-vec;L0 采集落盘;memory/search 工具 | ✅ 已验证(单元 + 无头集成) |
| M2 | 提炼流水线:ctx.llm L1 提炼 + 严格 JSON 校验/兜底 + 去重 + 限流泵 | ✅ 单元测试通过;生产环境运行中 |
| M3 | 召回注入:agent/pre-step 注入 + 关键词/向量/混合检索(RRF) | ✅ 单元测试通过 + 端到端验证 |
| M4 | 自进化:L2/L3 整合(场景 + 版本化画像)、衰减、correct/forget 工具、技能合成 → dsh-skill | ✅ 单元测试通过;合成技能已上生产 |
| M5 | UI/运维:设置面板(自动渲染)+ 运行时热开关 + /memory 命令 + 记忆浏览器 | ✅ 完成,已部署到 web 配置档 |
| M6 | 增长治理(上限/清理)+ 调度(夜间复盘 / 空闲维护 / 启动回填) | ✅ 完成:治理上限、夜间复盘(默认 22:00)、15 分钟循环只做维护、总开关停掉所有定时器 |
安装
自 0.1.1 起:包内声明了 dsh.bundle,所以 dsh plugin add / 插件市场一键安装会自动挂载(dsh 自动把它注册为配置档层)——不用手动改 cordis.patch.yml。装完重启 dsh 即可。
方式 1:npm(推荐;等同市场一键安装)
dsh plugin --profile web add dsh-self-improved
or find dsh-self-improved in the plugin marketplace and click install
restart dsh — it auto-mounts
方式 2:从 GitHub 安装(源码快照,prepare 会自动构建 lib/)
1) One-time environment prep (only if you hit store mismatch / blocked build):
- 把 store 指回与 node_modules 一致的目录:
pnpm config set store-dir E:\dshPro\.pnpm-store --global # 或者在配置档级 .npmrc 里设置 store-dir=...
- 允许为 git 安装的包执行 prepare 构建(pnpm >= 10 默认阻止);在 pnpm-workspace.yaml 里: allowBuilds: dsh-self-improved: true
2) 安装(dsh plugin 在配置档里转发给 pnpm;github:owner/repo 拉取快照并执行 prepare=tsc)
dsh plugin --profile web add github:madage/dsh-self-improved
3) 重启 dsh(0.1.1 起自动挂载;如果仍未加载,补上下面的手动 insert)
手动挂载(仅限旧版本或特殊布局):加到 $DSH_HOME/profiles/web/cordis.patch.yml 的 insert 列表里:
- insert:
- id: dsh-self-improved
name: dsh-self-improved
方案 3:本地开发(file: 链接)
先构建,再把 lib/ + client.js + package.json 复制到 $DSH_HOME/profiles/web/node_modules/dsh-self-improved/ 在 package.json 的 dependencies 里加上 "dsh-self-improved": "file:node_modules/dsh-self-improved" 加上 cordis.patch.yml 的 insert(见上)→ 重启
⚠️ 安装提示:peerDependencies 双实例坑(已定位并修复)
现象:安装后新建会话正常,恢复旧会话报错 —— deployment:persona already registered,并提示「register through that agent's agent.ctx instead」。
根因(不是插件 bug):pnpm 默认的 autoInstallPeers 会把插件的 @deepseek-ai/ peerDependencies 以物理副本装进配置档的 node_modules,于是同一个包出现了两份互相独立的模块实例,一份在这里,一份内嵌在 dsh 主安装里(比如 dsh-scope)。DSH 的作用域机制(preset/persona 层)用 Symbol("dsh.scope") 绑定身份;有两份实例时,persona 注册会落到全局层,与宿主的 deployment:persona 撞车 → 恢复失败。新建会话之所以碰巧能成,是因为首次注册时全局层还没被占用。
修复(已验证):
1. 把配置档里多余的 @deepseek-ai/ 物理副本换成符号链接,指向 dsh 主安装内嵌的包(dsh 的自愈布局 $DSH_HOME/profiles/node_modules);
2. 在配置档级 .npmrc 里设置 auto-install-peers=false(或在 pnpm-workspace.yaml 里关掉 autoInstallPeers)。
给用户的提示(发布时保留): dsh-self-improved 的 peerDependencies 可能被自动装成配置档里的物理副本;请使用 dsh 自愈的符号链接布局,或在配置档的 .npmrc 里设置 auto-install-peers=false。
⚠️ 安装提示:loader 条目 id 重复(bundle 重复挂载,启动即崩)
现象:dsh 启动失败(窗口一闪就关),dsh --profile web --dump-config 里同一个条目 id 出现两次。
根本原因:声明了 dsh.bundle 的包(本插件从 0.1.1 起、dsh-plugin-marketplace 等)会自动加入 dsh.profile.bundles,它们自带的 cordis.patch.yml 会插入一条条目;如果配置档级的 cordis.patch.yml 又手动插入了同一个 id → 加载器会在启动时抛出 duplicate loader entry id。
修复(已验证):把配置档级的 cordis.patch.yml 重置为 [] —— bundle 组装完全由 dsh.profile.bundles 负责;不要在配置档层手动插入 bundle 插件。
调试技巧:如果 dsh 启动时崩溃,运行 dsh --profile web --dump-config,数一数每个条目 id;出现次数超过一次就是这个毛病。
配置
$DSH_HOME/settings.yaml
dsh-self-improved:
enabled: true
modules:
capture: true
extract: true
consolidate: true
evolve: true
recall: true
tools: true
review:
enabled: true # nightly review (one full evolution per day)
time: "22:00" # HH:MM, 24h
说明:
- 总开关关闭 = 插件完全休眠:所有后台定时器停止(15 分钟维护循环 / 夜间复盘 / 启动回填),/memory 和记忆工具全部注销;已存储的记忆保留,重新启用后一切恢复。
- 调度:15 分钟循环只做提取和免费维护(衰减/治理,不花 LLM 成本);完整进化(场景/人格/技能)在夜间复盘时运行(默认 22:00),启动后约 60s 也会跑一次,或者手动执行 /memory evolve。
- /memory 命令零 LLM:它们直接查询本地记忆存储;命令声明了 input,所以带参数的输入由命令系统处理(从命令菜单 / 触发)。
- 记忆浏览器(设置 →「Self-evolving memory」→「Memory」标签页)可以查看/筛选/修正/遗忘记忆、人格、场景和合成技能。
合规
- 本插件的架构灵感来自 TencentDB Agent Memory(MIT);它是独立实现,与腾讯无任何关联。
- 本插件及其所有依赖均为 MIT 许可,完全在本地运行。
致谢
本项目参考了以下开源项目;非常感谢它们的作者和社区:
- TencentDB Agent Memory(腾讯云)—— 四层记忆金字塔(L0 捕获 → L1 提取 → L2 场景分组 → L3 人格)和记忆管理思路,是本插件流水线的直接灵感来源;
- self-improving-agent(作者 pskoett)—— OpenClaw 生态中的自我进化技能:从经验中提炼教训、修正和可复用流程;本插件的自我进化模块(记忆巩固/遗忘/修正 + 技能合成)从中获得设计灵感。
文档
- README.md — 本文件(英文)
- README.zh.md — 中文版说明
- docs/(安装/验证清单、测试指南、设计文档、DSH 调研)— 仅本地,已通过 .gitignore 排除
单元测试:node scripts/test-storage.mjs / test-extract.mjs / test-recall.mjs / test-evolve.mjs / test-commands.mjs(全部 PASS)。
License
MIT License — 完整文本见 LICENSE。
摘要:
- 授权:任何人都可以获取本软件及相关文档的副本,并对其使用、复制、修改、合并、发布、分发、再许可和/或销售;
- 条件:上述版权声明和许可声明必须包含在所有副本或实质性部分中;
- 免责声明:本软件按「原样」提供,不附带任何形式的担保;在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责。
Copyright (c) 2026 mashao。package.json 中声明 license: MIT。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
madage/dsh-self-improved
长期记忆 & 自进化插件,用于 DeepSeek Harness完全本地。
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,487已汉化DSH
73
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,894已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,379已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
DS Bot 是一个基于 DeepSeek Harness简称 dsh的 bot 插件,插件将 dsh 改造为 bot…
★ 5,084已汉化DSH
71.1
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,778已汉化DSH
71.1