dsh-context-summarizer

DSH PLUGIN记忆与知识

仓库 Sun-0306/dsh-context-summarizer

记忆与知识 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

One-click context summarization from the DSH sidebar: compress a long conversation into a durable summary and free up context. · 在 DSH 左侧栏一键归纳上下文,把过长的对话压成一段摘要并释放上下文占用。

一句话选型结论

按资料字段整理

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

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

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:Sun-0306/dsh-context-summarizer#v0.2.0
  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 查看包信息

能做什么

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

适用场景

记忆

上游标签

deepseekdshdsh-plugin

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

选择建议

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

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

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

更适合

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

不太适合

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

同类对比

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

仓库档案

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

README 全文

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

dsh-context-summarizer · 上下文归纳

DeepSeek Harness (DSH) 插件:把过长的对话一键归纳成一段摘要,释放上下文窗口,然后继续聊。
两个入口:对话框输入框左侧的圆形按钮(最快)和左侧栏的「上下文归纳」页面。
适用于会话越来越长、回复变慢、上下文快满、或模型开始「忘记」早前约定的场景。

> 英文名:Context Summarizer · 按包名 dsh-context-summarizer 安装。

入口与界面

位置 形态
对话框工具行左侧(+ 按钮旁,输入框内) 圆形「归纳」按钮:一次点击直接归纳当前会话
输入框下方(状态条,与上下文计量同一行) 运行中 / 完成 / 无历史 / 失败 的即时反馈,可重试或关闭
左侧栏全局面板列表(与「插件」「定时任务」「上下文洞察」同级) 上下文归纳 页面入口:占用条、一键按钮、结果与摘要详情

对话框内的一键入口(最快)

打开任意会话,输入框左下角(+ 旁边)有一个圆形图标:

  1. 点击它 → 立即对当前会话执行一次归纳;按钮变成旋转状态,输入框下方出现「正在归纳上下文…」。
  2. 完成后状态条显示:归纳完成 · N 条历史 · 释放 ≈X tokens,约 14 秒后自动收起(可手动关闭)。
  3. 失败时状态条显示原因和重试;会话正在跑时会先禁用,等这一轮结束即可。

归纳过程由当前模型生成摘要,通常十几秒;状态条不挡住聊天,完成后摘要作为会话记录里的
一条「已归纳」出现在对话中,可以继续正常聊天。

左侧栏的归纳页面

左侧栏点「上下文归纳」进入整页视图:

  • 当前上下文占用:≈已用 / 窗口大小 · 百分比,占用偏高时进度条转为警示色;
  • 一键归纳上下文:完成后显示 归纳条目 / 释放的 tokens / 归纳后占用 + 摘要全文,可「回到对话」;
  • 运行中的会话按钮禁用;没有打开会话时显示空状态。

> 归纳是持久化写入会话日志,不能撤销(与内置 /compact 相同语义);需要会话空闲时执行。

它到底做了什么

归纳复用的是 DSH 自带的手动压缩能力(/compact 命令背后的同一操作):压缩较早的一段
历史 → 由当前会话模型写成摘要 → 摘要作为新节点写入会话日志、旧节点归档保留 → 上下文释放。

当前 Web/Desktop 组合里有一个容易踩的坑:dsh-web-app 会在 Host 根上禁用
compaction-basic / command-compact,把它们移进每个 Agent preset 的隔离分组。所以插件
不能只查 ctx.compaction(那会是 undefined),而是按下面的顺序解析当前 Agent 的能力:

  1. 该 Agent 的 /compact 命令 —— 它拥有 preset 内的压缩后端,并会留下人类命令的生命周期
    记录(对话里因此显示「手动归纳」行);结构化结果从它写入的 compaction/summary 日志事件中读取;
  2. agentPresets.serviceFor(agent, 'compaction') —— preset 隔离域内压缩服务的正式读取入口;
  3. agent.ctx.get('compaction') —— 同一隔离域的直达查找;
  4. ctx.get('compaction') —— SDK/headless 等根上挂载的组合。

所以「一键」在这些组合下都能工作,也始终和 /compact 是同一个持久化操作。

安装

在本机工作区构建目录后,用插件管理器安装(写入当前 DSH profile,所有会话生效):

plugin_manager install_bundle  target = <本目录的绝对路径>

或在 Web GUI 的 插件 → 添加插件 中选择本地目录。安装后刷新页面:

  • 输入框左下角出现圆形「归纳」按钮;
  • 左侧栏出现「上下文归纳」入口。

要求:Host 提供 webServer、agents、tokenMeter,并具备以下之一:Agent preset 隔离域内
的 compaction、根上挂载的 compaction、或可用的 /compact 命令(标准 DSH Web/Desktop
组合均满足第一种)。缺能力时按钮仍然显示,点击后用状态条说明原因。

