mcpField
Z
zenmux-usage

zenmux-usage

github.com/zenmux数据与数据库20401 次安装6 周前更新
代码仓库

关于 zenmux-usage

zenmux-usage 是用于查询 ZenMux 账户用量的技能,面向需要检查配额、余额和生成成本的用户。它根据请求选择 Management API,并提供结果整理指引。

主要功能

  1. 01查询订阅与配额使用
  2. 02查看 Flow 汇率和 PAYG 余额
  3. 03查询单次生成的用量与成本
  4. 04按模型统计趋势与排名
  5. 05按服务提供商查看用量分布

适用场景

  1. 01检查账户订阅状态和剩余配额
  2. 02核对某次请求的 Token 用量与费用
  3. 03比较指定日期范围内的模型用量
  4. 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 步。

  • 如果为空,则说明尚未配置密钥。请简要告知用户,并提供两个选项:

    1. 帮助他们设置:请用户提供密钥值,然后将 export ZENMUX_MANAGEMENT_KEY="<key>" 追加到 ~/.zshrc,并运行 source ~/.zshrc。
    2. 让他们自行设置:请引导他们访问 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__ 放在最后,显示为“其他”,不带排名编号(其 API rank 为 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 周对齐可能会导致日期偏移。

评论

支持 Markdown