dsh-self-memory

DSH PLUGIN记忆与知识

仓库 cyanxi69-jpg/dsh-self-memory

记忆与知识 未标注验证等级 安全审查:未标注 可信度:未标注 可安装插件

DSH 自记忆插件为 DeepSeek Harness 智能体提供跨会话经验记忆,自动记录问题、方案与模型调用,新会话自动检索回写,避免重复踩坑。

一句话选型结论

按资料字段整理

dsh-self-memory 是记忆与知识类的 DSH 可安装插件,未做沙盒验证,暂无安全审查结论,列出 5 项功能,没有现成安装命令,需要按仓库 README 接入。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类记忆与知识 收录类型可安装插件 验证等级未标注验证等级 安全审查未标注
验证等级 UNKNOWN 未标注验证等级
GitHub 星标 0 复刻 0 · 未关闭 issue 未标注
最近更新 2026-08-21 创建于 2026-08-17
README 9.0 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-self-memory:为 DeepSeek Harness 提供跨会话经验记忆的 DSH 插件

  • 自动记录问题与方案
  • 跨会话自动召回
  • 前提感知检索
  • 支持外部导入
  • 零依赖纯本地

上游标签

deepseek-harness-plugindeepseek-harness-pluginsdsh-plugindsh-plugins

验证等级与安全审查

未标注验证等级
自动化流程结论,不是人工审核
验证等级未标注验证等级上游未给出验证结论,安装前请自行确认
安全审查未标注静态分析结论,未标注不代表已通过审查
仓库健康度未标注按仓库活跃度与最近更新时间给出
可信度未标注综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 列出了 5 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 安全审查还没结论,装之前先看仓库改了什么、要什么权限。
  • 没有现成安装命令,要按仓库 README 手动接入。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在记忆与知识场景里给 DSH 补能力的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-self-memory当前 未做沙盒验证 未标注 0 未标注 无
ruflo L3 · 安装规范通过 低风险 7.4 万 未标注 无
OpenViking L3 · 安装规范通过 低风险 3.9 万 未标注 无
WeKnora L4 · 沙盒安装通过 低风险 3.3 万 未标注 有
distilly L4 · 沙盒安装通过 低风险 2.5 万 未标注 有
EverOS L4 · 沙盒安装通过 低风险 1.3 万 未标注 有

仓库档案

记忆与知识
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方cyanxi69-jpg仓库 dsh-self-memory · 默认分支 未标注
分类记忆与知识memory
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 未标注收录时的数值,非实时
创建 / 更新2026-08-17 · 2026-08-21最后推送 未标注
本站收录2026-08-17首次进入本站目录的时间

README 全文

9.0 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-self-memory — DSH 自记忆插件

> 给 DeepSeek Harness 智能体装上跨会话的「经验记忆」:遇到问题自动查历史方案、自动留痕、自动回写——新会话不再重复踩坑。



这是什么

DSH 自记忆插件(v0.3)把会话中遇到的问题、多种解决方法、脚本文件路径与模型调用全过程结构化记录下来;新会话中,「先查记录 → 有就试 → 成功标命中/失败记根因 → 无则自研 → 最后回写」的闭环自动发生,并支持外部导入解决方法。零运行时依赖、纯本地、离线可用。

快速开始(3 步上手)

1. 安装

dsh plugin --profile web add <本目录>

免重启热挂载:对 AI 说 dev_install_package {"dir": "<本目录>"}。

2. 验证已生效

对 AI 说:selfmem_status → 返回 plugin=v0.3.0 recordsSchema=2 records=… solutions=…。
(代码更新后需 dev_reload_package dsh-self-memory,或重启 dsh 由 bundles 重新装配。)

3. 第一次使用

  • 什么都不用做:你每次发消息,插件都会自动检索历史记录并以 `` 围栏注入上下文;
  • 手动检索:对 AI 说 selfmem_search {"query":"如何识图"};
  • 查看自动采集的会话轨迹:selfmem_trace。

日常闭环(AI 侧):遇到问题 → 看自动注入的历史方案 → 有就执行,成功 selfmem_hit、失败 selfmem_fail 记根因 → 没有就自行解决 → selfmem_record 写回。

要求

  • @deepseek-ai/dsh 0.1.x 发布线(rc 版可)
  • Node.js >=22
  • 零运行时依赖:只用 Node 内建模块;DSH 侧只注入 tools 服务

