🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

长期记忆自进化 madage/dsh-self-improved

DeepSeek Harnessv0.1.1
madage79 天前有提交已提供中文文档扫描:含敏感能力

长期记忆 & 自进化插件,用于 DeepSeek Harness完全本地。

35.8/100
综合分
12
GitHub 星标
262
npm 周下载
—/5
用户评分

数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-self-improved
npm 源 · dsh-self-improved 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · chat
装得上吗
静态安装检查通过
未做真实安装
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 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
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 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。
预览分享卡片长什么样 ↓madage/dsh-self-improved
分享 · DeepSeek Harness Hub
madage/dsh-self-improved

长期记忆 & 自进化插件,用于 DeepSeek Harness完全本地。

回到顶部