dsh-session-handoff

DSH PLUGIN记忆与知识

仓库 jonah791/dsh-session-handoff

记忆与知识 L4 · 沙盒安装通过 安全审查:低风险 可信度:银 可安装插件
安装这个插件

DSH 插件生态公约声明(plugin-ecosystem-convention · 组合优先/声明清晰/兼容优先)

一句话选型结论

按资料字段整理

dsh-session-handoff 是记忆与知识类的 DSH 可安装插件,验证等级 L4 · 沙盒安装通过,安全审查为低风险,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类记忆与知识 收录类型可安装插件 验证等级L4 · 沙盒安装通过 安全审查低风险
验证等级 L4 L4 · 沙盒安装通过
GitHub 星标 0 复刻 未标注 · 未关闭 issue 未标注
最近更新 2026-10-15 创建于 未标注
README 6.7 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:jonah791/dsh-session-handoff
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

记忆与知识
字段来自项目仓库与公开索引,中文说明由本站标注

适用场景

记忆

验证等级与安全审查

L4 · 沙盒安装通过
自动化流程结论,不是人工审核
验证等级L4 · 沙盒安装通过安装命令在隔离沙盒内真实执行成功,无依赖错误
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度银综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L4:在沙盒里真实装过,依赖能装上,不是纸面声明。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在记忆与知识场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-session-handoff当前 L4 · 沙盒安装通过 低风险 0 未标注 有
ruflo L3 · 安装规范通过 低风险 7.4 万 未标注 无
OpenViking L3 · 安装规范通过 低风险 3.9 万 未标注 无
WeKnora L4 · 沙盒安装通过 低风险 3.3 万 未标注 有
distilly L4 · 沙盒安装通过 低风险 2.5 万 未标注 有
EverOS L4 · 沙盒安装通过 低风险 1.3 万 未标注 有

仓库档案

记忆与知识
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方jonah791仓库 dsh-session-handoff · 默认分支 未标注
分类记忆与知识memory
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言未标注仓库主语言
许可证NOASSERTION商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 未标注 / 未标注收录时的数值,非实时
创建 / 更新未标注 · 2026-10-15最后推送 未标注
本站收录2026-10-30首次进入本站目录的时间

README 全文

6.7 KB
作者原文,中文版优先;只做安全转义,不改内容

<!--
DSH 插件生态公约声明(plugin-ecosystem-convention · 组合优先/声明清晰/兼容优先)
purpose: 会话自动衔接:新建会话时自动把上一场会话的尾部对话注入为交接材料(per-session 动态上下文,仅在存在新鲜对话时注入)
inject: ['systemPrompt', 'sessionQuery']
tools: (无工具 —— 纯行为插件)
runtime: host-only
envDeps: 见 README「配置」节
boundary: 见 README「设计要点」与「生效判据与回退」节
compat: cordis ^4.0.1 / dsh-tools >=0.1.0-rc.6
-->

dsh-session-handoff

会话自动衔接:新建会话时,自动把「上一场会话」的尾部对话注入为一段交接材料,使新会话不必从头解释上下文。

快速开始

1) 装依赖(在目标 profile 的 package.json 加 link 依赖):

&quot;dsh-session-handoff&quot;: &quot;link:E:/alice/self-plugins/dsh-session-handoff&quot;

2) 挂组合:

- id: dsh-session-handoff
name: dsh-session-handoff

3) 30 秒验证:新建会话 → 首轮上下文里应出现上一场的尾部对话(仅在存在新鲜对话时注入)

解决的问题

一场会话卡住/中断/上下文过载后,新开一场就丢失了「刚在做什么、卡在哪、下一步是什么」。手工复述既费时又容易漏。本插件把这件事变成自动的、可核查的一行注入。

它做什么

  • 监听 session/created({ global: true }),只对真正的新会话生效:子代理会话、fork 子会话、重启时恢复的历史会话一律跳过。
  • 取该会话的 scope key(carrierKeyOf(this)——事件的 this 是 routing-only 载体,没有 Context API),找到同工作目录、窗口内最近的一场有真实对话的会话。
  • 摘录它尾部的若干条 user/assistant 文本(不调模型、不做摘要生成,成本为 0 且可复现),渲染成一段交接块。
  • 交接块经 systemPrompt.context 落为动态上下文快照:全局注册一次,text 按本次装配的 AssembleContext.scope 查表返回——未命中的会话拿到空串,而「空文本不贡献任何内容」是 PromptContext 的既定语义 ⇒ 只影响被衔接的那一场会话。

交接块首行显式声明它是历史材料、不是新指令——衔接内容来自上一场会话,绝不能变成可执行的命令。

它不做什么

不做 归属
fork(全量继承历史) sessions.fork
生成式摘要(调模型压缩) 模型侧 or 人工
改系统提示词 / 工具面 section / 工具注册
跨会话记忆 dsh-agent-memory

配置

