Skip to content

AntigravityGatewayService.ForwardGemini 未清理 thinking block signatures 导致上游 400 #935

@envygit-bot

Description

@envygit-bot

Bug 描述

通过 /antigravity/v1beta/ 端点使用 antigravity 账号请求 Gemini 模型时,上游频繁返回 400 Corrupted thought signature

同样的 thinking block signature 问题在 Claude 端点(GatewayService.Forward)已有完整的检测+重试+降级逻辑,但 Gemini 端点(AntigravityGatewayService.ForwardGemini)缺失了对应的处理

复现路径

  1. 使用 antigravity 组的 API key
  2. 通过 Gemini CLI 请求 /antigravity/v1beta/models/gemini-3.1-pro-preview:streamGenerateContent
  3. 请求中包含多轮对话上下文(可能携带 Claude thinking block 签名数据)
  4. 上游返回 400 Corrupted thought signature

日志证据

Gemini 端点 — 无清理,直接 400 ❌

[antigravity-Forward] upstream error status=400 body={
  "error": {
    "code": 400,
    "message": "Corrupted thought signature.",
    "status": "INVALID_ARGUMENT"
  }
}
  at antigravity_gateway_service.go:2232

该错误在短时间内密集出现(17:31:02 ~ 17:33:46 期间 20+ 次),每次都直接返回 400 给客户端。

Claude 端点 — 有检测+重试+降级 ✅

同一时间段,Claude 端点遇到相同的 signature 问题时处理得很好:

[SignatureCheck] Checking error message: messages.1.content.0: invalid `signature` in `thinking` block
[SignatureCheck] Detected signature error
Account 51: detected thinking block signature error, retrying with filtered thinking blocks
Account 51: signature error retry succeeded (thinking downgraded)
  at gateway_service.go:4122 ~ 4135

对比分析

端点 处理函数 signature 检测 thinking block 清理 重试降级
/v1/messages (Claude) GatewayService.Forward isThinkingBlockSignatureError (L5543) ✅ filtered thinking blocks (L4122) ✅ retry succeeded (L4135)
/antigravity/v1beta/ (Gemini) AntigravityGatewayService.ForwardGemini

建议修复

AntigravityGatewayService.ForwardGeminiantigravity_gateway_service.go:2232 附近)增加与 GatewayService.Forward 相同的逻辑:

  1. 检测上游 400 是否为 Corrupted thought signature 错误
  2. 清理请求中的 thinking block signatures
  3. 重试请求

环境信息

  • sub2api 版本:v0.1.86
  • 平台:antigravity
  • 模型:gemini-3.1-pro-preview(mapped → gemini-3.1-pro-high)
  • 客户端:Gemini CLI

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions