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:
model— 按模型聚合agent— 按 Agent 聚合session— 按会话聚合day— 按天聚合tag:actor— 按 Actor 聚合
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 的用量:
- wesgine 本地记录
- 不上报平台
- 费用由用户直接承担
INV-BILLING 不变量
INV-BILLING-01
平台 wes: 模型访问权 = UserStatus + LLM Proxy:
| 条件 | 访问 |
|---|---|
| UserStatus=Active + JWT 有效 | ✅ 允许 |
| UserStatus=Inactive | ❌ 拒绝 |
INV-BILLING-02
Token refresh 检查 UserStatus:
| 状态 | JWT | billing_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:
| 职责 | 归属 |
|---|---|
| Enforcement | WES 凭证生命周期 + 平台咽喉层 |
| 记录 | 平台代理 SettleProxy |
跨 Cell 用量
Admin 聚合
GET /admin/observe/per-cell-stats
?cell=dept-legal,dept-audit
Hypervisor 层提供跨 Cell 只读聚合视图。
在各产品中的使用
wescode
- 按 workspace Cell 统计用量
- 切换 workspace = 切换用量视图
- 前端 Token 面板(wesui TokenSummaryGrid)
wesclaw
- 桌面版:单用户单 Cell 用量
- SaaS 版:按 actor 分别统计
- 状态栏显示 WES 余额
企业版
- 按部门 Cell 出账
- 管理面板跨部门统计
- 支持部门级配额
注意事项
- Token 用量自动记录,无需应用层干预
- 查询遵循 Actor 边界
- WES 计费由平台 Proxy 层处理
- 应用层不做 billing pre-check
- BYOK 用量只在本地记录
- 跨 Cell 聚合需要 admin 权限