AGC 工具错误诊断丢失 clientTurnId,余额不足与参数错误被统一标为可重试 #554
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
问题
内置工具错误持久化时固定传入 clientTurnId=None,并将预算相关三类之外的错误几乎全部标为 retryable=true。并发排障失去回合关联;余额不足、非法参数等在条件不变时不会恢复的错误也呈现为可重试。
跨项目证据
心情花园四季记-r2/.agent/runtime/errors/error-1790743232098516700-11.json:npm install 被验证工具 allowlist 拒绝,仍为 retryable=true;对应 canonical 第 30–31 行具有调用身份。策划项目 d359afb3-r22的error-1790673149984864400-1.json、error-1790673152554337500-2.json:明确「泥点余额不足」,但仍为 tool-error/retryable=true/clientTurnId=null。tool-calls.jsonl:34、35可关联原回合。没有证据表明这些样本因 retryable 字段触发自动重试风暴;本项是确定的诊断与恢复分类缺陷,不虚构重复扣费。
当前代码
agent/direct_tool_bridge.rs:3103至第 3134 行:只有三个预算/互斥相关 code 单独分类;第 3119 行传 None,第 3123–3128 行计算宽泛 retryable,metadata 仅保存 tool。agent/direct_turn_error.rs:736附近已有余额等分类,可核对并复用现有语义,避免新增另一套不一致规则。验收
核查范围
2026-09-30 对九份项目导出做只读审计,代码基线
3540c5660fd294b70e054810b5384a2855908df5。本 Issue 仅登记问题,尚未实施修复。未重放项目付费操作,不提交原始会话、凭据或本地私密绝对路径。已排除 #529、#525、#518;偶发 Provider/网络错误不作为新增缺陷。emm 换成更具体的报错呢??(比如请充值) 或者在每个tool那返回面向llm的报错信息???