dsh-timespan:在 DSH 里统计在线、活跃与任务时长

前言

长期在 DSH 里跑 Agent 和会话,你很难准确回答几个朴素问题:客户端开了多久、真正有操作的时间是多少、单次任务里模型和工具各占多少。靠目测或外部计时器,口径往往和 DSH 自己的会话边界对不上。

dsh-timespan 是维护者 qwayo 发布在 DSH 插件生态里的一款「记忆」类插件。它在 DSH 进程内记录三类时长,用侧栏入口和仪表盘展示,并支持在对话里用只读工具查询;统计数据只写本机存储,不上传。

这是什么

dsh-timespan 面向已安装 DSH(DSH Desktop 或带 Web profile 的环境)的用户。插件分成 Host(随 DSH 运行的后台)和 Client(页面上的侧栏、仪表盘与设置)。页面只上报界面可见、窗口聚焦、会话任务起止等事件;在线、活跃、任务如何判定与汇总,由 Host 统一计算后写入本机,刷新页面或调用 Agent 工具时读的是同一份数据。

项目托管于 GitHub:qwayo/dsh-timespan,npm 包名为 @qwayo/dsh-timespan(资料中版本 0.1.1,许可证 MIT)。目录页见 skillhub.cn 上的 dsh-timespan。

三种时长分别指什么

插件统计三类指标,彼此有明确边界:

  1. 在线:DSH 从启动到退出的全部时间,包含离开电脑的时间。
  2. 活跃:页面可见且窗口聚焦,并在空闲阈值内有操作,或前台会话正在执行任务的时间。
  3. 任务:一次任务从 turn/start 到 turn/end 的耗时,拆成模型请求、工具执行、等待用户和其他四部分。

资料说明:没有单独的「空闲时长」指标;任务时长不算活跃时长的一部分。启用后只会回填历史任务时长,不会补出在线和活跃的历史。

核心功能

侧栏与仪表盘

  • 侧栏有常驻入口,实时显示你选定的时长类型(默认在线)和今日构成环;悬停约 200ms 显示说明。
  • 日 / 周 / 月仪表盘含概览、趋势、明细、设置;活跃主数字、趋势图、热力图可放大到独立首屏页,趋势页含时段分布与趋势分析。
  • 工作区 → 会话明细:展示活跃时长、任务时长、最近活动与当前计时状态;统计范围可选今天、近 3 天、最近一周、近 30 天或全部(选「全部」时分批加载会话)。

Agent 工具与数据管理

  • 只读工具 timespan_stats:在对话里按日 / 周 / 月或自定义日期查询,与仪表盘同源。
  • 支持导出 JSON / CSV;新备份格式为 dsh-timespan-export,旧的 chronoscope-export 仍可导入,按 ID 去重。清空等破坏性操作会二次确认。
  • 首次启用时自动回填已有历史会话的任务时长。

设置项(节选)

设置页中的 dsh-timespan 分区包括:界面语言(默认中文,可切英文,仅影响本插件文案)、空闲阈值(1–15 分钟)、周起始(周一 / 周日)、外观与配色(默认跟随系统)、数字格式(默认紧凑单位如 2h 48m)、子代理明细开关,以及侧栏是否显示状态文字和常驻时长类型(默认在线)。

安装与启用

前置条件:DSH 已装好,且当前会话可用 plugin_manager 工具(Standard 与 Creator 预设默认开启)。安装、更新、卸载交给 plugin_manager,不要手动改 profile 的 package.json,也不要自行跑 pnpm。

方式一:从 npm 安装

在会话里对 Agent 说:

帮我装插件 @qwayo/dsh-timespan

需要固定版本时:

帮我装插件 @qwayo/dsh-timespan@0.1.1

plugin_manager 会从 registry 拉取并默认启用;提示需要重启时,重启 DSH 即可。

方式二:从 GitHub 安装

在会话里对 Agent 说:

帮我装插件 github:qwayo/dsh-timespan

适合指定仓库分支或 tag;同样需要重启 DSH 时按提示操作。

方式三:本地目录(开发)

  1. 将仓库放在固定路径,记作 <仓库本地路径>。
  2. 在会话里说:
用 plugin_manager 把 `<仓库本地路径>` 安装为当前 profile 的 bundle。

按返回值处理:application: applied 表示已激活;restart-required 则重启 DSH;failed 则保留错误信息继续排查。

也可直接让 Agent 调用 plugin_manager,例如:

action: install_bundle
target: github:qwayo/dsh-timespan

装好后核对

  1. 左侧栏出现 dsh-timespan 入口,默认显示今日在线时长(可在设置中改为活跃或任务)。
  2. 设置页出现 dsh-timespan 分区。
  3. 对 Agent 说「用 timespan_stats 查一下今天的时长」,应能返回统计结果。
  4. 可用 plugin_manager 的 list_bundles / list_plugins 确认 bundle @qwayo/dsh-timespan 与插件行 dsh-timespan 已启用。

从旧名 chrono-scope 升级:先移除 @local/chrono-scope bundle,再按上述方式安装;存储域仍为 chrono_scope,历史统计与设置不会丢失。

典型用法

在对话里查今日统计

安装并启用后,可直接用自然语言让 Agent 调用只读工具,例如:

用 timespan_stats 查一下今天的时长

返回口径与仪表盘一致。

在界面里看周期与构成

  1. 点击侧栏 dsh-timespan 进入仪表盘。
  2. 切换日 / 周 / 月视图,查看概览、趋势与明细。
  3. 在 工作区 → 会话明细 中选择统计范围,核对单会话活跃与任务时长。

备份与迁移

在设置中使用导出 JSON 或 CSV;导入时使用插件提供的导入入口。资料注明新格式为 dsh-timespan-export,旧 chronoscope-export 备份仍可导入。

适用场景与注意

适合谁:希望在 DSH 内闭环看清「挂机时长」「真正操作时长」「Agent 任务耗时构成」的开发者;需要在对话中让模型引用同一套统计而不另建表格的用户。

运行与权限:插件随当前 DSH 进程运行,具备该进程对文件与会话事件的访问能力。安装前应查看 GitHub 仓库 源码与 MIT 许可证,确认符合你的环境策略。

生态说明:DSH 社区插件目录(如 skillhub.cn)为独立站点,与 DeepSeek / 幻方无官方从属关系;安装方式以仓库 README 中的 plugin_manager 为准,不要凭插件名自行拼接未文档化的 CLI。

技术侧补充:运行时无第三方依赖、无需构建;仓库使用 Node.js 24.16.0 开发与测试,engines 要求 node >= 24。持久化存储域内部键名仍为历史遗留的 chrono_scope,对外项目名为 dsh-timespan。

结尾

dsh-timespan 把在线、活跃、任务三种口径放在同一套本机统计里,用侧栏、仪表盘和 timespan_stats 统一出口,避免「界面一套数、对话另一套数」。若要查看元信息与配图,可打开 目录页 或 GitHub README。

羽毛球分组比赛记分
小程序二维码

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

小夜