Token 用量与计费

wesgine 提供细粒度的 Token 用量查询与计费集成机制。


Token 用量记录

记录维度

每次 LLM 调用自动记录:

维度说明
cell_id所属 Cell
provider使用的 Provider
model使用的模型
input_tokens输入 Token 数
output_tokens输出 Token 数
tags自定义标签(含 actor)
session_id关联 Session
agent_id关联 Agent

查询 API

Token 用量查询

GET /cells/{id}/observe/token-usage
    ?group_by=model
    &from=2026-09-01
    &to=2026-09-14
    &model=claude-4
    &session=s1
    &tags=actor:alice

支持 GroupBy:

Token 用量摘要

GET /cells/{id}/observe/token-summary

返回聚合摘要数据。

按 Agent/Day 聚合

GET /cells/{id}/observe/token-usage/aggregate
    ?agent=agent-legal
    &group_by=day
    &days=30

Actor 边界

查询隔离

Token 用量查询遵循 Actor 边界(INV-OBS-08):

调用方行为
普通用户只看自己的用量
admin可跨 Actor 查看

?actor= 参数只对 admin token 生效。


计费集成

三层架构

层职责
wesgine记录 raw token(cell_id, provider, model, in/out)
产品本地 Observe 读 token
weisyn 平台费率表 + 代理结算 + 钱包扣费

WES 代理结算

WES 模型的计费由平台 LLM Proxy 的 SettleProxy 负责:

用户请求 → wes: Provider → weisyn LLM Proxy
                          → 转发到上游 LLM
                          → SettleProxy 记录用量
                          → 扣费到用户钱包

产品层不做 post-run settle(INV-BILLING-05)。

BYOK 计费

自有 API Key 的用量:


INV-BILLING 不变量

INV-BILLING-01

平台 wes: 模型访问权 = UserStatus + LLM Proxy:

条件访问
UserStatus=Active + JWT 有效✅ 允许
UserStatus=Inactive❌ 拒绝

INV-BILLING-02

Token refresh 检查 UserStatus:

状态JWTbilling_active
Active签发true
Inactive签发(身份用)false

INV-BILLING-03

LLM Proxy 在转发前检查 UserStatus:

Active=false → 403 wes: 路径

Fail-closed。org: 不走个人钱包门。

INV-BILLING-04

BillingRequired=true 的 provider,JWT 过期后上游返回 401:

SequentialFallbackResolver → 正常 fallback 到 BYOK

INV-BILLING-05

应用层不做 billing pre-check,也不做 post-run settle:

职责归属
EnforcementWES 凭证生命周期 + 平台咽喉层
记录平台代理 SettleProxy

跨 Cell 用量

Admin 聚合

GET /admin/observe/per-cell-stats
    ?cell=dept-legal,dept-audit

Hypervisor 层提供跨 Cell 只读聚合视图。


在各产品中的使用

wescode

wesclaw

企业版


注意事项