把当前会话状态一键导出为 Markdown 交接文档
27.6/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add ZhijiangTang/dsh-handoff该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · chat
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 79 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 4 处,展示前 4 条)
- 读取本地文件index.js:384
exists = existsSync(absPath) - 写入本地文件index.js:436
await writeFile(absPath, markdown, { encoding: 'utf8', flag: args.overwrite ? 'w' : 'wx' }) - 读取本地文件index.js:473
const content = await readFile(absPath, 'utf8') - 删除本地文件index.js:490
await rm(absPath, { force: true }).catch(() => {})
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-tools@deepseek-ai/dsh-llm给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 导出会话为交接文档
DSH 插件:把当前会话导出为确定性的 Markdown 交接文档
README
由 DeepSeek 最新模型翻译生成dsh-handoff
DSH 插件:会话交接一键导出。把当前会话的目标、已完成/未完成、关键文件与统计,导出为一份确定性的 Markdown 交接文档。纯 ESM、零依赖、无构建。
简介
handoff 工具从 exec.agent.session 的会话事件流中收集事实,不调用任何 LLM,直接生成确定性的 HANDOFF.md(或你指定的路径),适合在会话结束 / 切换上下文 / 交给接手者时,快速产出一份可读的交接材料。
- 确定性导出,不调模型,零成本:所有内容来自会话事件流(用户消息、工具调用、工具结果、todo、goal/change、token 统计),不做模型推断、不读时钟、不用随机数,同样输入必然得到同样输出。
- 与记忆插件的区别:这是一次性交接文档,而不是持久记忆库——它把「此刻」的会话状态冻结成一份文件,供人(或下一会话)阅读;记忆插件则是持续累积、随会话演进的状态。
展开完整文档(README 剩余 1 节)
dsh-handoff
DSH 插件:会话交接一键导出。把当前会话的目标、已完成/未完成、关键文件与统计,导出为一份确定性的 Markdown 交接文档。纯 ESM、零依赖、无构建。
简介
handoff 工具从 exec.agent.session 的会话事件流中收集事实,不调用任何 LLM,直接生成确定性的 HANDOFF.md(或你指定的路径),适合在会话结束 / 切换上下文 / 交给接手者时,快速产出一份可读的交接材料。
- 确定性导出,不调模型,零成本:所有内容来自会话事件流(用户消息、工具调用、工具结果、todo、goal/change、token 统计),不做模型推断、不读时钟、不用随机数,同样输入必然得到同样输出。
- 与记忆插件的区别:这是一次性交接文档,而不是持久记忆库——它把「此刻」的会话状态冻结成一份文件,供人(或下一会话)阅读;记忆插件则是持续累积、随会话演进的状态。
安装
dsh plugin --profile add file:./plugins/dsh-handoff
或发布到 npm 后:
dsh plugin --profile add dsh-handoff
参数
| 参数 | 类型 | 必填 | 默认 | 说明 |
| dest | string | 否 | HANDOFF.md | 导出文件路径(相对工作区根) |
| overwrite | boolean | 否 | false | dest 已存在时是否覆盖;false 且已存在则返回规范错误值 |
输出(规范值)
- 成功:{ ok: true, path, sections, eventCount, chars, skipped, note }
- sections:生成的章节标题列表(会话交接 / 目标 / 已完成 / 未完成 / 下一步建议 / 关键文件 / 会话统计)
- eventCount:遍历的会话事件数;chars:写入字符数
- skipped:事件流不可用 / 无法适配时为 true,note 说明降级原因
- 失败:{ ok: false, error },error 为字符串(越界 / 已存在 / 写入失败)。所有失败都走规范值,不抛异常。
生成内容
- # 会话交接:会话 id + 首末事件时间范围
- ## 目标:最近 3 条直接用户消息(各截 200 字)+ 最新 goal/change 目标状态
- ## 已完成:文件写入/编辑清单、git 提交、成功工具结果计数
- ## 未完成:isError 的工具、todo 中 pending/in_progress 项
- ## 下一步建议:留空模板
- ## 关键文件:出现过的路径去重前 15
- ## 会话统计:事件/消息/工具/token/goal 计数
降级行为
事件结构存在不确定性,handoff 先做 typeof 探测(session.events 是否为数组、事件是否带 type 字段):
- 探测失败(如自检 / 无会话环境下 exec.agent 为空,或 events 非数组、事件缺 type)→ 返回 ok: true 且 skipped: true,只写出模板骨架 + 降级说明,绝不抛错。
- 探测通过但个别事件结构异常 → 跳过该条事件,其余照常收集。
安全
- 路径围栏:resolve(dest) 必须位于工作区根(exec.agent.session.header.cwd ?? process.cwd())之内,否则返回 { ok: false, error: 'dest 越出工作区' }。
- 挂载时自检:走真实执行管道调用 handoff(唯一临时名)→ 断言 ok: true、文件存在、含 # 会话交接 标题 → 打印证据 → 删除临时文件。
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
ZhijiangTang/dsh-handoff
把当前会话状态一键导出为 Markdown 交接文档
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,489已汉化DSH
73.1
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,918已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,453已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
Download DS Bot for Windows 10/11 64-bit / 下载 Windows…
★ 5,293已汉化DSH
71.2
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,797已汉化DSH
71.1
这是你的仓库?认领条目