dshbase

插件目录 / Developer / dsh-tool-tariff

dsh-tool-tariff

未验证 omdsh-dev

✓ 持续维护 基于 3 个官方 DSH 包

查看 GitHub ↗ ← 返回插件目录

1Stars
0Forks
0未关闭 issue
语言
2026-08-21最近推送
跨平台平台

功能简介

DSH peak/off-peak tariff, DeepSeek API balance, reminder, and Web status badge plugin

我们的评价
未验证 — 尚未实测

DSH peak/off-peak tariff, DeepSeek API balance, reminder, and Web status badge plugin 尚未验证——请自行安装测试。

「未验证」表示我们的自动化 CI 尚未安装过该插件。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

你是插件作者? 想拿到「已验证」标签——提交你自己的验证证据(截图、日志或短视频),我们审核通过后即改为「已验证」。

提交验证证据 ↗

README

dsh-tool-tariff

English

DSH(DeepSeek Harness)插件:峰谷电价时段查询 + DeepSeek API 余额查询 + 峰时切换提醒 + 顶部栏状态徽标

  • tariff 工具:查询当前处于峰时还是谷时、完整时段表、下一次切换时刻;
  • api_balance 工具:查询 DeepSeek API 账户余额;
  • 定时提醒:每天 08:5013:50(可配置)自动提醒"10 分钟后进入峰时";
  • 顶部栏状态徽标(Web GUI 会话头部右侧):实时显示 时间 | 当前时段与切换倒计时 | 账户余额
    时间与倒计时每秒刷新(本地计算);余额不自动轮询——点击余额徽标查询一次
    (host 侧另有 60s 缓存,频繁点击不会反复打余额接口);数据经 /tariff RPC 通道走 host 侧
    (浏览器不接触 API Key)。

时段规则(默认)

时段 类型
00:00 – 09:00 谷时
09:00 – 12:00 峰时
12:00 – 14:00 谷时
14:00 – 18:00 峰时
18:00 – 24:00 谷时

边界按"到达即切换"处理(如 09:00 整点进入峰时)。提醒窗口默认
08:50-09:0013:50-14:00(提前 10 分钟),每个窗口每天提醒一次。

安装(Profile Bundle,推荐)

dsh plugin --profile web add github:omdsh-dev/dsh-tool-tariff
# 一次性任务/headless 也要用时:
dsh plugin --profile headless add github:omdsh-dev/dsh-tool-tariff

验证已挂载:

dsh --profile web --dump-config | grep tool-tariff

使用

  • 在对话中问"现在是什么时段?"或"什么时候进入峰时?"——模型会调用 tariff 工具;
  • 问"查一下 API 余额"——模型会调用 api_balance 工具;
  • 每天 08:50 / 13:50 自动收到峰时切换提醒(默认唤醒模型用一句话播报)。

余额查询的前提

需要 DeepSeek API Key。两种方式任选其一:

  1. 在 DSH 设置页(模型/凭据页)配置凭据 DEEPSEEK_API_KEY
  2. 或导出环境变量 DEEPSEEK_API_KEY

端点默认 https://api.deepseek.com,可用环境变量 DEEPSEEK_BASE_URL 覆盖
(与 DSH 内置 llm-deepseek 适配器一致)。余额结果短缓存 60 秒。

配置(cordis.yml / profile 该插件行的 config 字段)

全部可选:

字段 默认 说明
timezone 宿主本地时区 IANA 时区名,如 Asia/Shanghai
baseURL $DEEPSEEK_BASE_URLhttps://api.deepseek.com 余额查询端点
apiKeyEnv DEEPSEEK_API_KEY 凭据引用名
reminderTimes ["08:50", "13:50"] 每天提醒时刻列表(HH:MM)
reminderWindowMinutes 10 每个提醒的窗口长度(分钟)
reminderTickMs 20000 提醒调度轮询间隔(毫秒)
reminderWake true true 唤醒 agent 一轮由模型播报提醒;false 仅注入 next-step 上下文(不产生模型调用)
balanceCacheMs 60000 余额结果缓存毫秒数

示例($DSH_HOME/profiles/web/cordis.yml--patch):

plugins:
  tool-tariff:
    timezone: Asia/Shanghai
    reminderTimes: ['08:50', '13:50']
    reminderWake: true

开发

npm install        # devDependencies 自包含
npm run typecheck  # tsc --noEmit
npm test           # vitest
npm run build      # tsc 产物到 lib/
npm pack           # 可发布 tarball

结构

src/tariff.ts     峰谷时段纯逻辑(分类/时段表/下次切换/时区换算)
src/balance.ts    DeepSeek /user/balance 查询(可注入 fetch)
src/reminder.ts   提醒调度器(轮询窗口、每日一次、可注入时钟)
src/index.ts      插件入口:注册两个工具 + 提醒接线 + /tariff RPC 通道(status、balance)
client/client.js  浏览器 half(ModuleLoader bundle):顶部栏状态徽标组件
scripts/          build 时把 client/client.js 拷贝进 lib/
tests/            逻辑测试 + 注册契约测试 + 客户端 bundle 契约测试

前端徽标说明

  • 位置:会话头部(顶部栏)右侧 conversation.session.header.utilities 插槽,条目 id tariff-status
  • 内容:[时间] [峰时/谷时 · 倒计时] [余额]——峰时橙色、谷时绿色,倒计时精确到秒;
  • 数据通道:浏览器侧经专用 /tariff RPC 通道调 host half(status 取时段配置与宿主时区、
    balance 取余额);API Key 只存在于 host 侧,浏览器永不接触。注意不要占用 /api
    通道——那是 DSH 网关(Typert Remote)独占的共享通道,第三方插件抢占会导致插件列表、
    命令执行等所有 Remote 静默失效;
  • 余额不自动轮询:点击余额徽标查询一次(host 侧另有 60s 缓存);查询中显示"查询中…",
    连接不可用或未配置 Key 时显示"余额不可用"(悬停可见原因),点击可重试。

边界说明

  • 提醒的"每日一次"语义仅存在于进程内存:进程在窗口中途重启会再次触发(符合预期);
  • 提醒只投递给当前存活的顶层 agent(ctx.agents.roots()),没有存活 agent 时静默跳过;
  • api_balance 依赖全局 fetch(Node 22+ 自带);非官方网关若未实现
    /user/balance 端点,会返回明确的 HTTP 错误信息;
  • 前端徽标需要重启 Web GUI 后生效(web profile 的 HMR 处于关闭状态);
  • headless profile 没有 connection 服务,RPC 通道自动跳过,其余功能不受影响。

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 dsh-tool-tariff」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包

该插件是 GitHub 源码(未发 npm)——直接从仓库装:

Web profile:

dsh plugin --profile web add github:omdsh-dev/dsh-tool-tariff

Headless(CLI)profile:

dsh plugin --profile headless add github:omdsh-dev/dsh-tool-tariff

实测报告

尚未 L3 验证——若已跑过,见下方失败备注。

状态:pending · 最近测试 2026-08-26
备注:验证: runtime-fail 浏览全部待验证失败 →
安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Developer 里更多

浏览全部 7795 个插件 →