Provider 策略
wesgine 的四种 Provider 选择策略与三种归属模式。
三种归属
| 归属 | 管理者 | 范围 |
|---|---|---|
| Hyp:Shared | Hypervisor | 所有 Cell 共享 |
| Hyp:Named | Hypervisor | 按名字被 Cell 引用 |
| Cell:Private (BYOK) | Cell | 仅限该 Cell |
四种策略
| 策略 | 含义 |
|---|---|
own_only | 只用 Cell 私有 Provider |
shared_only | 只用 Hypervisor 共享池 |
own_first | 优先私有,fallback 共享 |
shared_first | 优先共享,fallback 私有 |
自动推导
单侧池非空时自动推导:
- private-only →
own_only - shared-only →
shared_only
两侧皆非空时必须显式声明,否则 ErrProviderStrategyUnset。
Provider 接口
type Provider interface {
Stream(ctx context.Context, cellID string, req Request) (Stream, error)
}
每次调用带 cellID:
- per-cell 健康追踪
- per-cell 速率限制
- per-cell 使用量记录
各产品典型配置
| 产品 | 策略 | 理由 |
|---|---|---|
| wescode | own_only | 个人 API key |
| wesclaw 桌面 | own_only | 个人版 |
| wesclaw SaaS | shared_first | 平台 + 用户 BYOK |
| teleclaw 法务 | own_only | 合规要求 |
| teleclaw 业务 | shared_only | 共享资源 |
Billing 联动
Provider 类型决定计费路径:
- WES(
wes:)— 平台代理计费 - Org(
org:)— 组织账户计费 - BYOK(
byok:)— 用户自有 key,不计费
INV-BILLING-04:BillingRequired=true 的 provider,JWT 过期后 fallback 到 BYOK。