DeepSeek Harness 任务详情侧边栏插件

前言

DeepSeek Harness(DSH)的对话窗口会记录每一步的工具调用与文件读写。当任务跑完,想要快速查看这次任务到底读了什么文件、用了哪些工具、输出了哪些产物,以及模型的 token 用量,最直接的方式是往上翻聊天记录,再逐条展开。这既耗时,又容易被折叠掉的调用干扰。

本插件在每条对话任务的底部插入一个「查看任务详情」按钮,点击后从右侧打开一个可拖拽调整宽度的面板。面板内容来自会话日志与宿主文件系统,能在不翻聊天记录的情况下,一次性看到任务的输入、中间产物、输出、工具调用统计、语言推断、可复用性判断以及模型用量与缓存情况。

这是什么

这是一个 DSH 客户端插件,维护者为 zzt0818。它在每个对话任务的末尾挂载一个按钮,点击后从右侧弹出任务详情面板。面板宽度默认 460px,支持拖拽调整:宽度达到 560px 时文件行展开为完整明细(保存路径、日期、大小、行数、是否存在);达到 700px 时面板内部变为双栏布局。宽度偏好写入 localStorage,跨标签页共享。

核心功能

面板按区块展示任务信息,各区块说明如下:

  • 查看任务详情:按钮挂载在 conversation.chat.turnTail 槽位。
  • 输入的文件:本任务通过工具读取过的文件 + 用户消息文本 + 附件名。没有时显示「暂无」。
  • 中间产物:临时目录、构建目录、.dsh 目录下的文件、MEMORY.md 记忆文件、会话日志(.jsonl.zstd)。
  • 输出的文件/产物:本任务写入或交付的文件,支持点开预览。
  • 使用的工具/skill:工具调用次数、失败次数、平均耗时;skill 调用单独列示。
  • 使用的语言或其他:从文件扩展名推断的语言、执行的 shell、命令次数。
  • 可复用/生成本地技能/工具?:依据交付文件、脚本产出、技能调用、项目改动给出结论。
  • 对话任务的流程/框架:按步骤组织的时间线,每个工具调用一行,失败标红。
  • 模型的提供方、模型名称、用量、缓存输入输出:提供方/模型、输入/输出/缓存读/缓存写/推理 Token、缓存命中率与进度条。

数据来源与边界

  • 数据来源是会话日志:面板直接读取 sessions.binding(id).session.eventSource,与 Chat 折叠状态无关,即使被折叠掉的工具调用也能看到;重新打开历史任务、断线重连后依然正确。
  • Host 只补浏览器看不到的信息:文件是否仍存在、大小、修改时间、行数,以及 .dsh 下的记忆与日志位置。
  • 输入端只统计「工具读取过的文件」和消息附件;用户在系统里直接改的文件不会被记录,这是会话日志的固有边界。
  • 面板只包含已加载的会话窗口;更早的任务需要先在 Chat 里向上翻页加载。
  • 工具结果里的文件路径依赖 <path> 标记与 file_path/path 参数;纯命令行里 > 重定向生成的文件无法静态识别,会归入「未见路径」而不是伪造一条记录。

安装与启用

官方安装命令如下:

dsh plugin add dsh-task-details

安装后需要重启 DeepSeek Harness 桌面应用。重启后重新打开任意历史任务,任务底部就会出现「查看任务详情」按钮。

从源码安装(开发时):

git clone https://github.com/zzt0818/dsh-task-details.git
dsh plugin add link:./dsh-task-details

开发与构建

npm run build    # 把各模块内联成单一 client.js(浏览器端产物)
npm test         # 跑全部测试

client.js 是构建产物,由 build.mjs 生成,不要手动修改。

单独跑某一个测试:

node test/analyzer.test.mjs     # 分析器:会话日志按任务聚合
node test/fold.test.mjs         # 折叠:任务划分、无幻影任务、耗时
node test/host.test.mjs         # Host 聚合:文件存在性/大小/行数
node test/host-plugin.test.mjs  # Host 路由:405/400/200 与 dispose
node test/bundle.test.mjs       # 浏览器端:模块加载器格式、槽位注册
node test/render.test.mjs       # 渲染:跑通完整面板树

结构说明

文件 作用
index.js Host 半:POST /api/plugins/ui-task-details/describe 与 GET .../journal,返回文件元数据、记忆文件、会话日志
analyzer.js 纯函数:把会话事件流按任务(Turn)折叠成输入/工具/用量/文件
model.js 地址格式、格式化、语言推断、可复用判断
details.js 面板视图(含拖拽调宽)与任务底部按钮
preference.js 面板宽度偏好(跨标签页共享)
styles.js 样式(全部使用宿主 --dsw-alias-* 主题变量)
copy.js 中英文案
client-entry.js 浏览器端注册逻辑(槽位、标签页类型、样式、词典)
client.js 构建产物,由 build.mjs 生成
cordis.patch.yml bundle patch:插入 Host 插件行
icon.svg / locale/*.json 插件图标与显示元数据

适用场景与注意

适合在需要快速复盘任务执行情况的场景使用,例如:

  • 需要查看某个工具调用的输入输出文件路径与大小;
  • 需要统计多次任务的工具调用次数、失败次数与平均耗时;
  • 需要了解模型在本次任务中的输入/输出 token、缓存读/写与命中率;
  • 需要判断本次交付的产物是否可复用为本地技能或工具。

务必注意:插件以当前 DSH 进程的权限运行。安装前应检查源码与许可证,确保符合使用规范。

短结尾

本插件通过右侧面板集中展示任务详情,让你在任务跑完之后无需翻阅聊天记录即可快速掌握输入、输出、工具调用与模型用量。项目目录页与源码仓库见下方链接。

  • 目录页:https://www.skillhub.cn/plugins/zzt0818/dsh-task-details
  • GitHub:https://github.com/zzt0818/dsh-task-details
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