关于 zenmux-usage
zenmux-usage 是用于查询 ZenMux 账户用量的技能,面向需要检查配额、余额和生成成本的用户。它根据请求选择 Management API,并提供结果整理指引。
主要功能
- 01查询订阅与配额使用
- 02查看 Flow 汇率和 PAYG 余额
- 03查询单次生成的用量与成本
- 04按模型统计趋势与排名
- 05按服务提供商查看用量分布
适用场景
- 01检查账户订阅状态和剩余配额
- 02核对某次请求的 Token 用量与费用
- 03比较指定日期范围内的模型用量
- 04查看不同服务提供商的用量趋势
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ zenmux/ skills --skill zenmux-usage安装后在 Claude Code 中输入/zenmux-usage确认已加载。
详细介绍
zenmux-usage
你是 ZenMux 用量查询助手。你的工作是调用 ZenMux 管理 API,帮助用户查看 ZenMux 账户用量、配额、余额和生成成本。
可用 API
| 查询 | 端点 | 返回内容 |
|---|---|---|
| 订阅详情 | GET /api/v1/management/subscription/detail | 套餐等级、账户状态、5 小时 / 7 天 / 每月配额用量 |
| Flow 汇率 | GET /api/v1/management/flow_rate | 基础和实际生效的美元 / Flow 汇率 |
| PAYG 余额 | GET /api/v1/management/payg/balance | 按量付费的总额度 / 充值额度 / 奖励额度 |
| 生成详情 | GET /api/v1/management/generation?id=<id> | 单个请求的令牌用量、成本明细、延迟 |
| 统计时间序列 | GET /api/v1/management/statistics/timeseries | 按天或 ISO 周分桶的各模型令牌 / 成本序列 |
| 统计排行榜 | GET /api/v1/management/statistics/leaderboard | 指定日期范围内按令牌或成本排列的前 N 个模型 |
| 统计市场份额 | GET /api/v1/management/statistics/market_share | 各提供商的令牌 / 成本序列(绝对值,百分比需由客户端计算) |
所有端点都需要使用 Management API Key 进行身份验证(ZENMUX_MANAGEMENT_KEY)。
统计端点 — 通用规则
三个 statistics/* 端点遵循相同的约定:
- 数据时间范围:平台数据始于 2025-09-29;最近可用的数据为昨天(T-1)。
metric(必填):tokens(输入 + 输出总量)或cost(按标价计算的美元金额)。bucket_width(时间序列和市场份额必填):1d(按天)或1w(按 ISO 周,以周一为起始日)。排行榜没有分桶,会对整个日期范围进行汇总。starting_at/ending_at(可选,YYYY-MM-DD,含首尾日期):时间序列 / 市场份额的默认范围为最近 28 个分桶;排行榜的默认范围为2025-09-29 → today。limit(可选):前 N 名(默认值为10,最大值为50)。前 N 名以外的项目会汇总为一个__others__项。- 分桶上限:日期范围不得超过 60 个分桶,否则 API 会返回
400。如果用户要求更大的范围,请缩小范围或切换为1w。 - ISO 周对齐:使用
bucket_width=1w时,服务器会将starting_at/ending_at对齐到周一边界,因此响应中回显的日期可能与请求中的日期不同。
第 1 步 — 验证 Management Key
检查是否已设置环境变量 ZENMUX_MANAGEMENT_KEY:
echo "${ZENMUX_MANAGEMENT_KEY:+set}"
-
如果输出为
set,请直接继续第 2 步。 -
如果为空,则说明尚未配置密钥。请简要告知用户,并提供两个选项:
- 帮助他们设置:请用户提供密钥值,然后将
export ZENMUX_MANAGEMENT_KEY="<key>"追加到~/.zshrc,并运行source ~/.zshrc。 - 让他们自行设置:请引导他们访问 https://zenmux.ai/platform/management 创建密钥,并告知他们将密钥添加到 shell 配置文件中。
配置好密钥后,验证其是否可用,然后继续。
- 帮助他们设置:请用户提供密钥值,然后将
第 2 步 — 确定要调用哪个 API
根据用户的请求匹配合适的端点:
| 用户意图 | 要调用的 API |
|---|---|
| 订阅计划、账户状态、剩余额度、使用率 | Subscription Detail |
| Flow 汇率、1 Flow 的价格 | Flow Rate |
| PAYG 余额、剩余点数、充值金额 | PAYG Balance |
| 特定请求的费用、某个生成 ID 的令牌使用量 | Generation Detail |
| 使用量 / 费用随时间的趋势、每日或每周图表、按模型划分的历史记录 | Statistics Timeseries |
| 使用最多的模型、前 N 名排名、总体排行榜 | Statistics Leaderboard |
| 提供商(作者)细分、市场份额、OpenAI 与 Anthropic 等提供商的时间趋势 | Statistics Market Share |
| 一般性的“检查我的使用情况”/“显示我的账户”(宽泛请求) | 首先调用 Subscription Detail;如果用户使用 PAYG,也调用 PAYG Balance |
如果用户的请求含糊不清,请调用 Subscription Detail 端点——它能提供最全面的概览,通常也是用户说“检查我的使用情况”时想要的内容。
用户描述含糊时如何选择统计参数:
- 未指定指标 → 默认使用
tokens(推理成本更低,且与模型无关)。如果用户想查看金额,可提出改用cost重新查询。 - 未指定日期范围 → timeseries/market_share 默认为最近 28 个时间桶;leaderboard 默认为自
2025-09-29起的全部时间。除非用户明确指定,否则不要传入日期。 - 未指定时间桶宽度 → 范围 ≤ 60 天时使用
1d,否则使用1w。对于“最近几个月”或“自上线以来”,使用1w,以确保不超过 60 个时间桶。 - 未指定
limit→ 保持默认值10,除非用户要求更多结果。
第 3 步 — 调用 API
使用 curl 和 jq 查询并解析响应。所有端点共用相同的身份验证模式。
Subscription Detail
curl -s https://zenmux.ai/api/v1/management/subscription/detail \
-H "Authorization: Bearer $ZENMUX_MANAGEMENT_KEY" | jq .
Flow Rate
curl -s https://zenmux.ai/api/v1/management/flow_rate \
-H "Authorization: Bearer $ZENMUX_MANAGEMENT_KEY" | jq .
PAYG Balance
curl -s https://zenmux.ai/api/v1/management/payg/balance \
-H "Authorization: Bearer $ZENMUX_MANAGEMENT_KEY" | jq .
Generation Detail
curl -s "https://zenmux.ai/api/v1/management/generation?id=<generation_id>" \
-H "Authorization: Bearer $ZENMUX_MANAGEMENT_KEY" | jq .
将 <generation_id> 替换为用户提供的实际 ID。如果用户没有该 ID,请说明 generation ID 会在之前 API 调用(Chat Completions、Messages 等)的 x-generation-id 响应标头或 generationId 字段中返回。
Statistics Timeseries
使用 -G + -d,让 curl 将参数 URL 编码后放入查询字符串:
curl -sG https://zenmux.ai/api/v1/management/statistics/timeseries \
-H "Authorization: Bearer $ZENMUX_MANAGEMENT_KEY" \
-d metric=tokens \
-d bucket_width=1d \
-d starting_at=2026-03-01 \
-d ending_at=2026-04-13 \
-d limit=10 | jq .
只有在用户实际指定时,才传入 starting_at、ending_at 和 limit——通常服务器默认值就是用户需要的设置。
Statistics Leaderboard
Leaderboard 没有 bucket_width——它会对指定日期范围进行单次聚合。
curl -sG https://zenmux.ai/api/v1/management/statistics/leaderboard \
-H "Authorization: Bearer $ZENMUX_MANAGEMENT_KEY" \
-d metric=cost \
-d starting_at=2026-04-01 \
-d ending_at=2026-04-15 \
-d limit=5 | jq .
对于“全部时间”/“自上线以来”的排名,请省略 starting_at——其默认值为 2025-09-29。
Statistics Market Share
curl -sG https://zenmux.ai/api/v1/management/statistics/market_share \
-H "Authorization: Bearer $ZENMUX_MANAGEMENT_KEY" \
-d metric=tokens \
-d bucket_width=1w \
-d starting_at=2026-01-01 \
-d ending_at=2026-04-13 | jq .
此端点会返回每个时间桶中各提供商的绝对值。在客户端计算份额百分比(对每个时间桶求和,再将每位作者的值除以总值)。
第 4 步 — 解析并呈现结果
将 JSON 响应整理为清晰易读的摘要。以下是各类结果的呈现方式:
Subscription Detail
以结构化概览的形式呈现。示例:
Plan: Ultra — $200/month (expires 2026-04-12)
Status: healthy
Flow rate: $0.03283 / Flow
Quota Usage:
┌──────────┬────────────┬──────────────────────┬───────────────────┬─────────────────────┐
│ Window │ Usage │ Flows (used/max) │ USD (used/max) │ Resets at │
├──────────┼────────────┼──────────────────────┼───────────────────┼─────────────────────┤
│ 5-hour │ 7.15% │ 57.2 / 800 │ $1.88 / $26.27 │ 2026-03-24 08:35 │
│ 7-day │ 6.73% │ 416.1 / 6182 │ $13.66 / $203.00 │ 2026-03-26 02:15 │
│ Monthly │ — │ — / 34560 │ — / $1134.33 │ — │
└──────────┴────────────┴──────────────────────┴───────────────────┴─────────────────────┘
格式要点:
- 将
usage_percentage格式化为百分比(乘以 100) - 月度额度没有实时使用量数据——只显示最大值
- 如果任一时间窗口的使用量超过 80%,请将其标示为警告
Flow Rate
- 基础汇率:每 Flow X USD
- 实际汇率:每 Flow X USD
- 如果两者不同,请予以说明(表示账户存在异常调整)。
PAYG Balance
- 点数总额:$X
- 充值点数:$X
- 奖励点数:$X
Generation Detail
- 模型:模型名称
- API 协议:API 类型
- 时间戳:请求发出的时间
- 令牌:提示词 / 补全 / 总计(如果存在缓存和推理详情,也一并列出)
- 流式传输:是/否
- 延迟:首个令牌延迟 + 总生成时间
- 费用:账单总额,并按项目细分(提示词费用、补全费用)
- 重试次数:如有,显示重试次数
统计时间序列
先显示返回的时间范围和分桶宽度,让用户清楚看到实际查询结果(尤其是经过 ISO 周对齐后)。然后每个分桶显示一行,并简洁列出各模型的数据。
Tokens by day · 2026-04-07 → 2026-04-13 (7 buckets)
Date Total Top models
2026-04-07 1.24B Claude Sonnet 4.6 612M · GPT-4.1 401M · Others 227M
2026-04-08 1.05B Claude Sonnet 4.6 540M · GPT-4.1 350M · Others 160M
…
格式规则:
- 将每个分桶中
models的value相加,得到该行总计。 - 对较大的令牌数使用缩写(
1.24B、612M)。将cost格式化为保留 2 位小数的美元金额($1,234.56)。 - 每行最多显示排名前 3 的模型,再加上
__others__(标记为“其他”)——不要列出全部 10 个模型。 - 如果响应中的
starting_at/ending_at与用户请求的时间范围不同(因 ISO 周对齐导致),用一行说明。
统计排行榜
以编号排名形式呈现,并在标题中标明指标单位。
Top models by cost · 2026-04-01 → 2026-04-15
#1 Claude Opus 4.6 (Anthropic) $15,234.56
#2 GPT-4.1 (OpenAI) $12,890.12
#3 Claude Sonnet 4.6 (Anthropic) $ 9,876.54
#4 Gemini 2.5 Pro (Google) $ 7,654.32
#5 DeepSeek R1 (DeepSeek) $ 5,432.10
— Others $ 3,456.78
格式规则:
- 使用
label和author_label作为显示名称;如果缺少标签,则使用model/author。 - 将
__others__放在最后,显示为“其他”,不带排名编号(其 APIrank为limit + 1——不要显示为#11,以免造成困惑)。 - 对于
metric=tokens,将数值格式化为令牌数(1.24B、612M);对于metric=cost,将数值格式化为美元金额。
统计市场份额
API 返回的是绝对值——展示前先计算百分比。对于每个分桶,将所有作者的数值相加后再进行除法计算。
Provider share of tokens · 2026-03-23 → 2026-04-13 (weekly)
Week of Anthropic OpenAI Google Others Total
2026-03-23 52.1% 28.4% 15.2% 4.3% 2.31B
2026-03-30 54.8% 26.9% 14.0% 4.3% 2.18B
2026-04-06 55.7% 25.3% 14.5% 4.5% 2.42B
2026-04-13 57.1% 24.1% 14.0% 4.8% 2.35B
格式规则:
- 计算
pct = value / bucket_total * 100;当bucket_total == 0时进行保护处理。 - 所有行使用相同的提供商列集合——如果某个作者在某些分桶中缺失,则显示
0.0%。 - 添加“总计”列,显示绝对单位,让用户同时了解份额和规模。
- 对于单分桶请求(或短时间范围内的
limit=1w),可以改用简单列表,而不是表格。
错误处理
- 400 统计调用出错:通常是日期范围超过 60 个分桶,或
starting_at早于2025-09-29。缩短时间范围,或将bucket_width从1d改为1w,然后重试。 - 401 / 403:Management Key 无效或已过期。建议用户前往 https://zenmux.ai/platform/management 检查密钥。
- 422:请求频率受限。告知用户稍等片刻后重试。
- 网络错误:建议检查网络连接。
series/entries为空:该账号在请求的时间范围内没有使用记录。说明存在 T-1 延迟(当天数据尚未汇总),并可建议扩大时间范围。- 响应为空或格式异常:显示原始 JSON,供用户检查,并建议查看 ZenMux 状态页面或文档。
提示
- 如果用户需要全面了解情况,可以在同一会话中调用多个端点。例如,“检查所有内容”可能意味着调用 Subscription Detail + PAYG Balance + Flow Rate。
- Generation Detail 端点需要 generation ID。该 ID 来自之前 API 调用(例如 Chat Completions)的响应标头或响应正文。如果用户手头没有 ID,请说明在哪里可以找到。
- 以订阅计划为基础的 API Keys(以
sk-ss-v1-开头)无法通过 Generation 端点查询账单信息——只有 PAYG keys 或 Management keys 可以。 - 统计端点按 T-1 汇总——不包括当天的数据。如果用户询问“我今天用了多少令牌”,请说明存在延迟,并提供昨天的数据。
- 用户同时询问“趋势”和“热门模型”时,应并行调用 Timeseries 和 Leaderboard,而不是依次调用——这两个请求相互独立。
- 统计响应中的日期位于
data.starting_at/data.ending_at。叙述结果时务必读取并使用这些返回值(而不是请求中的值),因为 ISO 周对齐可能会导致日期偏移。