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

对话回退压缩 shayanrc/dsh-rewind-compact

DeepSeek Harness
shayanrc18 天前有提交已提供中文文档扫描:含敏感能力

把对话回退到回合边界,并将一侧压成摘要

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add shayanrc/dsh-rewind-compact
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
dsh 原生插件 · chat
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 18 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

读写/删除本地文件
查看扫描证据(共 1 处,展示前 1 条)
  • 读取本地文件
    lib/index.js:36
    const SKILL_BODY = readFileSync(new URL('../skill/rewind-compact/SKILL.md', import.meta.url), 'utf8')
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

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

DeepSeek Harness 的回退压缩插件包:把对话回退到已完成轮次边界,再把一侧压缩成混合摘要。

README

由 DeepSeek 最新模型翻译生成
dsh-rewind-compact DeepSeek Harness(dsh)的插件包:把对话回退到某个已完成的回合边界,再把边界一侧压缩成混合摘要(脚手架 + LLM 叙述)。另一侧原样保留。回退前的会话始终可以按 id 恢复——被丢弃的一侧永远不会丢失。 入口 - TUI 交互式选择器——原生 Esc-Esc 回退浮层新增两种确认面板模式:Rewind + compact after / Rewind + compact before(描述里带文件变更警告)。需要 session.rewind.intercept 授权(默认拒绝)。 - TUI 命令 /rewind-compact [turn] [after|before]——快捷路径;不带参数则指向选择器。 - 模型调用的工具 rewind_compact(point, mode, rewind)——压缩不受限;回退需要用户批准(无头环境下失败即关闭)。 - 技能 rewind-compact——何时提议、工具规则、摘要格式、分叉后的礼仪。 安装 dsh plugin --profile <name> add <path-to-this-repo> (或者用配置档所用的等效 pnpm 方式;见 dsh plugin --help。
展开完整文档(README 剩余 1 节)
dsh-rewind-compact

DeepSeek Harness(dsh)的插件包:把对话回退到某个已完成的回合边界,再把边界一侧压缩成混合摘要(脚手架 + LLM 叙述)。另一侧原样保留。回退前的会话始终可以按 id 恢复——被丢弃的一侧永远不会丢失。

入口

- TUI 交互式选择器——原生 Esc-Esc 回退浮层新增两种确认面板模式:Rewind + compact after / Rewind + compact before(描述里带文件变更警告)。需要 session.rewind.intercept 授权(默认拒绝)。
- TUI 命令 /rewind-compact [turn] [after|before]——快捷路径;不带参数则指向选择器。
- 模型调用的工具 rewind_compact(point, mode, rewind)——压缩不受限;回退需要用户批准(无头环境下失败即关闭)。
- 技能 rewind-compact——何时提议、工具规则、摘要格式、分叉后的礼仪。

安装

dsh plugin --profile <name> add <path-to-this-repo>

(或者用配置档所用的等效 pnpm 方式;见 dsh plugin --help。)

入口及其生效范围

| 入口 | 生效范围 |
| Esc-Esc 回退选择器模式 | TUI 配置档(决策事件接缝 tui/rewind-prompt / tui/rewind-done;需要 session.rewind.intercept 授权——见 TESTING.md) |
| /rewind-compact 命令 | TUI 配置档(harness 命令接缝,组合进每个人类命令适配器) |
| rewind_compact 工具 | 每个加载该插件包的配置档(模型调用) |
| rewind-compact 技能 | 每个加载该插件包的配置档(模型调用) |

无头/sdk:工具的压缩路径不受限即可工作;回退路径失败即关闭(目标回合轮次中没有直接的人类输入)。

v1 限制

- 不回退文件:插件会报告边界之后哪些文件发生了变更,但从不恢复它们(推迟到 v2)。
- 没有压缩服务的配置档:原地压缩路径是空操作,报告 applied: false 并附 note(分叉路径仍会摘要,仅脚手架)。
- 无头/sdk 下回退的批准失败即关闭。
- 分叉会话标题 <original> (rewound) 作为创建选项传入;智能体工厂忽略它的构建会保留默认标题(已记录日志)。
- 分叉出的子会话存储在 _no-cwd 会话桶下,而不是源会话的工作区桶(TUI 会在单独一步把分叉挂到工作区,本插件包尚未调用该步骤);子会话完整且可恢复,只是在侧边栏中未分组。
- 已在真实浏览器中对 web 配置档完成端到端验证:scripts/e2e-web-test.py(见 TESTING.md)——新会话 → 两个回合 → /rewind-compact → 回答两个对话框 → 完成消息,并在磁盘上检查子日志,确认种子历史加上五字段脚手架。

使用的 Harness 接缝

- Compaction — ctx.compaction.compactRegion(start, end, agent, signal)(CompactionEngine 契约,dsh-compaction-basic)。它的签名不接受 instructions 参数,所以五字段脚手架是作为被压缩范围内的最后一条消息投递的:摘要器(summarizeWithLlm)会追加自己的指令并压缩该范围,把脚手架中的事实保留进正文(混合摘要,R5)。对于 fork,范围压缩在播种后的子会话上运行——回退前的会话永远不会被追加或截断。兜底方案:子侧压缩不可用时,只发脚手架摘要消息。
- Rewind/fork — TUI 的 fork-at-boundary 配方(@deepseek-harness-tui/dsh-tui/lib/types/dsh-adapter/channel/session-rewind.js):取消智能体 → 等待 turn/end → settleCompaction → 回溯到外层 turn/start,在 turnStart.seq - 1 处切分 → agents.create({sessionId: SessionId(randomUUID()), seed, inheritedCount, parentSession, setup: clear inbox + compact discarded side in the child})。绝不用 sessions.fork();绝不改动回退前的会话。
- 工具注册 — ctx.tools.register(defineTool({name, description, parameters, output: {schema, render}, execute, presentCall})),defineTool 来自 @deepseek-ai/dsh-tools,参数规格用 schemastery,逐属性参数映射(dsh-tool-goal 方言)。
- 命令注册 — ctx.commands.register({name: 'rewind-compact', description, handler});handler 接收 {rawInput, agent, signal, commandId},返回 {kind, text}(dsh-command-compact 的形态;适配器负责渲染开头的斜杠)。
- 技能注册 — ctx.skills.register({name, description, invocation: {modelInvocable, userInvocable}, path})(dsh-skill 运行时接缝;名称需符合 SKILL_NAME,description 不能为空)。
- TUI 选择器接缝 — 决策事件走普通 ctx.on:tui/rewind-prompt(应答:{modes: [{id, label, description}]}——渲染在确认面板的选项列表里)和 tui/rewind-done(fork 后的载荷携带 mode、boundarySeq、sourceSessionId、childSessionId;bundle 在子会话中重放并压缩被丢弃的一侧,返回 toast 字符串)。订阅受 D-7 门控,依赖 session.rewind.intercept 授权(默认拒绝——被拒的订阅是带警告的空操作;授权方式见 TESTING.md)。
- Rewind 门控 — 直接人类权威检查(打开的 turn 内由用户发起的 user/message,通过 ctx.sessionProjections.stateOf(agent.session, 'turnBoundary')),与 dsh-tool-goal 的 requireDirectHuman 是同一种权威模式。
- 错误 — 来自 @deepseek-ai/dsh-llm 的类型化 HarnessError(message, code)。

Layout

- package.json — bundle manifest
- cordis.patch.yml — patch layer
- lib/ — implementation (index.js entry; events.js accessors; scaffold.js, seed.js, rewind.js, tool.js, command.js, tui-rewind.js, errors.js)
- tests/ — node:test unit tests (scaffold, seed envelopes)
- skill/rewind-compact/SKILL.md — 技能本体
- SPEC.md — 已批准的规格说明

许可证

LGPL-3.0-or-later — 见 LICENSE。LGPL 以引用方式并入 GNU GPL v3;其正文随附于 COPYING。
预览分享卡片长什么样 ↓shayanrc/dsh-rewind-compact
分享 · DeepSeek Harness Hub
shayanrc/dsh-rewind-compact

把对话回退到回合边界,并将一侧压成摘要

这是你的仓库?认领条目

回到顶部