DSH 跨会话长期记忆插件:分层存储(L0 规则/L1 索引/L2 事实/L3 SOP)+ 行动验证写入 + 自动蒸馏候选 + 溯源/归档/回滚,按命名空间隔离。
ⓘ 此插件是大仓库 DDDFXYqiming/Agent_Extensions 的子包,星数与活跃度统计的是整个仓库。
- 语言
- JavaScript
- License
- MIT
- 分支
- main
安装
$ dsh plugin --profile web add dsh-layered-memory在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程
对话式安装
帮我安装 DeepSeek Harness 插件 DDDFXYqiming/Agent_Extensions/dsh-plugins/dsh-layered-memory:先查看仓库 https://github.com/DDDFXYqiming/Agent_Extensions 确认安全性,然后执行安装命令并验证插件加载成功。
把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。
一句话定位
为 DeepSeek Harness(DSH)提供跨会话的长期记忆能力,按 L0 元规则 / L1 索引 / L2 环境事实 / L3 任务经验四层存储,按命名空间隔离,强制要求"行动验证"才允许写入。
核心能力
- 每轮把 L1 存在性索引注入模型上下文,让模型随时看到自己有哪些可复用经验
- 提供 12 个记忆工具,覆盖读、列、写、改、归档、回滚、统计、维护、候选确认、溯源展开
- 写入时强制带"行动验证证据",过滤模型的猜测与常识污染
- 自动把每回合成功的工具调用蒸馏为 pending 候选,由人或模型确认后再入正式记忆
- 每次更新记忆时保留历史快照(supersede),归档不物理删除,可一键回滚
- 按 workspace 目录名 + git 分支自动隔离命名空间,避免多项目记忆串味
- 每 20 轮自动跑一次维护(去重、压缩 L1、统计、合并候选)
技术实现
- 语言: JavaScript(ESM 单文件)
- 关键依赖:
@deepseek-ai/cordis(宿主框架)、@deepseek-ai/dsh-tools(defineTool)、@deepseek-ai/dsh-system-prompt(L1 注入)、@deepseek-ai/schemastery(配置校验) - 架构模式: 通过
cordis.patch.yml注入 bundle;apply 钩入ctx.systemPrompt.context(L1 每轮可见)、ctx.skills.register(memory 运行时 skill)、ctx.tools.register(工具)、ctx.on('session/event')(turn/end 蒸馏与维护)、ctx.on('tools/result')(成功工具缓冲)、ctx.on('agent/disposed')(清理) - 入口文件: lib/index.js(1637 行,单文件实现)
适用场景
当你希望 DSH Agent 在多个会话间保留本机环境、工具配置、踩过的坑等可复用经验,避免每次重头摸环境时使用。安装后 Agent 能在新任务开始时主动查阅历史经验,并在任务完成后把"已验证成功"的知识沉淀下来供下次复用,适合长期维护同一台机器或同一组项目的开发者。
前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| Node.js | >=22.19 | package.json#engines.node 声明 |
| DSH 宿主(cordis) | >=4.0.0-rc <5 | peerDependencies;插件通过 cordis.patch.yml 注入 |
| @deepseek-ai/dsh-tools | * | 提供 defineTool,由宿主提供 |
| @deepseek-ai/dsh-system-prompt | * | 提供 systemPrompt.context 注入能力 |
| @deepseek-ai/schemastery | * | 提供配置 Schema 校验 |
| 原生模块 | 无 | 仅使用 node:fs / node:os / node:path / node:crypto / node:child_process |
| 平台 | 跨平台 | 未声明 OS 限制;autoNamespace 会调用 git 命令,非 git 目录会自动降级只用 cwd 名 |
安装方式
dsh plugin --profile web add dsh-layered-memory
配置项
| 配置 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| memoryDir | 字符串 | 记忆根目录绝对路径,留空则用 <home>/.dsh/memory | "" |
| maxIndexLines | 数字 | L1 索引自动段行数上限;超出后维护阶段按访问热度压缩 | 30 |
| progressive | 布尔 | 工具采用渐进式暴露(默认仅注册 memory_activate,skill 加载后再挂 12 个工具);关闭则一次性注册全部工具 | true |
| defaultNamespace | 字符串 | 固定使用的命名空间,留空则由 autoNamespace 决定 | "" |
| autoNamespace | 布尔 | 是否按 workspace 目录名 + git 分支自动生成命名空间(git 命令不可用时只用目录名) | true |
| autoPending | 布尔 | 是否在每回合结束时自动把成功工具调用写入 pending/ 候选区 | true |
| maintainEveryTurns | 数字 | 每多少轮自动跑一次去重/压缩/统计/合并候选;设为 0 关闭自动维护 | 20 |
常见问题
Q: 安装后记忆存放在哪里?
A: 默认存放在用户主目录下的 ~/.dsh/memory/(macOS/Linux 为 ~/.dsh/memory,Windows 为 %USERPROFILE%\.dsh\memory)。开启 autoNamespace 时会自动按 workspace 目录名 + git 分支创建子目录隔离;如需自定义可在 profile 配置中设置 memoryDir。
Q: 写入记忆必须提供 evidence 吗?
A: 是。memory_write 与 memory_accept 都强制要求 evidence,未提供会被工具直接拒绝。evidence 描述本次成功验证该信息的工具调用或实测结果,未验证的信息不允许写入正式记忆。
Q: 安装后工具列表里没有 memory_read 等工具怎么办?
A: 默认采用渐进式暴露机制(progressive=true),所有 12 个工具仅在调用 memory_activate 或 memory skill 加载成功后挂到当前 Agent。skill 加载通常会自动激活;若工具仍未出现,调一次 memory_activate 即可。
Q: 如何回滚误改或归档过的记忆?
A: 用 memory_rollback 工具,传入 topic 与 entry_type(fact/sop),会自动从 .history/ 取最近一次快照恢复;memory_archive 仅在 L1 索引和 memory_read 中隐藏条目,文件仍保留在 archive/,同样可通过 memory_rollback 还原。
Q: 卸载后会删除已写入的记忆吗?
A: 不会。记忆文件全部以普通 Markdown/JSON 形式存储在 ~/.dsh/memory/(或其子命名空间目录),卸载插件仅移除插件自身,记忆文件可继续浏览或在其他 DSH 实例中复用;如需彻底清除可手动删除该目录。
Q: L1 索引超过 30 行会怎样?
A: 写入后会提示 over_limit=true。运行 memory_index 仅重建索引;运行 memory_maintain 会按访问热度压缩 L1 自动段,只保留活跃条目,被压掉的 fact/sop 仍存在文件中,但不再出现在 L1 索引里。
Q: 自动蒸馏候选(pending)是什么?
A: 当 autoPending=true(默认)时,每轮 turn/end 会把本回合成功的工具调用写入 pending/ 候选区,不会自动入正式记忆。需要用 memory_pending 查看候选,memory_accept 并提供 topic/entry_type/evidence 后才会被写入 L2/L3。
上手难度
入门 — 默认配置即可工作,安装即用;如需自定义命名空间、维护频率或存放位置再按需调整配置。
已知问题与限制
- autoNamespace 依赖
git命令读取当前分支(git branch --show-current),非 git 目录会自动降级仅用 cwd 目录名,无法按分支区分命名空间 memory_expand需要宿主提供sessionQuery服务;未注入时返回 "sessionQuery 服务不可用",溯源信息无法展开progressive: true(默认)下若 memory skill 加载未自动激活当前 Agent 的工具,需手动调一次memory_activate;将progressive设为false可一次性注册全部工具,但失去了按 Agent 隔离的优势- L1 索引超过
maxIndexLines后仅提示over_limit=true,不会自动压缩,需要手动运行memory_index或memory_maintain - 写入/接受候选时的 evidence 是字符串,由调用方自证;插件本身不会校验 evidence 是否真的对应一次成功的工具调用
- pending 候选在
memory_accept成功后会归档副本到archive/并删除原文件,但 accept 失败时不会回滚 buffer
简体中文 | English
Agent_Extensions
📦 DSH 插件已拆分为独立仓库
本仓库
dsh-plugins/下的 DSH 插件已迁移为独立 GitHub 仓库,推荐直接安装独立仓库:
插件 独立仓库 dsh-vision-skill https://github.com/DDDFXYqiming/dsh-vision-skill dsh-layered-memory https://github.com/DDDFXYqiming/dsh-layered-memory dsh-annotation-patched https://github.com/DDDFXYqiming/dsh-annotation-patched dsh-side-panel-patched https://github.com/DDDFXYqiming/dsh-side-panel-patched dsh-ocr1-memory https://github.com/DDDFXYqiming/dsh-ocr1-memory 安装示例:
dsh plugin --profile web add github:DDDFXYqiming/dsh-ocr1-memory本仓库不再维护 dsh 插件,仅保留历史快照与说明;后续更新请以独立仓库为准。
DeepSeek Harness(DSH)插件与 AI Agent 技能集合 —— 面向 DeepSeek Harness 的原生插件(走官方扩展接缝,零框架补丁)+ 跨框架通用 Skill + Hermes 插件,开箱即用。
本仓库收集、翻译并自包含封装 AI Agent 相关的技能资源,并面向 DeepSeek Harness(DSH) 提供标准插件形式的扩展。所有内容均为自包含(技能/插件内自带脚本、模板与文档,不依赖仓库外文件),克隆即可用。
✨ 内容总览
1️⃣ DSH 原生插件(dsh-plugins)—— 零框架补丁
面向 DeepSeek Harness 官方扩展接缝(ctx.skills / ctx.tools / ctx.credentials / ctx.slots / ctx.layout),可随 DSH 版本升级:
| 插件 | 能力 | 依赖 |
|---|---|---|
dsh-vision-skill v0.4.4 | 识图插件:8 个工具(含渐进式暴露激活工具)+ Credential 化 + 路径围栏 | Node.js + DSH(dsh-tools / dsh-credentials)、Python 3 + Pillow、视觉模型 API Key |
dsh-layered-memory v0.4 | 跨会话长期记忆:命名空间隔离 + L1 索引注入(存在性编码、KV 缓存友好)+ L2 环境事实 + L3 任务经验 + 自动蒸馏候选 + 溯源/归档/回滚 + 自动维护 | Node.js + DSH(dsh-tools) |
dsh-annotation-patched | 选中批注/引用插件(fork 增强):选中助手回复文字 → 批注(可空)或一键「引用」→ 回车随消息发送,回复按 Annotation N 逐条对照;增强:Codex 式「引用」按钮(显式确认制)+ 幽灵引用修复 | Node.js + DSH(纯浏览器端 bundle,零 Node 逻辑) |
dsh-side-panel-patched | 右侧工作区面板(fork 增强):文件树/多文件 tab/预览/编辑(CodeMirror)+ Git 审查 + 终端;增强:绕开官方 520px 宽度上限、头部像素级对齐、Codex 风格梭形拖拽把手、文件 tab 栈 + 会话跟踪、Windows 终端防崩溃 | Node.js + DSH(文件/Git/终端 API + 浏览器 bundle) |
dsh-ocr1-memory v0.1.0 | 光学压缩记忆:文本渲染为 SoM 图像存储 + 年龄衰减 + active recall + OCR 驱动召回 | Node.js + DSH(dsh-tools / cordis / schemastery)、Python 3 + Pillow、可选 DeepSeek-OCR 后端 |
2️⃣ 通用技能(General_skills)—— 跨框架可用
任何智能体框架(Claude Code / Codex / opencode / DSH / Hermes 等)均可把目录作为 Skill 挂载:
| 技能 | 能力 | 依赖 |
|---|---|---|
vision-skill | 识图:本地图片 → 视觉模型描述(Qwen 动态分辨率方法,OpenAI 兼容接口) | Python 3 + 视觉模型 API Key |
video-notes-generator | 视频 URL → 结构化 Markdown 笔记(时间戳 / 抽取帧 / 多模态图像观察 / AI 总结),支持 Bilibili / YouTube / 抖音 / 快手 / 本地文件 | Python 3 + 依赖(见 scripts/install_deps.sh) |
ppt-master | 源文档(PDF / DOCX / URL / Markdown)→ 多角色协作生成 SVG 页面 → 导出 PPTX | Python 3(标准库为主,可选依赖见 requirements.txt) |
markitdown-skill | 微软 MarkItDown:PDF / DOCX / PPTX / XLSX / HTML / EPUB 等 → 统一 Markdown | Python 3 + pip install -r requirements.txt |
generic-agent-code-run | GenericAgent 风格 code_run:Windows 桌面应用 / 真实浏览器自动化(Win32 / UIA / OCR / 截图 / CDP)+ 观察-行动-验证循环 | Python 3 + 对应库 |
所有技能均内置
SKILL.md(agent 运行时加载的指令),部分附scripts/、templates/、references/。
3️⃣ Hermes 插件(hermes_plugins)
| 插件 | 能力 | 依赖 |
|---|---|---|
language-router v5.0 | 自适应语言路由:Planner-first → Worker → 可选 Verifier → Digest 流程(NousResearch / Diana 出品),hooks 挂载 pre_llm_call / pre_api_request / post_api_request | Hermes 框架 |
📁 目录结构
Agent_Extensions/
├── dsh-plugins/ # DeepSeek Harness(DSH)原生插件
│ ├── dsh-vision-skill/ # 识图插件 v0.4.4(8 工具 + 渐进式暴露 + Credential 化)
│ ├── dsh-layered-memory/ # 分层长期记忆(v0.4:命名空间/自动蒸馏/自动维护)
│ ├── dsh-annotation-patched/ # 选中批注/引用插件(fork 增强,Codex 式选中即引用)
│ ├── dsh-side-panel-patched/ # 右侧工作区面板(fork 增强,多文件 tab + 会话跟踪)
│ └── dsh-ocr1-memory/ # 光学压缩记忆(SoM 图像 + active recall)
├── General_skills/ # 通用智能体技能(跨框架,挂载即用)
│ ├── vision-skill/ # 识图
│ ├── video-notes-generator/ # 视频转结构化笔记
│ ├── ppt-master/ # 文档 → SVG → PPTX
│ ├── markitdown-skill/ # 任意文档 → Markdown
│ └── generic-agent-code-run/ # Windows 桌面/浏览器自动化
├── hermes_plugins/ # Hermes 框架插件
│ └── language-router/ # 语言路由(planner-first)
└── README.md
🚀 快速开始
方式一:安装 DSH 插件(以 dsh-vision-skill 为例)
DSH 插件已拆分为独立仓库,推荐直接安装独立仓库:
# 1. 从独立仓库安装(自带 cordis.patch.yml,自动贡献 id: vision-skill)
dsh plugin --profile web add github:DDDFXYqiming/dsh-vision-skill
# 2. 配置 Credential($DSH_HOME/.credentials.yaml)
VISION_API_KEY: sk-xxxx
本仓库
dsh-plugins/下保留的是历史快照;各插件最新文档见对应独立仓库。
⚠️ bundle 安装后不要在 profile 的
cordis.patch.yml里再insert同名条目,否则会触发duplicate loader entry id启动崩溃;需要自定义配置时用裸条目按 id 覆盖(见插件 README)。
方式二:挂载通用技能(任何框架)
以 vision-skill 为例:
# 1. 复制技能目录到你的 agent 的 skills 目录
# (Claude Code: ~/.claude/skills/ ;Codex: ~/.codex/skills/ ;其他框架见其文档)
cp -r General_skills/vision-skill <你的 skills 目录>/
# 2. 配置视觉模型(OpenAI 兼容接口)
cd General_skills/vision-skill
cp templates/.env.example .env # 填入 VISION_API_URL / VISION_MODEL / VISION_API_KEY
# 3. 自检
python scripts/vision.py --check
其他技能用法详见各目录内 SKILL.md。
方式三:安装 Hermes 插件
将 hermes_plugins/language-router 目录放入 Hermes 插件目录即可(plugin.yaml 声明了全部 hooks 与版本信息)。
🧩 DSH 插件能力一览
dsh-vision-skill v0.4.4(8 工具 + 1 运行时 skill)
| 工具 | 能力 |
|---|---|
vision_analyze | 识图(5 模式 + mega 超高清 16M 像素预算) |
vision_ocr / vision_long_screenshot_ocr | 独立 OCR / 超长截图分块 OCR(带重叠切块 → 逐块识别 → 合并) |
vision_ground / vision_detect | 目标定位 / 元素枚举(像素坐标框 + 归一化坐标) |
vision_dominant_colors | 主色分析(本地像素算法,无需 API) |
vision_clipboard | 剪贴板图片兜底(应对"当前模型不支持图片"粘贴拦截) |
vision_activate | 渐进式暴露兜底:skill 加载后工具未自动出现时调用一次 |
工程化特性:渐进式工具暴露(全局只挂 1 个轻量激活工具,省上下文)、密钥 Credential 化(credential: VISION_API_KEY 引用,每操作解析)、路径围栏(realpath 校验防穿越)、超时与并发门控、严格 JSON Schema 结构化输出。
dsh-layered-memory v0.4(分层长期记忆)
| 组件 | 说明 |
|---|---|
memory:index 注入 | 通过 ctx.systemPrompt.context 每轮实时注入 L1 索引(存在性编码,读文件即生效,KV 缓存友好) |
memory(运行时 skill) | 触发语义:何时读 / 何时写 / 何时同步索引 |
memory_activate | 渐进式暴露兜底:skill 加载后工具未自动出现时调用一次 |
memory_list / memory_read | 列出 / 读取记忆(index / fact / sop,含溯源 meta) |
memory_write | 写入记忆(fact/sop,evidence 必填 = 行动验证公理) |
memory_index | 重建 L1 索引自动段(保留 [RULES] 手动段) |
memory_pending / memory_accept | 自动蒸馏候选区:查看 / 确认入正式记忆 |
memory_update / memory_archive / memory_rollback | 更新(supersede 保留历史)/ 归档 / 回滚 |
memory_expand | 通过 sessionQuery 展开 sourceSession/sourceSeqs 原始事件 |
memory_stats / memory_maintain | 统计 / 自动维护(去重、压缩索引、合并候选) |
核心特性:命名空间隔离(<memoryDir>/<namespace>/...,默认 workspace 目录 + git 分支)、自动蒸馏(turn/end 成功工具调用 → pending/,确认后才入正式记忆)、自动维护(maintainEveryTurns 默认 20)、渐进式工具暴露(progressive: false 可回退全局注册)。
核心公理:行动验证(No Execution, No Memory)、神圣不可删改(已验证事实可压缩迁移、严禁丢弃)、禁易变状态(时间戳/PID/临时路径不存)、最小充分指针(L1 只写存在性)。注入走 user-role 快照,不破坏 DSH 的 KV 缓存命中率(设计细节见插件 README)。
dsh-annotation-patched(选中批注/引用,fork 增强)
| 能力 | 说明 |
|---|---|
| 选中批注 | 选中助手回复文字 → 批注(可留空)→ 回车随消息发送;自己的气泡不显示批注块(零闪烁隐藏) |
| 逐条对照 | 模型按 Annotation 1: … 逐条回应,回复中为可悬停芯片(回看原文+批注) |
| Codex 式「引用」按钮(增强①) | 选中文字 → 工具栏「引用」按钮 → 回车即带(空批注纯引用),显式确认制,复制/阅读选中不会误触发 |
| 幽灵引用修复(增强②) | 拼稿即清待发送集(原版依赖装饰扫描轮询清理存在竞态残留) |
来源:omdsh-dev/dsh-annotation v1.3.13(MIT),全部改动带 PATCH(2026-08-14) 标记,详见目录内 README.md。
dsh-side-panel-patched(右侧工作区面板,fork 增强)
| 能力 | 说明 |
|---|---|
| 文件树 + 多文件 tab | 文件树点文件 → 独立 tab(同时打开多个文件,切换/单关/查重激活),树单例跟随激活 tab、滚动位置跨 tab 保持 |
| 会话跟踪 | 切换工作区 → 树重载当前工作区;文件 tab 按会话分组(各自保留、切换显示、互不串扰) |
| Git 审查 / 终端 | 工作区变更审查(stage/unstage);终端 Windows 友好降级(Unix PTY 限制不崩溃) |
| 布局增强 | 绕开官方 520px 宽度上限(420~60% 视口自由拖宽)、头部与官方 header 像素级对齐、Codex 风格梭形拖拽把手、放大按钮全宽切换 |
来源:ccq1/dsh-side-panel v0.2.0(BSD-3-Clause),全部改动带 PATCH(2026-08-14) 标记,详见目录内 README.md。
⚙️ 环境要求
| 使用场景 | 要求 |
|---|---|
| DSH 插件 | Node.js + DSH(@deepseek-ai/dsh-tools、@deepseek-ai/dsh-credentials) |
| dsh-vision-skill / vision-skill | 额外需要 Python 3 + Pillow,以及任意 OpenAI 兼容多模态模型 API Key(Qwen-VL / MiniMax-M3 / Gemini / GPT-4o,默认 MiniMax-M3) |
| 通用技能(vision / video / ppt / markitdown / automation) | Python 3.x + 各技能列出的 pip 依赖 |
| Hermes 插件 | Hermes 框架 |
❓ FAQ
Q:通用技能和 DSH 插件怎么选?
A:通用技能跨框架,任何 agent 都能挂载;DSH 插件是 DSH 原生扩展,走官方接缝(工具注册 / Credential / 上下文注入 / 布局插槽),能力更强但只适用于 DSH。两者能力互通——dsh-vision-skill 就是把 General_skills/vision-skill 包装成 DSH 原生插件。
Q:我的模型不支持图片,能识图吗?
A:能。直接贴图会被框架拒绝(MODEL_DOES_NOT_SUPPORT_IMAGES),改用两种方式:① 发图片的本地路径文本;② 截图后说"看图",vision_clipboard 自动保存到工作区再识别。这是纯文本模型的能力门禁,不是插件问题。
Q:视觉 API 用哪家?
A:任意 OpenAI 兼容的多模态模型接口,通过 VISION_API_URL / VISION_MODEL / VISION_API_KEY 注入,不写死任何厂商。
Q:子目录之间有关联吗? A:没有。每个子目录是独立的自包含单元,可单独使用、单独发布、单独删除。
🤝 贡献
- 每个子目录是独立的自包含单元,欢迎以 PR 提交新技能/插件,或提 Issue 反馈问题。
- 贡献要求:自包含(自带脚本/模板/文档)、许可证清晰(建议 MIT)、不写死密钥与本机绝对路径。
- 新增技能的入口文档统一为
SKILL.md,DSH 插件另附cordis.patch.yml与package.json。
📄 许可
本仓库全部内容以 MIT License 分发。社区来源内容保留原作者署名(见各子目录 SKILL.md / plugin.yaml 头部)。
查看使用指南 →
该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。
收录徽章
[](https://deepseek-plugin.org/plugins/DDDFXYqiming/Agent_Extensions/dsh-plugins/dsh-layered-memory)把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。