前言¶
在 DSH(DeepSeek Harness)里跑智能体时,经验往往散落在对话、笔记或各自为政的脚本里:能记下来,却不好按类型检索、按簇召回,也难以在控制台里统一查看与调参。纯手搓 JSON 或外挂笔记应用,又很难和 Harness 的工具面、侧栏契约对齐。
dsh-engram(Engram,记忆痕迹)由维护者 yhPrime 发布,归类为「记忆」类标准 DSH 插件。当前资料中的版本为 0.11.0,仓库星标为 0。它把「经验与技能引擎」和「经验库控制台」打进同一个插件包:重启 DSH 后只增加一行插件「dsh-engram」,左侧栏出现「经验库」,工具面与 /exp-ui/api 一并生效。下文按安装、结构、配置与典型用法说明,事实均来自 GitHub 仓库 README 与 package 信息。
这是什么¶
Engram 的定位可以概括为:经验与技能引擎 + 经验库控制台,一个标准 DSH 插件。
- 维护者:yhPrime
- 社区目录页:skillhub.cn/plugins/yhPrime/dsh-Engram
- 源码与说明:github.com/yhPrime/dsh-Engram
- 许可:MIT(第三方声明见仓库内
THIRD-PARTY-NOTICES.md) - 运行要求:Node
>=22(见 package.jsonengines)
0.11.0 起,原先拆成的「引擎」与「控制台外壳」已合并为一个插件(plugin.js 为唯一入口),与 dsh-mnemon 等记忆插件在依赖上解耦。
核心功能¶
控制台与侧栏¶
安装并重启 DSH 后,控制台包含这些页面(README 原文列举):概览 / 关系图 / 经验 / 检索 / 记录 / 技能 / 类型 / 使用记录 / 设置。
工具面¶
同包内对 kernel 暴露的工具包括:exp_record、exp_recall、exp_feedback、exp_consolidate、exp_type,与控制台 API 路径 /exp-ui/api 一起生效。
引擎侧能力¶
kernel/ 目录承担存储、检索、簇路由、沉淀、反馈、技能等逻辑;经验库主数据落在配置指定的目录下的 exp-lib.json 等结构中(详见配置一节)。
关系图与主题¶
「关系图」页借鉴了社区中星海式三维关系图等交互思路(README「借鉴与致谢」表中有具体来源与版本说明)。配色默认读取 DSH 运行时主题 token(如 --dsw-alias-brand-primary),随当前主题变化;仅在手动选择预设时才会用固定配色。
Git 备份(可选)¶
在控制台「设置 → Git 仓库备份」可将经验库目录(<dataDir>/.git)当作普通 git 仓库管理:支持初始化、提交推送、仅 fast-forward 拉取,以及 autoBackupMinutes 间隔自动备份(最小 15 分钟,无改动会跳过)。GitHub 可走 OAuth 设备码登录,HTTPS 推送可用单独 token 字段;亦提供 GET/POST /exp-ui/api/sync 与 POST /exp-ui/api/github 等 API。TLS 拦截代理环境下,插件会尝试导出系统 CA 并重试(见 README「Git 备份」小节)。
安装与启用¶
官方 README 给出的安装步骤如下,不要凭插件名自行拼接 dsh plugin add github:owner/repo。
先在插件包目录执行打包,再按 profile 安装本地 tgz:
npm pack
dsh plugin --profile <profile> add ./dsh-engram-0.11.0.tgz
完成后重启 DSH。预期现象:插件列表中只有一行「dsh-engram」;侧栏出现「经验库」,控制台与工具面如上节所述。
安装前建议自行通读仓库源码与 MIT 许可证;插件以当前 DSH 进程权限运行,经验库目录与 Git 凭据会落在本机配置与数据路径中。
仓库结构(便于读源码)¶
| 路径 | 作用 |
|---|---|
plugin.js |
唯一入口:kernel 工具面 + 控制台 API |
cordis.patch.yml |
只插一条 engram 行 |
kernel/ |
引擎:存储、检索、簇路由、沉淀、反馈、技能 |
ui/ |
控制台:client.js(界面)、shell.js(API)、live.js/mock.js(数据源) |
icon.svg |
插件图标 |
package.json 还通过 exports 暴露了 engine、store、retrieval、skills 等子路径,便于在其他模块中按需引用(仍以仓库实际导出为准)。
配置¶
可在 DSH 插件行配置,或写入 ~/.dsh/engram/settings.json:
dataDir/currentRoot:经验库目录(含exp-lib.json)source:live(默认)或mock(仅演示)- 内核参数:
hint、usageLog、feedbackEta、routing、maxTypes等,可在控制台「设置」页修改
Git 备份相关字段(远端地址、token、autoBackupMinutes 等)同样在设置页或 settings.json 中维护;HTTPS token 仅存本机,推送时经 http.extraHeader 使用。
典型用法¶
1. 用控制台管理经验库¶
- 安装 tgz 并重启 DSH。
- 打开侧栏「经验库」,在「设置」中确认
dataDir与source(演示可用mock)。 - 在「记录 / 经验 / 检索 / 技能 / 类型」等页完成日常维护;需要可视化关联时在「关系图」中查看。
2. 在智能体流程中调用工具面¶
智能体侧通过 DSH 已注册的 exp_record、exp_recall、exp_feedback、exp_consolidate、exp_type 与经验库交互;具体参数与返回形态以仓库内 kernel/tools.js 及 ui/API.md 为准。
3. 同步与备份¶
- 在 UI「设置 → Git 仓库备份」完成远端与(可选)GitHub OAuth。
- 或用 HTTP API:
GET /exp-ui/api/sync查看状态;POST /exp-ui/api/sync携带{ "action": "init" | "push" | "pull" | "status" }。
适用场景与注意¶
适合谁: 已在 DSH 上开发智能体、希望把「经验记录—检索—技能分层—类型与簇路由」收拢到同一插件与控制台内的开发者。
生态说明: DSH 的理念是「一切皆插件」;skillhub.cn 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系,本文不将其表述为官方应用商店。
注意:
- 版本 0.11.0 要求 Node 22+;peer 依赖中含
@deepseek-ai/dsh-client-ui-primitives、@deepseek-ai/dsh-tools等,部分标记为 optional,实际环境以你的 DSH 发行版为准。 mock数据源仅作演示,生产应使用默认live。- Git 拉取仅
--ff-only,远端与本地分叉时需人工处理。 - 关系图与存储格式吸收了多个开源项目的思路,详见 README「借鉴与致谢」;使用与二次开发时请保留相应声明。
结尾¶
dsh-engram 把经验库引擎和控制台收成一个标准插件:侧栏「经验库」、多 Tab 控制台、五条 exp_* 工具面,以及可选的 Git 备份与 GitHub OAuth。若你要在 Harness 里长期积累可检索、可反馈、可技能化的经验,可按 README 打包安装 0.11.0 tgz,再从「设置」定好 dataDir 与内核参数。
- 目录页:https://www.skillhub.cn/plugins/yhPrime/dsh-Engram
- GitHub:https://github.com/yhPrime/dsh-Engram