feat: Snapshot-Offset 限额策略替换 BUFFER 盲猜

核心改动:不再用 BUFFER 猜滞后窗口消耗,而是用同步时点快照
 直接计算累计限额。

- BUFFER=300000 → SMALL_BUFFER=50000(仅覆盖非消耗性跳降)
- get_effective_limit: limit = B0 - SMALL_BUFFER,不依赖 current_usage
- 同步循环:写 balance_at_sync + usage_at_sync 替代 remaining/stable_limit
- 突发检测/低额度判断:读 balance_at_sync 替代 remaining
- volc_consume.py: vls.BUFFER → vls.SMALL_BUFFER
- debug/debug_volc_sync.py: 同步更新
- docs/volc-quota-notes.md: 新增 §7.6 v6 设计文档,更新各节口径
This commit is contained in:
vibe-code
2026-08-12 12:22:22 +00:00
parent 97484cb7f8
commit 23778a8f7c
4 changed files with 169 additions and 171 deletions
+3 -3
View File
@@ -429,7 +429,7 @@ def run_consume_model(model, source_groups, order, packages=None, dry_run=False)
对单个监控模型执行"洗过期包"消耗。
目标 = Σ窗口内包计划(均分×1.1/冲刺),clamp:
- 采集上限:plan ≤ CONSUME_DAILY_CAP − 当日已消耗
- 防扣费:plan ≤ 余额快照 − BUFFER
- 防扣费:plan ≤ 余额快照 − SMALL_BUFFER
停止条件(每轮检查):daily_usage ≥ 2M / 余额快照−已烧 ≤ 0 / 已烧 ≥ plan
:param packages: 复用 run_consume_all 的一次拉包结果;None 时自行拉取
"""
@@ -451,8 +451,8 @@ def run_consume_model(model, source_groups, order, packages=None, dry_run=False)
usage_now = _current_daily_usage(model)
# clamp 1: 采集上限(超出部分不返还,白烧)
plan = min(plan, CONSUME_DAILY_CAP - usage_now)
# clamp 2: 余额快照 − BUFFER(脚本自身不烧穿余额,防扣费)
plan = min(plan, max(0, balance - vls.BUFFER))
# clamp 2: 余额快照 − SMALL_BUFFER(脚本自身不烧穿余额,防扣费)
plan = min(plan, max(0, balance - vls.SMALL_BUFFER))
plan = int(max(0, plan))
if plan < CONSUME_MIN_PLAN: