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

跨实例记忆 ShukebtAb/Dsh-Cross-Memory

DeepSeek 客户端
ShukebtAb31 天前有提交已提供中文文档扫描:含敏感能力兼容 / 相关生态

把共享硬约束注入每个实例的每轮上下文

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

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

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/ShukebtAb/Dsh-Cross-Memory.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
生态插件
可安装,未声明 dsh 能力
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 31 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/10/1) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-cross-memory(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/9 17:37:49

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

读写/删除本地文件
查看扫描证据(共 8 处,展示前 6 条)
  • 读取本地文件
    index.js:61
    st = statSync(RULES_PATH)
  • 读取本地文件
    index.js:70
    text = readFileSync(RULES_PATH, 'utf8')
  • 读取本地文件
    index.js:100
    st = statSync(NOMINATIONS_PATH)
  • 读取本地文件
    index.js:109
    text = readFileSync(NOMINATIONS_PATH, 'utf8')
  • 读取本地文件
    index.js:174
    currentText = readFileSync(memoryFile, 'utf8')
  • 读取本地文件
    index.js:212
    existing = readFileSync(archivePath, 'utf8')
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 跨实例硬约束注入
  • 全文注入不截断
  • 结构化写入工具

README

由 DeepSeek 最新模型翻译生成
dsh-cross-memory 这是 @a9i5k4/dsh-auto-memory 的增量插件(add-on),不是替代品。 它不改动 auto-memory 的任何代码或数据,只是在旁边追加一条「跨实例规则」注入通道,并提供一个符合其锚点契约的结构化写入工具。 把跨实例硬约束注入每一轮上下文:一份规则文件(cross/RULES.md),全部实例共同遵守。 另提供结构化写入工具 cross_memory_write_entry,把「写一条记忆条目」固化成一次带校验与基线的工具调用(见下文〈结构化写入〉章节)。 它解决什么 多个 DSH 实例各自有独立记忆时,「哪些约束是所有实例都必须遵守的」没有统一来源。本插件从固定路径读取一份共享规则文件,把其中的条目注入每轮上下文——改一处,全部实例生效。 这个缺口是 auto-memory 自身的隔离设计带来的:auto-memory 的用户级记忆按实例隔离(userMemoryDir 指向各自 DSH_HOME),所以子实例看不到主实例积累的规则。本插件用固定绝对路径(不受 wsKey 与 userMemoryDir 影响)绕开这一点。 不用它行不行 行,但有代价。
展开完整文档(README 剩余 1 节)
dsh-cross-memory

这是 @a9i5k4/dsh-auto-memory 的增量插件(add-on),不是替代品。
它不改动 auto-memory 的任何代码或数据,只是在旁边追加一条「跨实例规则」注入通道,并提供一个符合其锚点契约的结构化写入工具。

把跨实例硬约束注入每一轮上下文:一份规则文件(cross/RULES.md),全部实例共同遵守。
另提供结构化写入工具 cross_memory_write_entry,把「写一条记忆条目」固化成一次带校验与基线的工具调用(见下文〈结构化写入〉章节)。

它解决什么

多个 DSH 实例各自有独立记忆时,「哪些约束是所有实例都必须遵守的」没有统一来源。本插件从固定路径读取一份共享规则文件,把其中的条目注入每轮上下文——改一处,全部实例生效。

这个缺口是 auto-memory 自身的隔离设计带来的:auto-memory 的用户级记忆按实例隔离(userMemoryDir 指向各自 DSH_HOME),所以子实例看不到主实例积累的规则。本插件用固定绝对路径(不受 wsKey 与 userMemoryDir 影响)绕开这一点。

不用它行不行

行,但有代价。把同样的条目写进各实例自己的用户级 MEMORY.md 时(以下数字按本机当前的 22 条实测):

| 承载方式 | 每轮成本 | 错解否定 |
| 本插件全文注入 | 3786 字符 | ✅ 完整保留 |
| 各实例写进 MEMORY.md | 4444 字符(22 条 × 202) | ❌ 被 200 字符渲染截断砍掉 |
| SKILL.md 按需加载 | 0 | ✅ 完整,但不带「必读」属性 |

规则段每条只渲染「首条实质行前 200 字符 + …」(auto-memory 的 rules-layer.js),所以长条目写进 MEMORY.md 注定被砍。要完整保留错解否定,只能走插件注入。比值约 0.85×。

规则文件格式

路径固定为 ~/.dsh/memory/cross/RULES.md(故意硬编码为共享位置):

…头部说明(不注入)…

- 【必须遵守】第一条……
- 【禁止】第二条……

| 约定 | 规则 |
| 生效区间 | 仅 cross:begin 与 cross:end 之间;头部说明不注入 |
| 行格式 | 以 - 开头即一条;不设标记词白名单(白名单只会成为静默丢弃的来源) |
| 单条长度 | ≤260 字符(含 - 前缀)全文注入、不截断。本机仅第 9 条为 265 字符——因须保留完整报错串作错解否定,是规则文件头部明确记载的唯一例外 |
| 编码 | UTF-8 无 BOM、LF |

安装

从 GitHub(推荐,锁定 commit 可复现)
dsh plugin --profile web add github:ShukebtAb/Dsh-Cross-Memory#<commit>

本地开发期
dsh plugin --profile web add file:D:\Study\Product\dsh-cross-memory

安装后须确认两处:dependencies 里出现该包、dsh.profile.bundles 里也列出它。少了后一步不会生效。

⚠ inject 开关:每个实例必须显式声明

插件不会猜自己是不是主实例。内容指纹去重已实测不可行——RULES.md 是重写版而非摘抄版(措辞、语序、markdown 标记都动过),条目里最多只有少数能与用户级 MEMORY.md 的前 60 字符对上(实测:原方案 0/21,剥前缀后最好 5/21);按路径判断又会随迁移失效。

所以在该实例 profile 的 cordis.patch.yml 里显式声明:

- id: cross-memory
name: 'dsh-cross-memory'
config:
inject: true # 子实例:注入全部跨实例规则

| 实例角色 | 配置 | 效果 |
| 主实例(规则段本就是真源) | inject: false(缺省) | 不注入;仅获得 cross_memory_status 工具 |
| 特化子实例 | inject: true | 注入全部条目 |

为什么主实例也建议装:为了 cross_memory_status 工具——见下节。

工具:cross_memory_status

输出 JSON(示例为某次实跑结果):

{
"rulesPath": "C:\\Users\\Administrator\\.dsh\\memory\\cross\\RULES.md",
"ok": true,
"sha256": "5fe49f620d644261dc699f3512f0cb37c49d89d2641e4dea2980e2b9f24529d2",
"bytes": 8967,
"mtimeMs": 1758…, "itemsParsed": 22, "injectEnabled": false, "itemsInjected": 0 }

用途:RULES.md 目前没有任何写保护(IsReadOnly = False,DSH 本体的 write/edit/pwsh 都能直接覆写,唯一护栏是「不在工作区内」的路径隔离)。主实例可定期比对该 sha256,发现被误写即告警——这是「位置隔离 + SHA256 校验」加固方案中校验那一半的落地手段。

结构化写入:cross_memory_write_entry(0.2.0 新增)

把「手工编辑记忆条目」这件事固化成一次工具调用。手工编辑最容易踩的坑,这里都用机制挡住。

| 参数 | 类型 | 说明 |
| memoryFile | string | 目标工作区 MEMORY.md 的绝对路径(必填) |
| title | string | 条目标题(不带 # 前缀,必填) |
| indexLine | string | 条目索引行;注入面只取它的前 200 字符,须自包含结论(必填) |
| body | string | 超长正文;给了就外移到档案,此时 indexLine 内必须含该档案的短路径指针 |
| archivePath | string | 档案绝对路径;body 非空时必填 |
| apply | boolean | false(缺省)= 只预演;true = 真正落盘 |

三条硬契约

1. 不生成尾随空锚点。 auto-memory 的 parseAnchors → finalizeAnchored() 在锚点之后到下一锚点之间找不到任何非空行时判 orphan-anchor ⇒ 该文件此后永久整篇 fail-closed 拒写。本工具一律不生成。反过来,手工 edit 时「末尾追加锚点 + 条目 + 尾随空锚点」会让文件永久拒写 —— 这是本工具存在的主要理由。
2. 索引行 ≤200 字符。 超出即拒,回执给实际长度(形如 index-line-too-long:213>200)。正文外移时,档案短路径指针必须落在索引行内,否则条目外移后不可达。
3. 写前留基线、写后给结构指标。 落盘前强制生成 <memoryFile>.pre-write-<stamp>;回执给 before / after 的 chars / bytes / lines / anchors / duplicateAnchors / reservedSyntaxHits。

用法(预演 → 落盘)

先调一次看结构指标(apply 缺省即预演,零风险):

cross_memory_write_entry(
memoryFile = '<工作区绝对路径>\\MEMORY.md',
title = '实例盘点判据与静默漏报坑(2026-10-01 实测)',
indexLine = '结论:……见 handoff/archive-inject盘点.md',
body = '<超长正文>',
archivePath = '<工作区绝对路径>\\handoff\\archive-inject盘点.md'
) // → ok:true / dryRun:true,anchors 10 → 11

确认无 duplicateAnchors、无 reservedSyntaxHits 之后,加 apply = true 落盘,回执会多出 baselinePath 与 archivePath。

为什么不用 memory_note(append) 手写条目:它不带锚点,会被并入最后一条 entry,只渲染该条首行 ⇒ 静默不进注入面,还实占容量。这是本工具存在的第二个理由。

行为细节

- 注入通道:systemPrompt.context()(user-role,追加在历史尾部)——不击穿 DeepSeek 前缀缓存;section() 只用于字节级稳定的静态内容,本插件不用。
- 与 auto-memory 的注入顺序:本插件 order: 10001,auto-memory 用 SECTION_ORDER = 10000 ⇒ 本插件的段落排在其后。
- 缓存:按 mtimeMs 缓存,文件未变不重复读盘。
- 失败姿态:文件缺失、读失败、锚点缺失一律静默返回空串(不注入、不报错、不影响会话)。
- 不截断:注入正文原样输出,RULES.md 的错解否定是刻意保留的设计。
- 锚点匹配用完整注释串:以 indexOf('') 定位,而非裸的 cross:begin——因为头部说明的正文里会字面出现 cross:begin / cross:end 这两个词,裸串匹配会误报。

致谢 / 相关项目

本插件是 @a9i5k4/dsh-auto-memory 的增量插件。

| 项 | 值 |
| 名称 | @a9i5k4/dsh-auto-memory |
| 仓库 | https://github.com/Aik358/dsh-auto-memory |
| 参考版本 | 3.1.7 |
| 许可 | BSD-3-Clause |
| 简介(原文) | Proactive associative memory for DSH: zero-prompt recall injected before the model speaks, three-layer auto-consolidation, skill crystallization, and Astra-style context management - handoff ledgers, PLAN whiteboard, water-level sensing. Local-first, model-agnostic, zero deps. 主动联想记忆+Astra 式上下文管理:自动唤回/自动沉淀/技能固化/交接账本与白板跨窗口续命/水位感知。 |

两者关系说明:

- 它做什么:DSH 的记忆系统本体——主动联想记忆、三层自动沉淀、技能固化、交接账本与 PLAN 白板、水位感知。
- 本插件补什么:它按实例隔离用户级记忆(userMemoryDir),因而「所有实例都必须遵守的约束」缺少统一来源;本插件用固定共享路径 + 独立注入通道补上这一点。
- 互不调用:本插件不 import 它的代码、不读写它的数据文件、不依赖它的运行状态;auto-memory 未安装时本插件照常工作(只是不再有那个缺口需要补)。
- 契约借用:本插件沿用了它的两条工程约定作为设计参考——「注入走 systemPrompt.context() 而非 section()」,以及「注入段用 order 排序」。这些是 DSH 平台的机制,非 auto-memory 私有 API。

许可

MIT
预览分享卡片长什么样 ↓ShukebtAb/Dsh-Cross-Memory
分享 · DeepSeek Harness Hub
ShukebtAb/Dsh-Cross-Memory

把共享硬约束注入每个实例的每轮上下文

回到顶部