工作原理与安全边界

  • Host 半(index.js)注册 /dsh-ctx-summary 前缀路由:
  • POST /dsh-ctx-summary/api/usage:返回当前会话的上下文计量;
  • POST /dsh-ctx-summary/api/compact:执行手动归纳,返回释放量、摘要与前后占用。
    路由只接受本机页面:每次进程启动生成随机令牌、通过 index 注入页面,校验令牌、
    Origin/Host(仅 loopback)与 Sec-Fetch-Site;同一会话同时只允许一个归纳。
  • Client 半(client.js)只通过标准插槽扩展:conversation.input.left(输入框按钮)、
    conversation.composer.dock(状态条)、sidebar.panellist(左侧栏入口)与 main
    (归纳页面)。不读别的插件 DOM、不替换应用根、样式只用 --dsw-alias-* 主题变量,
    深浅色与窄屏都已适配。
  • 归纳是用户操作:Agent 正在跑一轮对话时不空闲,Host 会拒绝;因此模型不能借它「给自己
    压缩上下文」,保持与 /compact 一致的权限语义。

接口契约(Host)

// POST /dsh-ctx-summary/api/usage  { "sessionId": "..." }
{ "ok": true, "sessionId": "...", "usage": {
"tokens": 132000, "surfaceTokens": 130000, "contextWindow": 1000000,
"ratio": 0.132, "provider": "deepseek-account", "model": "deepseek-flash" } }

// POST /dsh-ctx-summary/api/compact  { "sessionId": "..." }
{ "ok": true, "noop": false, "before": { "...usage..." }, "after": { "...usage..." },
"result": { "shadowedCount": 12, "shadowedTokens": 9800,
"summary": "…", "summarySeq": 321 } }

// 失败(HTTP 4xx/5xx,页面按 code 本地化并给出下一步)
{ "ok": false, "error": { "code": "busy", "message": "..." } }

失败码:unauthorized / forbidden / bad-request / not-found / method-not-allowed /
session-not-live / unsupported / busy / cancelled / changed / summary /
commit / persistence / timeout / internal。

常见问题

现象 原因与下一步
输入框旁没有圆形按钮 / 左侧栏没有入口 插件未加载或页面是旧版本:刷新页面;在「插件」页确认 dsh-context-summarizer 已启用
状态条提示「这个会话在主机上不活跃」 该会话还没在主机上打开:先在左侧栏点开它,再归纳
提示「归纳暂时不可用:有别的归纳正在进行,或者这一轮对话还没结束」 等这一轮回答结束/另一个归纳完成再试
提示「当前环境不支持手动归纳」 当前组合上找不到 preset 内/根上的 compaction,也没有 /compact 命令
点了后只看到「正在归纳…」很久 归纳要调用一次模型;超时上限 10 分钟,超时后状态条会给出可重试的错误
摘要内容不满意 归纳由内置压缩提示词生成;本次摘要已写入日志,不能撤销。重试一次会基于新的上下文再归纳

本地测试

无第三方依赖,Node ≥ 22:

node --check index.js
node --check client.js
node --test tests/*.test.mjs
  • tests/host.test.mjs:在假 Cordis 上下文上跑真实 apply(),覆盖令牌注入、鉴权、usage、
    归纳能力来源(/compact 命令优先、preset 服务 / Agent ctx / 根服务回退)、错误码映射、
    并发拒绝、卸载中止与日志事件解析。
  • tests/client.test.mjs:最小 React/Hook/槽位替身跑真实 apply() 与首渲染,覆盖四个插槽、
    输入框按钮(空闲/运行中)、状态条(隐藏/成功/失败+重试)、中英文字典键一致。

兼容性

面向 @deepseek-ai/dsh 0.2.1 客户端契约(四个插槽、标准 useSessions/useSessionStatus
钩子、sessionId 标准属性、ctx.locale、ctx.slots)与 Host agentPresets /
compaction / commands / tokenMeter / agents / webServer。任一可选能力缺失时按上面的
顺序降级并给出可读说明,不会让整页崩溃。

文件

文件 作用
package.json bundle 清单:dsh.bundle.patch + dsh.client(双半插件)
cordis.patch.yml 把插件行插入 profile
index.js Host 半:令牌注入、HTTP 路由、上下文计量、preset 归纳能力解析
client.js Client 半:输入框按钮、状态条、左侧栏入口、归纳页面
locale/{zh,en}.json 插件管理器中显示的标题与说明
icon.svg 原创图标(长历史折成一段摘要)
tests/ 本地测试

License

MIT

常见问题

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

在 DSH 里执行 `dsh plugin --profile web add github:Sun-0306/dsh-context-summarizer#v0.2.0` 即可。

dsh-context-summarizer 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-context-summarizer 安全吗?

低风险。

dsh-context-summarizer 装之前要先确认什么?

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

dsh-context-summarizer 用的是什么许可证?

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

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

记忆与知识
按星标排序,可作替代方案

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 万 星

Sun-0306 的其它插件

5 个

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