前言¶
在 DeepSeek Harness(DSH)里跑长会话时,工具调用、Skill 加载和文件读写往往分散在多轮对话里。主面板侧重继续对话,很难一眼看清「这一轮到底做了什么、哪一步失败、某个文件后来被删了没有」。若只靠滚动消息或外部日志,统计和归因成本会很高。
下面介绍的是社区插件 dsh-plugin-operation-log(维护者 uio-o,分类:客户端)。它占用右侧边栏的一个标签页,把宿主已记录的会话事件按「轮次 → 步骤」展开,并区分已知与未记录的信息,不做猜测。
这是什么¶
dsh-plugin-operation-log 是会话面板插件:统计一次会话中的 Skill 调用、MCP 工具调用、文件读写,展示失败详情,支持按来源筛选,并对已删除文件做标注。
设计目标可以概括为「诚实的局部视图」——数据来自宿主只追加的会话日志与可选服务(connection、shell、fs);面板答不了的问题会标明「未知 / 未记录」,不替代主界面。
插件注册槽位包括 sidebar.right.pane.tab 与会话头部 conversation.session.header.utilities 上的「操作日志」入口;Host 半维护 operationLog 投影,纯函数折叠既有事件类型,不新增事件。
核心功能¶
面板分区¶
面板自上而下六个可折叠分区(筛选结果在有筛选时常开):
| 分区 | 内容 |
|---|---|
| 概览 | 总会话数、出错总数;可点芯片:全部 / Skill / MCP / 其他工具 / 出错 |
| 筛选结果 | 按主体聚合的次数与涉及轮次 |
| 任务 | 当前生效的任务清单(状态点 + 文本) |
| 活动日志 | 逐轮卡片:轮次头计数 + 调用行 |
| 文件 | 按路径聚合读写次数、最近轮次、存在性三态 |
| 会话变化 / Git 变化 | workspace/changes 公告与 git status / diff(依赖服务存在时) |
逐轮统计与调用明细¶
每个轮次卡片头部给出该轮 Skill / MCP / 其他工具 / 出错计数。超过 12 行的轮次可折叠;默认显示最近 10 轮,更早轮次可翻页。PTC(run_code)容器内的子调用会归属到对应轮次与步骤,外壳 run_code 本身不计入统计。
每条调用行包含类型着色图标、工具名、目标(文件名或技能名)、耗时与状态。文件类工具显示文件名(悬停可见完整路径);skill 显示参数 name 中的技能名;MCP 显示服务名与方法名。
失败详情¶
失败行可展开,展示宿主附带的 error.name / error.code / error.reason、报错正文摘录(可能标注「已截断」),并支持一键复制。投影对报错正文有体积上限(单条 ≤ 2048 字符、全文最多保留 300 条);超出后较早正文会被释放,面板会说明「较早的报错正文已释放」。
筛选与文件标注¶
点击概览芯片后,「筛选结果」按主体聚合统计;可继续收窄到某次具体调用。Skill / MCP 筛选分别按技能加载次数、方法调用次数与分布轮次展示。
「文件」分区聚合读写次数与最后出现轮次。存在性由 Host 通过 fs.stat 批量探测(POST /api/operation-log.files-exist,最多 200 路径),三态为:存在、已删除(删除线 + 「已删除」)、未知。结果带「存在性检测于 HH:MM」时间戳,表示探测时刻状态而非实时状态。
任务、会话变化与 Git¶
任务清单按任务文本与宿主对齐(同一清单内文本唯一)。轮次内若改写过任务清单,卡片上会标「本轮更新」。
「会话变化」读取 workspace/changes 公告;「Git 变化」在非仓库时会明确提示,而非显示为「无变化」。相关 HTTP 路由在 shell / fs 服务缺失时不会注册,对应分区显示降级说明。
界面配色使用宿主主题 token(--dsw-alias-*)与 color-mix(),不硬编码色值。
安装与启用¶
前置条件:DSH 0.2.0-rc 或更高(需投影注册表、sidebarRightTabs、ctx.locale.register)。
在 profile 目录 ~/.dsh/profiles/<profile>/ 的 package.json 中加入依赖与 bundle:
"dependencies": { "dsh-plugin-operation-log": "github:uio-o/dsh-plugin-operation-log" },
"dsh": { "profile": { "bundles": [ "dsh-plugin-operation-log" ] } }
执行 pnpm install 后重启 DSH。会话头部右侧会出现「操作日志」按钮,点击后在右侧边栏打开面板。
锁定版本示例(不跟随 main):
"dependencies": { "dsh-plugin-operation-log": "github:uio-o/dsh-plugin-operation-log#v0.1.0" }
当前 package 版本为 0.1.0,许可证 MIT。
典型用法¶
- 安装并重启 DSH 后,在任意会话中点击头部「操作日志」,打开右侧标签页。
- 在「概览」点击 Skill、MCP 或 出错 等芯片,在「筛选结果」查看按主体聚合的次数与轮次,再点某行收窄到单次调用。
- 在「活动日志」中展开失败行,查看错误码与正文,必要时复制整段错误。
- 在「文件」分区查看读写统计;若文件已被删除,会看到删除线与「已删除」标注。
- 若工作区为 Git 仓库且配置了
shell,可在「Git 变化」查看未提交项并展开 diff。
开发时注意:修改 client.js 刷新浏览器即可;修改 index.js(Host 半)必须重启 DSH。插件管理器「关掉再开」不会重新导入 Host 模块。
适用场景与注意¶
适合需要在 DSH 内复盘长会话的开发者:核对某轮调用了哪些 Skill / MCP、哪些文件被读写、失败发生在哪一步,以及任务清单是否在某一轮被更新。
插件以当前 DSH 进程权限运行;Git diff、文件存在性探测等会触发 Host 侧路由与可选服务。安装前应自行查看 GitHub 仓库 源码与 MIT 许可。README 说明本项目代码由 AI 编写(Vibe Coding),视觉结构借鉴 Abu 设计语言但实现未使用其代码。
SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系;星标等元数据以目录页为准(当前 GitHub 星标为 0)。
结尾¶
dsh-plugin-operation-log 把会话里已记录的操作按轮次摊开,在边栏提供可筛选、可下钻的统计视图,并对未知数据保持明确说明。若你需要在 DSH 内做会话级审计而非猜日志,可按 profile 依赖方式安装并重启启用。
- 目录页:https://www.skillhub.cn/plugins/uio-o/dsh-plugin-operation-log
- GitHub:https://github.com/uio-o/dsh-plugin-operation-log