Architecture & Billing

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 会话循环前立刻拦截:

  1. 强行抛出 BillingError 并在控制台高亮指示。
  2. 友好降级提示:引导用户通过 /model 切换回免费的本地 fallback 模型提供商,避免会话卡死在循环中。