设计说明

为什么召回注入走用户消息,而不是 system prompt

召回与历史方案通过 agent/inbox 以来源归属的用户消息(source: { kind: 'plugin', plugin: 'dsh-self-memory' })追加。刻意不进 system prompt:某些 preset 的 persona 声明 complete: true(如 stock minimal)会把该 persona 恢复为唯一 prompt 段,静默丢弃其他插件的所有贡献——基于 system prompt 的记忆插件在这种 preset 下会无声失效。用户消息注入还可重放、对压缩可见、不进入 request/header。

为什么注入内容带围栏与来源标注

召回块以 ` 包裹并声明「启发式检索,可能不相关;如不相关请忽略」——记忆只是证据,不是指令,降低注入误导与 prompt 注入风险;同时采集端按source.kind='plugin'` 白名单排除一切插件注入文本,防止记忆把自身注入的内容再记回去(自污染/反馈环)。

为什么保持本地零依赖

对比 OpenViking/Hindsight 的「服务端记忆」方案:本地存储 + 本地检索意味着离线可用、自包含、对话不离开机器。代价是语义检索能力有限(关键词/泛化/倒排),向量与 LLM 提取列入路线图(见「已知局限」)。

配置

配置项 默认 说明
autoRecall true 每次用户消息是否自动检索并注入历史方案
recallBudget 600 召回注入的 token 预算(CJK 感知,≥0x3000 计 1.5)
captureEnabled true 是否自动采集会话轨迹(user/assistant 消息)
dataDir ~/.dsh/self-memory 记录/轨迹/待写队列的存储目录

在 profile 的 cordis.patch.yml 覆写:

- insert:
- id: self-memory
name: dsh-self-memory
config:
autoRecall: true
recallBudget: 800
captureEnabled: true

行为(钩子清单)

  • system-prompt/assemble:跟踪当前 agent 句柄(供 inbox 注入)。
  • session/event(user/message,source.kind='user'):写入轨迹 + 触发自动召回注入。
  • session/event(assistant/message):写入轨迹。
  • 注入排除:source.kind='plugin' 的消息一律不采集、不触发召回。
  • 写操作(record/hit/fail/import):经串行队列执行;失败自动入 pending.jsonl,下次启动重放(去重)。
  • 工具注册前过 validateToolSchema:非法 schema 直接拒绝注册(防 400 事故复发)。

核心能力

# 解决的 5 个问题 方案
1 多关键词关联度 keywords 为 {canonicalKey: 权重},检索按权重加权打分
2 隐去细节增强泛化 记录时自动生成 abstractProblem(版本/路径/哈希/数字→占位符),检索同时匹配原始+泛化文本
3 大量案例快速检索 lib/indexer.js 倒排索引(canonical key→记录 id),记录 >100 时先取候选集再打分
4 前提不同结果矛盾 记录级 preconditions + 方案级 appliesTo/conflictsWith/status;selfmem_search 传 context 前提,按前提匹配排序并标注「不适用/矛盾/已废弃」
5 关键词规范统一 lib/norm.js 同义词表(插件/plugin/模组→plugin),存与查走同一套规范化

工具一览

工具 作用
selfmem_search 检索既有方案(支持 context 前提过滤/排序)
selfmem_list 列出全部记录摘要
selfmem_record 记录/追加方案(同问题多方案、前提、矛盾、关键词权重)
selfmem_hit / selfmem_fail 方案成功 / 失败回写
selfmem_import 外部导入(文件 / 内联 JSON / 文本)
selfmem_status 状态与规模统计
selfmem_trace 查看自动采集的会话轨迹

使用示例

记录一个带前提的方案

selfmem_record {"problem":"断网时如何安装插件","solution":"解压本地包 → dsh plugin add <目录> → pnpm install → dev_install_package 热挂载","keywords":{"plugin":1,"network":0.6},"appliesTo":{"network":"no"}}

前提感知检索(不同前提返回不同方案并标注)

selfmem_search {"query":"如何识图","context":{"model_vision":"no"}}
→ sol-offline-script(适用);sol-switch-model 标注 [不适用当前前提]

外部导入

selfmem_import {"source":"examples/import-demo.json"}

标记成功 / 失败

selfmem_hit  {"query":"断网时如何安装插件","solutionId":"s-…"}
selfmem_fail {"query":"…","solutionId":"s-…","rootCause":"…"}

