Run 预算管理
wesgine Run 的预算检查与外部商业限制集成。
预算检查机制
BudgetCheckFn
外部预算检查函数,在 Run 循环的每一轮调用:
type BudgetCheckFn func(ctx context.Context, usage BudgetUsage) BudgetStatus
BudgetStatus 返回值
| 状态 | 含义 | 行为 |
|---|---|---|
OK | 预算充足 | 继续 Run |
Warning | 接近上限 | 继续但记录警告 |
Exhausted | 预算耗尽 | 终止 Run |
与 Run 终止的关系
BudgetCheckFn 返回 Exhausted 是 Run 的合法终止来源之一(INV-TERM-01)。
这是外部商业限制,不是引擎内的 counter 阈值——引擎不因 counter 阈值主动终止。
一次性宽限调用
_budget_grace_call 机制:
- 预算用尽后给 AI 最后一次机会
- 用于保存进度、完成当前步骤
- 只有一次,不重置预算计数
预算使用查询
Token 用量查询
GET /cells/{id}/observe/token-usage
支持多维过滤:
- GroupBy: model / agent / session / day / tag:actor
- Tags / Model / Session / From / To
Token 用量聚合
GET /cells/{id}/observe/token-summary
返回聚合摘要。
按 Agent/Day 聚合
GET /cells/{id}/observe/token-usage/aggregate
参数:?agent=&group_by=day&days=
产品集成
| 产品 | 预算来源 |
|---|---|
| wescode | 无外部预算限制(个人工具) |
| wesclaw | weisyn 平台钱包余额 |
| wescraft | 个人版无限制,团队版按 Cell |
| teleclaw | 企业客户自定义配额 |
与 INV-BILLING 的关系
| ID | 规则 |
|---|---|
| INV-BILLING-01 | 平台 wes: 访问权 = UserStatus + LLM Proxy |
| INV-BILLING-05 | 应用层不做 billing pre-check |