dsh-memory-evolve

205Star14Fork2Issue0Watching

为 DSH 注入五轨分层记忆(全局/用户/项目/项目关键+git分支/每日)、自进化后台审查、待办/技能/提示词/画板管理、COI 外部 AI 代理调度与跨设备记忆同步。

机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
JavaScript
License
MIT
分支
main
deepseek-harnessdshdsh-plugin

安装

$ dsh plugin --profile web add github:csyangwen/dsh-memory-evolve

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 csyangwen/dsh-memory-evolve:先查看仓库 https://github.com/csyangwen/dsh-memory-evolve.git 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

为 DeepSeek Harness 注入一套「越用越懂你」的 AI 长期记忆与协作扩展:让 AI 跨会话、跨项目、跨设备记住你是谁和项目里定下的事,附带待办/技能/提示词/画板管理、外部 AI 代理调度、会话广播与房间协作等十几个可选子模块,覆盖 WebUI 管理面板。

核心能力

  • 五轨分层记忆自动注入(用户档案 / 全局事实 / 项目关键记忆+git 分支过滤 / 项目日志 / 每日日志),写入与读取均通过 memory 工具
  • AI 提议-用户确认双轨写入:key/user/memory 自动进待确认队列,由记忆 Tab「待确认」中采纳或拒绝
  • 四轨待办管理(生活 / 工作 / 项目 / 每日),支持到期提醒、状态筛选与四象限,按当前工作目录自动隔离项目待办
  • 技能自我进化:后台审查可自动把反复踩坑的方法论固化为技能,由 skill_manage 工具创建/编辑/禁用
  • 外部 AI 代理调度(COI):把重活派给 kimi/codex/grok/hermes 等 CLI 代理,后台异步执行、结果自动沉淀回记忆
  • 多会话广播房间 + 工作区冲突协调:让一组并行会话拥有房间消息、文件占用锁与冲突告警
  • 提示词库、无限画板(素材收集)、会话书签与任意轮分支、记忆跨设备同步(git 仓库级别)、会话评审员(独立模型 per-session 持续评审)

