前言¶
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