🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

会话统计面板 wellcover/dsh-conversation-stats

DeepSeek Harness
wellcover77 天前有提交已提供中文文档扫描:含敏感能力

查看每个对话的轮数、token 用量与耗时明细

28.5/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add wellcover/dsh-conversation-stats
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/09/25·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 77 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 11 处,展示前 11 条)
  • 读取本地文件
    lib/index.js:64
    const buf = await readFile(file)
  • 读取本地文件
    lib/index.js:316
    const j = JSON.parse(await readFile(join(storagesRoot(), 'workspace.json'), 'utf8'))
  • 读取本地文件
    lib/index.js:328
    workspaces = await readdir(root, { withFileTypes: true })
  • 读取本地文件
    lib/index.js:337
    try { entries = await readdir(wsDir, { withFileTypes: true }) } catch (e) { continue }
  • 读取本地文件
    lib/index.js:342
    await stat(file)
  • 删除本地文件递归
    lib/index.js:450
    await rm(folder, { recursive: true, force: true })
  • 读取本地文件
    lib/index.js:466
    j = JSON.parse(await readFile(file, 'utf8'))
  • 写入本地文件
    lib/index.js:477
    await writeFile(file, JSON.stringify(j, null, 2) + '\n', 'utf8')
  • 发起网络请求
    lib/client.js:116
    var res = await fetch(url, { cache: "no-store" });
  • 发起网络请求
    lib/client.js:128
    var res = await fetch(API_DELETE + "?id=" + encodeURIComponent(id), { cache: "no-store" });
  • 发起网络请求
    lib/client.js:139
    var res = await fetch(API_REACTIVATE + "?id=" + encodeURIComponent(id), { cache: "no-store" });
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 查看会话轮次
  • 统计token用量
  • 查看耗时明细

README

由 DeepSeek 最新模型翻译生成
dsh-conversation-stats DeepSeek Harness(DSH)Web GUI 的会话统计插件:在顶部分栏「对话」「轨迹」之后新增 「会话统计」 tab,列出 每个对话 的轮数、步数、模型调用次数与 token 用量(输入 / 输出 / 缓存),并汇总 LLM/工具耗时、模型分布、结束原因;点击某个会话 展开该对话的逐条模型调用明细与工具调用统计。数据每 60 秒自动刷新,也支持手动重新扫描。 数据直接解析 ~/.dsh/sessions//session.jsonl.zstd(会话持久化日志,zstd 分帧),无需常驻监听**——历史对话与当前对话同样可见,重启不丢,本人即可核对口径。
展开完整文档(README 剩余 1 节)
dsh-conversation-stats

DeepSeek Harness(DSH)Web GUI 的会话统计插件:在顶部分栏「对话」「轨迹」之后新增 「会话统计」 tab,列出 每个对话 的轮数、步数、模型调用次数与 token 用量(输入 / 输出 / 缓存),并汇总 LLM/工具耗时、模型分布、结束原因;点击某个会话 展开该对话的逐条模型调用明细与工具调用统计。数据每 60 秒自动刷新,也支持手动重新扫描。

数据直接解析 ~/.dsh/sessions//session.jsonl.zstd(会话持久化日志,zstd 分帧),无需常驻监听**——历史对话与当前对话同样可见,重启不丢,本人即可核对口径。

功能

