Credits 计费追踪与额度耗尽强力拦截
解密 agent/credits_tracker.py 中额度初始化、超支断流与合成提示机制
📊 图 1-2-1:AIAgent 内核决策与会话循环控制流
💳 1. Credits 额度初始化与本地缓存
为了保障用户的 API 消费安全,在 agent/credits_tracker.py 中实现了本地余额对齐机制:
会话首次启动时执行 seed_credits_at_session_start(agent),通过服务端 Oauth 认证拉取最新额度并写入 SessionDB,防止冷启动网络波动引起的计费失准。
📊 图 1-2-2:计费异常校验、429 速率受限与退避延迟时序图
🚫 2. 额度耗尽强力拦截与用户提示
当本地计费计数器超出可用余额限额时,credits_tracker 会在进入 LLM 会话循环前立刻拦截:
- 强行抛出 BillingError 并在控制台高亮指示。
- 友好降级提示:引导用户通过
/model切换回免费的本地 fallback 模型提供商,避免会话卡死在循环中。