Skip to content

fix(aiops): stop model calls when token budget is exceeded - #458

Open
shentry wants to merge 1 commit into
ongridio:mainfrom
shentry:codex/fix-agent-token-budget
Open

shentry wants to merge 1 commit into
ongridio:mainfrom
shentry:codex/fix-agent-token-budget

Conversation

@shentry

@shentry shentry commented Oct 1, 2026

Copy link
Copy Markdown

Summary

修复 Agent 已被 Token 预算回调拒绝、却仍继续调用模型的问题。图执行层现在在 Generate / Stream 入口返回预算错误,普通推理和工具预算耗尽后的总结都在底层模型执行前停止。

BudgetCallback.OnStart
  → 超额:标记拒绝
  → ChatModel 包装器:返回 ErrBudgetExceeded
  → 底层模型调用次数 = 0

Closes #457

Evidence

  • Before: 新增回归测试的 4 个超预算场景均失败:预算拒绝后仍调用模型 1 次,且未返回错误。
    After: TestBuildReActGraph_TokenBudgetStopsModelCalls 的 10 个场景全部通过,覆盖 Invoke / Stream、普通推理 / 工具熔断总结、额度充足 / 无限额;拒绝场景断言底层模型调用为 0。
  • 通过:go test -race ./internal/pkg/llm ./internal/manager/biz/aiops/graph/... ./internal/manager/biz/aiops/chatruntime ./internal/manager/biz/aiops/tools/decorators。
  • 通过:相关包 go vet、Manager 构建、make test-commit-policy、git diff --check。
  • 本机 macOS 全量验证限制:make build 的 Edge 阶段缺少平台实现;make test-race 遇到相同 Edge 编译限制,以及未修改的 TestValidateEntry_DestWhitelist 路径大小写失败和 TestProbeDNS_Execute_Unresolvable 被本机 DNS 解析到地址的失败。全量 Linux 结果以 CI 为准。

Merge Danger

Door: two-way

可回退此提交。配置了 Token 额度的部署在预算拒绝后会立即停止模型请求,并沿用现有预算错误提示。

Blast Radius: Agent

Author confirmation

@shentry
shentry requested a review from singchia as a code owner October 1, 2026 13:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Agent token budget rejection does not stop model calls

1 participant