技术实现

  • 语言: JavaScript(Node.js ESM;src/client/ 为 TypeScript/TSX,src/ 通过 scripts/build.mjs 编译到 lib/
  • 关键依赖: 零运行时依赖(仅使用 Node 内置 node:fs / node:path / node:child_process / node:crypto / node:os / node:url);客户端通过 dsh.client.inject 注入 @deepseek-ai/dsh-client-runtime
  • 架构模式: 标准 Cordis 插件(export function apply(ctx, rawConfig) + inject 列表),宿主端通过 cordis.patch.yml 的 bundle patch 自动注册 dsh-memory-evolve 一行;每个可选子模块都遵循「独立开关 + 独立存储 + 运行时同步装配/卸载」纪律
  • 入口文件: lib/index.js(host 端插件入口,541 行配置 + 678 行 apply 装配);lib/client.js(浏览器端,含 41 个 React 组件)

适用场景

日常和 DSH 协作但希望 AI 跨会话记住项目约定的开发者:今天定下的架构决策、踩过的坑、用户偏好,下次开新会话直接问 AI 就能衔接;同时希望把多会话协作、外部 AI 派单、跨设备项目记忆这类「操作复杂但常规」的扩展能力收在一个插件里用 WebUI 集中管理,而不用单独装十几个小插件。

前置依赖与兼容性

依赖最低版本说明
DeepSeek Harness未声明package.json 无 engines/peerDependencies;包内自带 cordis.patch.yml 自动注册;部分能力(会话图片附件/图片查询)描述中要求 260810+ 快照
Node.js未声明仅使用 Node 内置模块,无 perf_hooks / 实验性 API;ESM + node: 前缀 import 建议 Node 22+
平台跨平台本地文件搜索走 macOS mdfind / Windows es.exe / Linux rg 或 Node 遍历兜底;toWindowsPath 用 WSL wslpath 转换
原生模块纯 Node 内置,无 node-gyp / native binding
可选:DShell 之外的能力视子模块而定COI 需本机已装对应 CLI(kimi/codex/grok/hermes);通知/渠道直发需对应渠道插件(dsh-feishu 等)已安装并启用

安装方式

dsh plugin --profile web add github:csyangwen/dsh-memory-evolve

配置项

配置类型说明默认值
memoryDir路径记忆与待办存储根目录<DSH_HOME>/memories(DSH_HOME 默认 ~/.dsh
skillDir路径技能库目录~/.agents/skills
reviewEnabled布尔开启回合内记忆审查(每 N 轮自动提炼记忆/技能)false
reviewInterval整数审查触发间隔(用户回合数)5
reviewMode字符串审查产出模式:suggest(进待确认)/ auto(直接写入)suggest
searchDocsMode枚举本地文件搜索四档:all / filename / content / offnull(运行时推断)
coiEnabled布尔开启外部 AI 代理调度(kimi/codex/grok/hermes)false
broadcastEnabled布尔开启会话广播房间false
sessionEnabled布尔开启会话编排(程序化创建/唤醒 DSH 会话)false
sessionSearchEnabled布尔开启跨工具历史会话搜索(当前支持 Codex)false
promptsEnabled布尔开启提示词库false
modelsEnabled布尔开启插件侧模型配置 Tabfalse
uiSettingsEnabled布尔开启 DSH UI 小功能(会话列表筛选等)false
bookmarkEnabled布尔开启会话书签与任意轮分支false
advisorEnabled布尔开启会话评审员(独立模型持续评审)false
syncEnabled布尔开启项目记忆跨设备同步false
canvasEnabled布尔开启无限画板false
notifyEnabled布尔开启 IM 渠道通知(飞书/QQ/微信/企微)false
channelSendEnabled布尔开启 IM 渠道直发true
sessionImageQueryEnabled布尔开启本会话图片查询工具false
keyProgressiveDisclosure枚举项目关键记忆注入模式:auto / off / onoff
keyFullInjectThreshold整数auto 模式下条目数 ≤ 此值触发全量注入3
keyFullInjectCharLimit整数auto 模式下总字符数 ≤ 此值触发全量注入1500
keyBranchFilter布尔按 git 分支过滤注入的项目关键记忆true
coiRetentionDays整数COI 任务留档保留天数90
coiTaskTimeoutMs整数COI 任务默认超时(毫秒)43200000(12 小时)
advisorProvider字符串/null评审模型供应商(null=继承当前会话)null
advisorModel字符串/null评审模型 id(null=继承当前会话)null
advisorCallTimeoutMs整数单次评审调用超时(毫秒)60000
advisorMaxMessages整数评审输入上下文窗口上限(0=无上限)60
advisorSteerSeverities字符串数组触发实时提醒的严重度(nit / concern / blocker全量

上表为常用项的子集,完整配置见 lib/index.js:69-245DEFAULTS 对象;所有运行时可改项(RUNTIME_KEYS)既可在 cordis.patch.yml 静态配置,也可在 Web 设置面板即时切换。

常见问题

Q: 装上后什么都没发生是正常的吗?

A: 正常。本插件核心能力(五轨记忆 / 待办 / 技能管理 / 记忆同步补丁)默认就生效;其他十几个子模块(外部 AI 调度、会话广播、画板、评审员等)默认关闭,需要到「Memory Evolve 设置 → 配置」打开对应开关才会出现 Tab 和工具。

Q: 提示「duplicate loader entry id」启动失败怎么办?

A: 你的 profile patch 里还残留旧版本的手动 insert 行。包内 cordis.patch.yml 已经把 dsh-memory-evolve 写入 bundle patch 自动注册,重复 insert 同 id 会让加载器报错。删除 ~/.dsh/profiles/<name>/cordis.patch.yml 里这一行即可。

Q: 五轨记忆会塞爆上下文吗?

A: 不会。注入策略是「只注入低频稳定轨」——用户档案 / 全局事实 / 项目关键记忆(按 git 分支过滤)实时读取并以 user-role 尾部消息注入;项目日志与每日日志不注入(每回合增长会破坏前缀缓存),改为按需读取 + 快照中固定提示要求模型每轮收尾调用 memory 工具写入。keyProgressiveDisclosure 开启摘要模式后,关键记忆也按需 expand 加载全文。

Q: 记忆同步会不会把代码也同步过去?

A: 不会。同步只覆盖 memoryDir 下的项目记忆与全局记忆(按轨分别开关),代码文件不会被读取或写入;项目轨默认把同步数据放到项目代码仓库的专属分支(不污染任何代码分支),全局轨需要单独配置一个共享记忆仓库。

Q: 用了一段时间后发现记忆变得很乱,怎么整理?

A: 记忆 Tab 提供「归档」入口——把暂时不用的全局记忆 / 用户档案 / 项目关键记忆条目移到 *-archive.md(不注入、可一键转回主轨)。删除失败时会先归档再删除,宁可重复不可丢失;批量归档/采纳/拒绝都有按钮,不需要逐条手动操作。

Q: 跟官方插件冲突怎么办?

A: 本插件已合并原独立插件 dsh-skills-manager / dsh-skill-browser 的功能。从旧版本升级前必须先卸载旧插件(删除 profile patch 里的 insert 行 + 删除 ~/node_modules/@dsh-local/skills-manager 软链),否则旧插件客户端调用 DSH 已移除的 ui-slots.deferRegistration 会让 Web 整页不可用。

Q: 会话评审员(advisor)会干扰主 AI 吗?

A: 默认完全沉默(advisorEnabled=false)。开启后评审员只观察你界面上看到的对话文本(不含思考/工具调用),记入面板日志;仅当严重度达到 nit / concern / blocker 阈值、且配置允许时,才会以用户指令形式注入主会话触发即时纠偏——你可以在评审面板里即时打断或调整它。

上手难度

进阶 — 核心五轨记忆零配置即可生效,但插件聚合了十几个独立子模块并提供数十项配置项,想把「外部 AI 调度 / 跨设备同步 / 评审员 / 广播房间」这些高阶能力串成完整流水线需要读懂模块边界与开关依赖(参见 README 场景章节)。

已知问题与限制

  • spawn 出来的子会话在新会话无历史 header 时仅继承发起会话的 provider/model 配置;GUI 改模型等主动切换机制在 lib/session-orch.js:549 标注为后续再完善
  • 会话评审(advisor)通过 sessionTitle.get(session) 读取会话名称;离线/已归档会话 session.events 不存在时必须先做 agent?.session 存在性检查(lib/index.js:2104-2106),否则会因传 undefined 抛出 TypeError 导致评审流静默失败
  • 画板(canvas)遍历节点时同样依赖 sessionTitle.get;曾因缺失判空导致整个 GET 500、前端刷新后空板,已在 lib/index.js:2027-2042 加固
  • 会话搜索(sessionSearchEnabled)当前只支持 Codex 源(~/.codex/sessions + archived_sessions 明文 JSONL);DSH 会话(zstd 拼接帧)暂不实现
  • 仅同进程内的会话可被 de_session 程序化唤醒;跨实例 / 跨机器无法程序化唤醒(README-详细说明.md:52
  • dat 同步走的 git 仓库地址若使用公开项目仓库,记忆默认存到代码仓库的专属分支;需要把记忆与代码彻底隔离时,必须显式配置一个独立的共享记忆仓库

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/csyangwen/dsh-memory-evolve)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录