前言¶
DeepSeek Harness(以下简称 DSH)是 DeepSeek 开源的智能体运行时。官方仓库 deepseek-ai/deepseek-harness 把它概括成一句话:Everything is a Plugin——模型适配、工具、会话、权限,连网页界面都可以按 profile 组装。它目前仍处于开发者预览阶段,官方 README 写明会有破坏兼容的变更。
智能体跑长了之后,上下文窗口很少只装「你刚说的那几句」。系统提示、工具 schema、技能或插件注入、助手回复、工具返回,都会挤进同一段预算。对话开始变慢、变糊、突然被压缩时,终端里往往只剩一个总数,看不出是哪一块把窗口吃满的。
dsh-context 做的就是把这件事摊开:在 Web UI 里加一块上下文洞察面板,并提供 /context 命令,用来看当前窗口由什么构成、每一轮请求怎么涨、压缩和裁剪发生在哪一步。本文按社区插件目录页、GitHub 仓库 README / package.json、npm 包页面以及 DSH 官方仓库交叉核对后整理。
需要先说明:社区插件目录 deepseek-harness-plugin.com 是独立站点,用来检索带 dsh-plugin 话题的仓库,和 DeepSeek / 幻方没有官方从属关系,不能当成官方应用商店。
这是什么¶
dsh-context 是一款会话与消息类 DSH 插件,由 GitHub 用户 bowenliang123 维护,仓库地址是 bowenliang123/dsh-context。目录页的定位是「上下文洞察仪表盘:看清模型上下文窗口由什么构成、如何演化。」仓库 README 写得更具体:它提供 Context 页签和 /context 命令,用来理解上下文是怎么拼出来的、又是怎么演化的。
社区目录于 2026-08-15 收录该插件,分类为「会话与消息」,许可证为 Apache-2.0,主要语言是 TypeScript。npm 包名同样是 dsh-context,截至 2026-08-17 页面上的版本为 0.10.3。package.json 里把客户端平台标成 web,并注入 @deepseek-ai/dsh-client-ui-conversation 等 Web UI 依赖,因此它面向的是 dsh web 这一路,而不是 headless 纯命令行。
截至 2026-08-17,GitHub 仓库星标为 115;同一天社区目录页仍显示 36,目录数字可能滞后,星标以仓库页面为准。
核心功能¶
仓库 README 把界面拆成两处入口、五块内容。入口是:
- Context / 上下文页签:打开任意会话后点这个页签,能看到完整洞察面板,覆盖组成、按轮历史、压缩,以及当前模型可见的消息面。
/context命令:在输入框输入/context,或从/菜单里选中后回车。会弹出居中对话框,展示与页签同一套摘要:以服务商数据锚定的占用标题、六类组成条,以及最近 10 轮的趋势图。鼠标悬停或点击某一根柱,可以看到和页签一样的明细。
页签里能看到的内容如下。
会话统计。 当前会话的轮次、步骤,以及注入、压缩、裁剪发生过多少次。用来先判断这次对话「折腾」过没有,而不是一上来就盯着某一条消息。
当前组成。 一条六色堆叠条,按模型完整上下文窗口缩放,灰色轨道表示剩余余量。六类分别是:系统提示、工具 schema、用户消息、注入的上下文、助手回复、工具结果。另外会列出占用最高的 5 个工具 schema。README 的说法很直接:对话开始变差时,先看是哪一块把预算吃掉了。
历史。 按每一次模型请求画一根堆叠条,粒度比「按消息」更细。可以在 Turn(轮)和 Step(步骤)之间切换,横向滚动整段会话,悬停看摘要,点击钉住完整拆分。拆分里会把估算 token 和服务商回报的实际 prompt / output token 放在一起对照。压缩或裁剪发生的位置用 ✂ 标出,柱子会明显掉一截。
README 给过一个仓库内的会话示例:大约 48 轮涨到约 56.3 万 token,随后一次压缩回收了 −53.55 万,对话从很小的窗口继续。这是维护者写在文档里的示例,不是第三方评测。
在 Step 粒度下,悬停某一根柱会立刻显示该步骤的轮次/步骤编号、时间戳,以及估算值和供应商回报值。
上下文事件。 每一次压缩、工具输出裁剪、技能或插件的上下文注入、模型切换,都会留下事件:token 增减、归属的轮次/步骤、时间戳。用来回答「窗口为什么突然变了」,而不是只看到结果。
当前模型可见消息。 此时模型实际看到的消息列表,最新的在前,并带上每条消息的 token 开销。它展示的是「现在送进去的面」,不是本地聊天记录的全集。
安装与启用¶
社区目录页给出的安装命令如下,在 DeepSeek Harness 终端中运行即可:
dsh plugin add github:bowenliang123/dsh-context
目录页同时说明:如需可复现安装,可以固定 commit 哈希:
dsh plugin add github:bowenliang123/dsh-context#commit
把 #commit 换成具体提交哈希。插件以当前 dsh 进程的权限运行,安装时可能执行代码。安装前应检查源代码仓库和许可证。
仓库 README 和 npm 页面给出的是另一条命令,按包名装进 web profile:
dsh plugin --profile web add dsh-context
然后启动 Web UI:
dsh web
README 写明这条路径不需要额外构建,也不需要重启。官方仓库里 dsh web 是 --profile web 的别名,默认把界面开在 http://127.0.0.1:3080。两条安装命令指向同一个仓库/npm 包;目录页以 github:owner/repo 为准,README 以 npm 包名加 --profile web 为准。已经在用 Web UI 时,按 README 写进 web profile 更直接。
典型用法¶
装好并执行 dsh web 之后,用法按 README 只有两步。
- 打开任意会话,点击 Context / 上下文 页签。先看顶部统计和当前组成条:系统提示、工具 schema、用户消息、注入内容、助手回复、工具结果各占多少,灰色部分还剩多少。如果某次工具特别「贵」,看占用最高的 5 个 schema。
- 需要在输入时快速看一眼,不必离开对话区:输入
/context或从/菜单选择,回车后弹出居中对话框。标题、六类组成条、最近 10 轮趋势和页签是同一套数据,悬停或点击柱子即可展开明细。
排查长会话时,可以把三块对照起来看:
- 历史图里找 ✂,确认压缩或裁剪发生在哪一次请求。
- 事件列表核对原因:压缩、工具输出裁剪、技能/插件注入,还是换了模型。
- 消息列表核对「此刻模型看见的」是哪些条目、各自花了多少 token。
Turn / Step 两种粒度不要混用:看一轮对话的涨跌用 Turn;要对齐某一次工具调用或某一步压缩,切到 Step。
适用场景与注意事项¶
比较适合已经在用 dsh web、并且会话经常跨很多轮、带一批工具或技能注入的人。典型情况包括:
- 对话质量突然下降,想确认是工具结果膨胀、schema 过重,还是注入把窗口占满。
- 刚触发过压缩,想核对回收了多少、之后窗口从多大继续。
- 需要把估算 token 和服务商回报的实际用量放在一起看,而不是只信本地估算。
使用前有几条边界需要心里有数。
- 这是 Web UI 插件。
package.json的dsh.client.platform为web,README 的启动方式也是dsh web。不要指望它在 headless 纯文本会话里画出同样的仪表盘。 - 社区目录是独立站点,不是 DeepSeek 官方应用商店。安装命令以目录页原文和仓库 README 为准,不要凭插件名自己拼 GitHub 地址。
- 插件以当前 dsh 进程权限运行,安装时可能执行代码。装之前应阅读仓库源码和 Apache-2.0 许可证;生产环境建议固定 commit,而不是一直追默认分支。
- DSH 本身处于开发者预览,官方 README 写明会有破坏兼容的变更。插件版本迭代也很快:npm 上 2026-08-14 才发布 0.1.0,2026-08-17 已到 0.10.3。界面字段、命令表现以当前仓库 README 为准。
- README 里约 56.3 万 token、一次压缩回收 −53.55 万的数字,是维护者文档中的会话示例,用来说明历史图和 ✂ 标记怎么读,不能当成自己项目的容量保证。
小结¶
dsh-context 把「上下文窗口里到底有什么」从一句总数,拆成组成、历史、事件和当前可见消息。入口有两个:会话里的 Context 页签,以及输入框的 /context。维护者是 bowenliang123,许可证 Apache-2.0,面向 DSH 的 Web UI。
目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-context/
GitHub:https://github.com/bowenliang123/dsh-context