deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
本项目目的是制作一个简单的计价显示,使用与DSH本体用量、用时显示一致的外观,显示单轮对话及整个会话按 DeepSeek 官方 API 价格计算的花费。 本项目代码及文档由 WSL 环境 DSH 中调用 deepseek-v4-flash-vision-exp 路由的 deepseek-v4.1-flash 开发或生成,人类只进行了需求、审查和文档微调。
| 会话累计 | 每轮花费 |
|---|---|
![]() |
![]() |
左图:输入框下方与「轮/步 · 速度」「总 token · 缓存命中率」同排的会话花费,点开是整段会话的累计明细。
右图:每轮回答尾部动作行里的花费 pill(标签末尾的 含子代理 N 表示该轮有 N 个子代理计入),点开是本轮明细。
截图为早期开发版本内容,仅用于粗略展示功能,实际UI请以使用实测为准。
界面截图中 DSH / DeepSeek 商标归其所有者。
‹ 2/4 ›。有子代理时第 1 页是总计(三桶与合计,末尾一行 由 N 个代理构成 : 主 Agent x CNY + 子代理 y CNY 说明钱花在谁身上)、第 2 页是主 Agent(会话 pill 是"本会话自身",每轮 pill 是"本轮自身")、第 3 页起每个子代理一页(名称 / 模型 / 三桶 / 合计 / 归属轮次)。没有子代理时弹窗就是单页(与分页前逐条一致),不出现任何翻页控件。‹ / ›,或按 ← / → 前后翻(到两端就停住);按 Enter 循环翻到下一页(最后一页回到第 1 页),连按即可把每页过一遍;Esc 关闭弹窗(Esc 是原生弹窗本来就有的行为)。子代理个数变化导致页数变少时,当前页会自动夹到最后一页,不会看到空白页。含子代理 N;每轮 pill 分页里的子代理页只包含该轮调用的子代理。归属规则是"按子代理那一轮的开始时刻落进本会话的对应轮次",取不到时刻时退回它被创建的轮次并在弹窗里标注 按创建轮归属。DeepSeek 官方 API 价格 · 空闲时段 · 2026-09-10;每一页都保留这行脚注,翻到哪一页都知道数字是按什么价算的。插件不改动DSH官方源码,不覆盖任何原生UI:
tokenUsage / sessionStats 同一种机制)。订阅、水位、变更推送、持久缓存全由框架负责,插件只贡献一个纯折叠函数;这正是数字不受分页 / 压缩影响的原因。prompt_cache_hit_tokens)、缓存未命中输入(prompt_tokens − 命中)、输出(completion_tokens;思维链已含在输出内,不重复计费)。deepseek-v4-pro 按其自身价。历史会话用当时的价格(8/17 峰谷启用、8/23 起周末全天谷价、9/10 flash 降价,均已收录)。round(tokens × 元/百万)),无浮点漂移;显示为 花费 1.1451 CNY,不足 0.0001 元显示 <0.0001 CNY。(turn, step) 的流式样本会被最终样本替换;失败重试的每一次请求都真实累加(llm/retry-started 之后不清零)。llm-pi-ai 适配器接入的第三方模型)默认不计价,其请求该轮不显示花费(其他被计价的请求照常累计),可用插件配置 pricedProviders 放开(配置写在 profile 的 cordis.patch.yml insert 行 config 里)。web/deepseek-search-llm-request)这类同会话内但不走计价请求的旁路调用——平台会为这些请求扣费,但本插件的「会话花费」看不到。本插件所显示的花费,是基于 DSH 提供的接口获取 token 消耗并计算得到的,仅为方便查看每一轮次、每一会话的大致开销使用;本插件不保证花费显示准确无误,实际价格花费仍应以 DeepSeek 官方文档价格、以及官方开放平台余额与账单显示为准。
技术口径边界(估算方式、包含与不包含哪些请求)见上一节「如何计价」。
# 1) 克隆
git clone https://github.com/Quimos-M/dsh-turn-cost.git ~/dsh-plugins/dsh-turn-cost
# 2a) 如果你的 dsh 版本带 plugin 子命令(本项目的开发环境未实测该子命令;没有就用 2b)
dsh plugin --profile web add link:~/dsh-plugins/dsh-turn-cost
# 2b) 等价的手工两步(本插件的开发与验收全程走的就是这条)
# 编辑 profiles/web/package.json:
# "dependencies": { "dsh-turn-cost": "link:/home/<你>/dsh-plugins/dsh-turn-cost" }
# "dsh": { "profile": { "bundles": [ ..., "dsh-turn-cost" ] } }
# profiles/web/node_modules 下若没有指向该目录的链接,先建一个
# 3) 重启 dsh web —— bundle 在启动时装配
也支持 tgz:
npm pack # 产出 dsh-turn-cost-0.1.0.tgz
# 装配方式同 2a 的说明(该子命令未在本项目开发环境实测;等价手工法见 2b)
dsh plugin --profile web add ./dsh-turn-cost-0.1.0.tgz
卸载 = 从 profile 的
bundles与dependencies移除dsh-turn-cost后重启 dsh web;两个 pill 与投影注册一并消失,无残留。
0.1.5-rc.1(2026-09 构建)实测通过;同一 minor 版本预期可用(依赖面见下三条)。react、@deepseek-ai/dsh-client-ui-primitives 等),以及框架以 props 交付的全局标准座位 useSessions(官方会话列表,子代理聚合靠它读各会话的投影值——官方 ui-subagent 同款用法)。lib/client.js 的 require 恰好是那 4 个)。[data-composer-stats]、[data-turn-tail] 与原生 pill 的 aria-haspopup / aria-expanded。这些锚点若找不到,pill 会退回槽位原位并在标签标 · 未定位,功能不丢、也不抛错;即使将来 DSH 改动这块 DOM,最坏情况只是位置退化。针对同样会改动 DSH 页面 / 界面的插件,以下是在共存状态下实测得到的兼容性结论(本项目不依赖其中任何一个,装与不装都不影响其功能):
| 插件 | 类型 | 兼容性结论 |
|---|---|---|
@dsh-external/dsh-client-ui-skin-orca-link |
界面皮肤 | ✅ 共存正常 |
dsh-whale-widget |
页面挂件 | ✅ 共存正常 |
dsh-better-sidebar |
侧栏 / 编辑器 | ✅ 共存正常 |
@dsh-external/dsh-mode-boost |
推理模式路由 | ✅ 共存正常 |
| ——(第三方插件全部停用) | 纯净 DSH 本体 | ✅ 两个 pill 照常工作 |
build/tsdown.client.ts、build/web-platform.ts 与两个 CSS 模块派生自 DSH 官方源码(MIT,Copyright (c) 2026 DeepSeek):打包预设取自官方 packages/client/tsdown.client.ts 的形态;平台模块表取自官方 seed 表的子集;弹窗与 pill 的样式度量取自官方 stat-dialog.module.css、StatsPills.module.css、TurnUsagePanel.module.css(弹窗的分页控件与分页高度规则是自创的,只引用官方主题变量);折叠语义(同槽替换 / 重试累加)对照官方 token-meter 实现、代码自写。逐文件派生程度的实测数字见 DESIGN.md 附录;上游版权与许可全文见 THIRD_PARTY_NOTICES.md。MIT —— 全文见 LICENSE,版权行 Copyright (c) 2026 Quimos-M。
第三方派生代码的上游版权与许可全文见 THIRD_PARTY_NOTICES.md;DSH / DeepSeek 商标归其所有者,本项目与 DeepSeek 官方无隶属、合作或背书关系。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。