- 📊 顶部「会话统计」tab(conversation.view,排在「对话」「轨迹」及用量插件的 tab 之后)
- 📋 会话总览表:标题/片段、轮数、步数、调用、输出 tok、输入 tok、缓存 tok、缓存命中率、最后活跃,按最后活跃倒序
- 🧮 汇总 chips:会话数 / 总轮数 / 总步数 / 总模型调用 / 总 token
- 🚀 缓存命中率列(v1.0.6):命中率 = 缓存读 /(输入 + 缓存读),分子分母皆为 0 时显示「—」
- 🔍 点击会话看明细:会话信息卡(ID、工作区、时间、轮/步/调用、token 构成、LLM/工具耗时、模型分布、结束原因)+ 工具调用表(次数/总耗时/失败数)+ 逐条模型调用明细表(时间/模型/结束原因/输入/输出/缓存/工具)
- ⏱️ 扫描时间显示 + 手动「刷新」(强制重扫)+ 60 秒自动刷新
- 🗑️ 彻底删除会话(v1.0.2):总览表最右侧「删除」列,经红色确认弹层后删除对应会话目录(~/.dsh/sessions/…/,含 session.jsonl.zstd),删除后自动重扫刷新列表
- 🔄 加载归档会话(v1.0.3):总览表「加载」列,对已归档(在 DSH 对话列表被隐藏)的会话显示绿色「恢复」按钮,点击把该会话 id 从 DSH storages/workspace.json 的 global.archivedSessionIds 移除,使其重新出现在 DSH 对话列表(需重启 DSH Web 生效;非归档会话该列显示「—」)

安装

从 GitHub 直接安装(推荐)

dsh plugin --profile web add github:wellcover/dsh-conversation-stats
或锁定稳定版本 tag(推荐)
dsh plugin --profile web add github:wellcover/dsh-conversation-stats#v1.0.6

或从源码打包(本地开发)

cd dsh-conversation-stats
npm pack
dsh plugin --profile web add dsh-conversation-stats-1.0.6.tgz

装完重启 dsh web(或桌面应用重开)。dsh plugin add 会自动把包装进 profile、写入 dsh.profile.bundles,并随包的 cordis.patch.yml 挂载插件行(GitHub 引用安装同样适用)。

手动安装(无 pnpm):拷贝包到 ~/.dsh/profiles/web/node_modules/dsh-conversation-stats,在 profile package.json 的 dsh.profile.bundles 追加 "dsh-conversation-stats",并在 cordis.patch.yml 追加:

- insert:
- id: conversation-stats
name: 'dsh-conversation-stats'
inject:
- fs
- webServer

数据口径

- 轮数 turns:含至少一个已关闭步(step/end)的不同轮次(与内置 sessionStats 投影一致)
- 步数 steps:step/end 事件数(完成 / 失败 / 取消 / max-tokens 一并计入)
- token:assistant/message 事件的 usage 字段(inputTokens / outputTokens / cacheReadTokens / cacheWriteTokens;不同提供方可能缺某些字段,按 0 计)
- LLM/工具耗时、首页延迟、解码 token:与 dsh-session-stats 的 sessionStats 折叠同口径(step/start→assistant/message、tool/call→tool/result 配对)
- 会话按 $DSH_HOME/sessions(默认 ~/.dsh/sessions)扫描,跨工作区一并列出(每行标注 cwd)

故障排查

| 现象 | 原因 / 处理 |
| 顶部无「会话统计」tab | 插件未激活:查看工作区下 conversation-stats-boot.log;确认 profile bundles 含本包并已重启 |
| 「会话统计加载失败」 | 宿主路由未注册:确认 cordis.patch.yml 行存在且 inject 含 fs/webServer,重启 |
| 列表为空 | ~/.dsh/sessions 下没有 .jsonl.zstd 会话日志(或 DSH_HOME 指向别处) |

工作原理

- Host 半(lib/index.js):Cordis 插件,注入 fs / webServer。将 session.jsonl.zstd 按 zstd magic 分帧、逐帧解压(Node node:zlib 对拼接流只解首帧,必须分帧),解析出新行分隔的 JSON 会话事件,按内置 sessionStats 同口径折叠统计;列表结果缓存 30 秒(?refresh=1 强制重扫)。
- Client 半(lib/client.js):window.__ModuleLoader__.load 格式浏览器模块(React createElement、无 JSX/无构建),通过 slots.inject("conversation.view") 注册顶部 tab,轮询同源 /conversation-stats/api 与 /conversation-stats/api/detail?id=…。

License

MIT
预览分享卡片长什么样 ↓wellcover/dsh-conversation-stats
分享 · DeepSeek Harness Hub
wellcover/dsh-conversation-stats

查看每个对话的轮数、token 用量与耗时明细

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部