跳到主内容

dsh-whale-report

25Star2Fork0Issue0Watching

把 DSH 会话事件聚合成日报/周报/月报/年报:成本、工具健康、危险命令、协作模式与改进建议,只读确定性,本地生成不消耗 token。

机审证据4/5方法论数据来源安装命令持续维护DSH 版本风险扫描
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
TypeScript
License
MIT
分支
main
agent-reportdeepseek-harnessdshdsh-plugin

安装

命令web profile
$ dsh plugin --profile web add dsh-whale-report

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 SenmuuuuW/dsh-whale-report:先查看仓库 https://github.com/SenmuuuuW/dsh-whale-report 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

把 DeepSeek Harness 的会话事件聚合成年/月/周/日报告,展示成本、工具健康、危险命令、协作模式,并给出只读的改进建议;所有报告都由本地确定性代码生成,0 额外模型 token。

核心能力

  • 多周期报告:日报、24 小时滚动、周报、月报、年报,以及任意起止时间的自定义报告
  • 成本估算:按官方峰谷价(北京 9-12、14-18 高峰,谷时 2:1)分段计算,含峰谷占比与「挪到谷时约省多少」提示
  • 工具调用健康度:按工具族统计失败率,高频工具(≥30 次)标出健康级别与最不稳定项
  • 危险命令分级:红级(删库 / rm -rf / fork 炸弹 / dd 写设备 / 关机重启 / 格式化)和黄级(force push / 硬重置 / 777 / curl|sh),只匹配命令首行,引号段剥离防误报
  • 密钥扫描:6 类常见密钥模式的存在性检测,只标记有无,不保存命中原文
  • 重试风暴识别:同一命令连续重复 ≥3 次视为重试风暴,附带错误摘要
  • 协作复盘:观察人机协作模式(需求漂移 / 迟到约束 / 上下文碎片化),最多 3 条,样本不足不展示
  • IMPROVE 建议:跨会话的只读改进建议(Repeated Tool Failure / Retry Workflow Waste / Peak Cost Opportunity),带证据和 VERIFY 基线→目标
  • 会话钻取:按费用排序的 Top 20 会话,含模型 token 归因
  • 实时计费:进行中会话 30 秒刷新 token 与费用,右上角峰谷徽标 + 双模型价目表
  • 历史趋势:多周期曲线(成本 / 会话 / 缓存命中 / 夜间活跃),进行中周期标 LIVE,不与完整周期混比
  • Provider 余额:DeepSeek 官方余额查询,API key 只在本机服务端使用,缓存 60 秒
  • 三视图导出:Web / HTML / PDF / PNG 主报告 / PNG 会话轨迹,导出全程本地
  • 报告历史:每次生成的报告保存到 whale 域,可在面板历史列表复用

技术实现

  • 语言: TypeScript(服务端 + React 客户端),TSX 单文件浏览器 bundle
  • 关键依赖: @deepseek-ai/cordis(宿主插件装配)、@deepseek-ai/dsh-tools(注册聊天工具)、@deepseek-ai/dsh-session-query(会话查询)、@deepseek-ai/dsh-storage-domain(whale 域持久化)、zod(schema 校验)
  • 架构模式: cordis 三件套双端插件 —— 宿主 half src/index.ts 注入 tools + sessionQuery + storageDomain,注册 whale_report 聊天工具与 /whale/api HTTP 路由;客户端 half src/client/index.tsx 通过 window.__ModuleLoader__ 注册 React 面板,优先接入 better-sidebar(registerTab),无 sidebar 时悬浮球抽屉兜底
  • 入口文件: 宿主端 src/index.ts(导出 name="whale-report-core"、inject=["tools","sessionQuery","storageDomain"]、apply),客户端 src/client/index.tsx(导出 name="whale-report-client"、apply);npm 包提供 lib/index.js(宿主)+ lib/client.js(浏览器)双入口

适用场景

DSH 长期用户想了解自己的 Agent 到底干了什么、花了多少、有什么可改进的。比如想知道这周哪些 session 最贵、深夜跑的任务占多少成本、哪些工具频繁失败、有没有误删风险的操作。报告是数据新闻官式的,数字先说、事实直陈,不做主观评价;改进建议是只读的,不自动改任何 skill 或工作流。

前置依赖与兼容性

依赖最低版本说明
DSH(DeepSeek Harness)>= 0.1.0-rc.7peerDependencies 声明;会话查询、存储域、工具注册都依赖宿主 half
Cordis^4.0.1peerDependencies;插件按 cordis 三件套注入
Node>= 22.19.0(支持 24.x)engines 声明
运行平台macOS / Windows / Linux浏览器 half 走 React,宿主 half 走 Node;不依赖平台原生能力
系统调用无没有原生模块依赖(peerDependencies 全部为宿主已装的 npm 包)
DSH-better-sidebar可选安装后深迹 Tab 接入侧栏工作台;未装时悬浮球兜底
API key可选用于面板余额查询;缺失时显示 NOT CONFIGURED,不影响报告生成

安装方式

dsh plugin --profile web add github:SenmuuuuW/dsh-whale-report

配置项