记录结构

{
"schema": 2,
"problem": "原始问题(含细节)",
"abstractProblem": "泛化问题(细节隐去,自动生成)",
"problemType": "…",
"keywords": { "plugin": 1, "network": 0.6 },
"tags": ["…"],
"preconditions": { "network": "no" },
"solutions": [
{ "id": "s-…", "method": "…", "scripts": [], "modelCalls": [],
"appliesTo": { "network": "no" }, "conflictsWith": ["s-…"],
"status": "active|superseded|conflicting",
"hits": 0, "failedAttempts": 0, "rootCauses": [] }
]
}

项目结构(零依赖,纯 JS)

dsh-self-memory/
├── entry.js            # 公共出口
├── index.js            # 工具注册 + 事件钩子(采集/注入/队列)+ schema 守卫
├── lib/
│   ├── store.js        # JSON 持久化(v1 自动迁移 v2)
│   ├── ops.js          # 可序列化操作(record/hit/fail/import,纯函数)
│   ├── writer.js       # 写路径串行队列 + pending 重放
│   ├── capture.js      # 事件驱动轨迹采集(插件源排除)
│   ├── inject.js       # 召回注入 + CJK token 预算
│   ├── search.js       # 打分:加权关键词 + 泛化 + bigram + 前提匹配
│   ├── indexer.js      # 倒排索引(快速候选集)
│   ├── norm.js         # 关键词规范化 + 同义词 + 问题泛化
│   └── seed.js         # 初始知识
├── tests/              # 单元测试(node:test,零依赖)
├── examples/           # 使用示例(如 import-demo.json)
├── cordis.patch.yml    # bundle 装配补丁
├── LICENSE             # MIT
└── package.json        # dsh.bundle.patch -> cordis.patch.yml

存储位置

~/.dsh/self-memory/

  • records.json — 结构化记录({schema:2, records:[...]},v1 自动迁移)
  • sessions/<会话>.jsonl — 自动采集的原始轨迹(user/assistant,上限 1MB/会话)
  • pending.jsonl — 写失败待重放队列(去重)

测试

node --test   # 19 个单元测试:norm / search / store / schema / inject / ops

已知局限

  • 检索是关键词/泛化/倒排(无向量语义检索)——计划引入本地 embedding(可复用 DSH host-llm)
  • 轨迹自动采集但不自动提炼为记录——批量 LLM 提取(任务末打分回溯)列入路线图
  • 同一问题多方案靠前提区分,仍需要 AI 在记录时给出 appliesTo
  • 单文件 JSON 存储,记录达万级后可迁移 SQLite

许可证

MIT — 见 LICENSE。

常见问题

6 问
答案由本站依据条目字段整理,不引用上游原文
dsh-self-memory 怎么安装?

本站没有抓到该条目的安装命令,请到仓库主页确认安装方式;这类条目多数是生态应用或尚未发布安装包的项目。

dsh-self-memory 的验证等级是什么意思?

未标注验证等级。上游未给出验证结论,安装前请自行确认

dsh-self-memory 安全吗?

未标注。

dsh-self-memory 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-self-memory 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-self-memory 有哪些功能?

自动记录问题与方案、跨会话自动召回、前提感知检索、支持外部导入、零依赖纯本地。

同名或近似条目

2 条
不同作者的仓库分开列,请确认你要装的是哪一个
记忆与知识
按星标排序,可作替代方案

ruflo

ruflo

L3 · 安装规范通过 7.4 万 星

OpenViking

OpenViking

面向 DeepSeek Harness 的 OpenViking 记忆与上下文插件:pre-step 自动召回与画像注入、会话捕获、`vik

L3 · 安装规范通过 3.9 万 星

WeKnora

WeKnora

把 WeKnora 知识库接入 dsh 的四个只读工具:列出知识库、混合检索原文片段、按顺序还原单篇文档,以及直接取用 WeKnora 自己

L4 · 沙盒安装通过 3.3 万 星

distilly

distilly

Distilly — Distill how they think into reusable Skills for any Agent o

L4 · 沙盒安装通过 2.5 万 星

EverOS

EverOS

L4 · 沙盒安装通过 1.3 万 星

MemOS

MemOS

L4 · 沙盒安装通过 1.2 万 星

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 —。