字段 默认 说明
enabled true 总开关
maxAgeMinutes 720 新鲜度窗口:上一场会话最后活动早于此则不衔接
maxChars 3000 交接块字符预算
messageChars 400 单条消息字符上限
maxMessages 8 最多引用多少条消息
sameWorkspaceOnly true 只衔接同一工作目录的会话
maxCandidates 3 最多向前探查几个候选(每个都要读日志,故设上限)
order 850 动态上下文排序位

观测(机制自证)

每次注入/跳过/出错都落一行侧车:

tail -f &quot;$DSH_HOME/session-handoff-trace.jsonl&quot;

stage 取值:injected(注入成功,带来源会话/字符数/消息数)、skip(无合格对话)、filtered(被判据跳过,带 reason)、error / candidate-error(读日志失败)。

判据(可证伪):开一场新会话后,该文件应出现一行 &quot;stage&quot;:&quot;injected&quot;,且其中的 session 等于新会话 id;未产生注入时会看到 filtered/skip 并附原因——不会静默什么都不写。

已知边界

  • 不作为的注入:交接文本进入模型历史(动态上下文快照默认进历史),因此只摘录 user/assistant 文本,不摘录工具结果与文件内容。
  • 只认「最近一场」:不跨多场会话合并,不猜测话题相关性;判据是时间 + 工作目录,不含语义相似度。
  • 读日志有成本:候选逐个 observeSession(读完整事件流)。maxCandidates 就是这个成本的闸门;projectionMode: &#x27;none&#x27; 已关闭投影计算。
  • sessionQuery 是硬依赖:写在 inject 里(不是 ctx.get() 探测)。用探测会与加载顺序赛跑,失败时插件静默变成空转(实测:装了、mounted、却零轨迹)。
  • 「新会话」按内容判,不按创建时间判:判据是该会话自身还没有真实对话(见下「实践修订记录」)。

测试

pnpm build &amp;&amp; pnpm test   # 10 个用例,含 4 条尸体样本(子代理/fork/过期/无对话/异目录/自身)

纯决策层(src/handoff.ts)与 IO 壳层(src/index.ts)分层:判据与渲染可离线验证,壳层只做搬运。

实践修订记录

两处判据都是被真实运行打回来才改对的,留档以免重犯:

  1. 2026-09-30 · ctx.get(&#x27;sessionQuery&#x27;) 探测 → 静态 inject
    首版用 ctx.get() 探测服务,探测失败就打一条 warn 后返回。结果:插件 mounted、built: true、进程也重启了,却零轨迹——外部完全看不出「没加载」与「加载了但空转」的区别。改为 inject = [&#x27;systemPrompt&#x27;, &#x27;sessionQuery&#x27;] 声明式依赖,并加一行启动自报 stage: &#x27;ready&#x27;。教训:机制必须自证,否则「装了」和「在工作」在观测上是同一张脸。

  2. 2026-09-30 · 按 createdAt 判「新会话」 → 按「自身有无真实对话」判
    首版用「创建时间在 N 分钟内」识别新会话。实测:GUI 点「新会话」复用的是既有空白会话的 id(21:28 建的空会话,22:05 点「新会话」时仍用它),于是被误判为「恢复的老会话」而拒绝注入(轨迹里留下 &quot;reason&quot;:&quot;not-new&quot;)。改为内容判据:extractMessages(session.snapshotEvents()).length === 0 才算新会话。判据要贴语义(「还没有对话」),不要贴代理量(「创建时间新」)。

相关文档

  • ⚠ 本插件暂无 semantic.md(未建语义文档)——契约以 README 各节与源码为准;补文档是待办。
  • 中心仓:alice-digital-life

常见问题

5 问
答案由本站依据条目字段整理,不引用上游原文
dsh-session-handoff 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:jonah791/dsh-session-handoff` 即可。

dsh-session-handoff 的验证等级是什么意思?

L4 · 沙盒安装通过。安装命令在隔离沙盒内真实执行成功,无依赖错误

dsh-session-handoff 安全吗?

低风险。

dsh-session-handoff 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-session-handoff 用的是什么许可证?

上游标注为 NOASSERTION。商用或二次分发前请到仓库确认许可证原文。

同名或近似条目

8 条
不同作者的仓库分开列,请确认你要装的是哪一个
记忆与知识
按星标排序,可作替代方案

ruflo

ruflo

L3 · 安装规范通过 7.4 万 星

OpenViking

OpenViking

面向 DeepSeek Harness 的 OpenViking 记忆与上下文插件:pre-step 自动召回与画像注入、会话捕获、`vik

L3 · 安装规范通过 3.9 万 星

WeKnora

WeKnora

把 WeKnora 知识库接入 dsh 的四个只读工具:列出知识库、混合检索原文片段、按顺序还原单篇文档,以及直接取用 WeKnora 自己

L4 · 沙盒安装通过 3.3 万 星

distilly

distilly

Distilly — Distill how they think into reusable Skills for any Agent o

L4 · 沙盒安装通过 2.5 万 星

EverOS

EverOS

L4 · 沙盒安装通过 1.3 万 星

MemOS

MemOS

L4 · 沙盒安装通过 1.2 万 星

jonah791 的其它插件

6 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 —。