配置类型说明默认值
安装方式字符串DSH 插件安装(dsh plugin add)= 完整功能(含 Web UI + 聊天工具 + 实时计费);npm install dsh-whale-report 仅安装 npm 包,需手动 import 报告引擎推荐 DSH 插件安装
OPENCODE_GO_CACHE_READ_PRICE_PER_M / OPENCODE_GO_INPUT_PRICE_PER_M / OPENCODE_GO_OUTPUT_PRICE_PER_M数字(CNY/百万 token)覆盖 opencode-go 订阅的缓存命中价、输入价、输出价;非法值(NaN/负数/空)回退内置价flash: 0.02/1/2,pro: 0.025/3/6
DEEPSEEK_API_KEY字符串Provider 余额查询用;优先从 ~/.dsh/.credentials.yaml 读取,其次 ~/.dsh/.env,最后进程环境变量从 DSH 凭据文件自动读取
主题(面板)枚举面板主题:跟随系统 / 浅色 / 深色;选择持久化到 localStorage whale.theme跟随系统
DSH-better-sidebar安装状态已装时深迹作为侧栏原生 Tab;未装时悬浮球抽屉面板自适应

本插件没有 DSH 域内的 Config 配置项 —— 所有行为由确定性规则 + 用户聊天时的工具参数控制;上述环境变量和主题仅在用户希望覆盖默认值时设置。

常见问题

Q: 装好后能立刻出第一份报告吗?

A: 能,但首次打开面板或调用聊天工具时会先读取本机会话日志并建索引(src/tools.ts:206-226);启动 3 秒后会后台预热全部会话,再次生成报告 0.1-0.3 秒返回(src/tools.ts:206-226,README.md:189-191)。

Q: 数据来源是自己的还是云端?

A: 完全本地,只读。插件通过 ctx.sessionQuery 读取本机 DSH 会话存档,不写回任何会话历史,卸载即净(src/index.ts:26-34,README.md:206)。

Q: 报告里的费用是怎么算的?准吗?

A: 按官方峰谷价(北京 9-12/14-18 高峰、空闲 2:1)从 DeepSeek 定价页实时抓取,6 小时缓存,抓不到自动回退内置价;这是估算口径,以平台账单为准(src/pricing.ts:22-232,README.md:251)。

Q: 报告生成会调用模型吗?

A: 不会。所有统计、洞察、IMPROVE 建议都是本地确定性规则,生成报告 mode=local,input/output/cache/total token 全为 0;任何视图都不会因为打开报告而额外消耗模型额度(src/tools.ts:320-327,README.md:147)。

Q: 某个会话日志坏了会影响整份报告吗?

A: 不会。损坏会话被跳过并标记为 corrupt-log 或 read-failed,跳过数计入 partial 数据,markdown/HTML/面板三处都有 DATA PARTIAL 提示,被跳过会话不计入 sessions/subagentSessions 也不进 Improve 证据(src/tools.ts:182-198,README.md:117)。

Q: 卸载插件后数据会留下吗?

A: 不在 DSH 主数据里留下。插件把报告历史放在自己的 whale 域(reports / session_index / period_stats 三张表),卸载插件会随域一起清除;主会话历史插件从不动(src/state.ts:83-91,src/index.ts:31-33)。

Q: 报告支持哪几种周期?

A: 日报(今天 0:00 起)、24 小时滚动、周报(本周一 0:00 起)、月报(本月 1 日起)、年报(本年 1 月 1 日起)、自定义任意 from/to(ISO 格式)。自然周期 key 用 day- / 24h- / wk- / mo- / yr- 前缀隔离,互不串扰(src/report.ts:36-80,README.md:162-170)。

Q: 报告能导成什么格式?

A: 面板 Web 视图(含 IMPROVE 区)、HTML 可打印页、PDF(浏览器打印)、PNG 主图(不含 IMPROVE 区)、PNG 会话轨迹图(仅会话轨迹与会话索引);导出全程本地完成(README.md:174-178,docs/ARCHITECTURE.md)。

上手难度

入门 — 安装后直接打开面板或对话里说"给我一份周报"就能用;要改高级行为只需调整三个环境变量。

已知问题与限制

  • 报告提供 Session ID 复制,但尚未实现"一键跳回原会话"(待官方 client API 明确),README.md:250
  • 费用按官方峰谷价分段估算,最终以平台账单为准,README.md:251
  • IMPROVE 引擎为只读建议:v0.5 只落 DETECTED / DISMISSED 与 VERIFY 计划,Apply / self-healing 未实现(路线图下一步),README.md:252
  • Repeated User Correction 标记为 EXPERIMENTAL:保守阈值 + 首条消息过滤(首条用户消息不计入纠正),README.md:252
  • PNG 主报告导出暂不含 IMPROVE 区(HTML / PDF / markdown / 面板已含),README.md:253
  • 损坏会话的跳过数计入 partial,但错误原文与堆栈永不写入报告(fault isolation 设计),src/tools.ts:182-198
  • 协作复盘在周/月/年报才易触发(样本门槛:会话 ≥5 且用户消息 ≥30),日报/24h 多数不展示,src/collaboration.ts:22-24
  • 插件版本号 0.4.0,REPORT_SEM=6 / INDEX_VERSION=14,旧报告在结构变更时会自动重建,src/state.ts:11 / src/tools.ts:103

查看使用指南 →

该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/SenmuuuuW/dsh-whale-report)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录