把共享硬约束注入每个实例的每轮上下文
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🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
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预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
ShukebtAb/Dsh-Cross-Memory
把共享硬约束注入每个实例的每轮上下文
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,462已汉化DSH
73
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,848已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,246已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
DS Bot 是一个基于 DeepSeek Harness简称 dsh的 bot 插件,插件将 dsh 改造为 bot…
★ 4,717已汉化DSH
71.1
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,711已汉化DSH
71.1