Skip to content

SuperAI Agent v0.2.31

Choose a tag to compare

@github-actions github-actions released this 31 Aug 12:05

SuperAI Agent v0.2.31

被代理拦截时的报错,现在短得多、也直接告诉你该怎么做。

改进

  • 报错不再是一大片红色的 HTML:此前会原样截取响应正文的前 300 个字符,而企业代理那张过滤页的前 300 个字符全是样板内容——字符集声明、样式表链接、<script> 开头——真正有用的「URL过滤」和「access denied」反而被截断在外。现在改为提取页面标题与可见文字(去掉脚本、样式与标签),同样的信息一行就能看完。

    改前  body_text="<html><head> <meta http-equiv=\"Content-Type\" content=\"text/html;
          charset=utf-8\"> <title>URL过滤</title> <link href=\"../css/terminal.css\"
          rel=\"stylesheet\" type=\"text/css\"> <script language=\"JavaScript\"..."
    
    改后  body_title="URL过滤"; body_text="access denied"
    

    body_len 仍然如实报告原始长度——这个数字正是识别该页面的指纹。

  • 报错先说当下能做的那一步:这类拒绝是间歇性的,同一个请求过一会儿就能正常返回。此前的提示只给了两条建议——找 IT 把服务商域名加白名单,或换一个网络允许的服务商;两条都没错,但都不是「接下来五秒钟能做的事」。现在会先说明「本应用已经自动重试过,再发一次通常就能通过」,然后才是那两条较慢的办法。测试固定的是这两句话的先后顺序,而不只是它是否存在。

明确没有做的两件事

  • 调整拦截页的重试次数上限:基于用户 29 份日志的实测——9 次兜底重试中 5 次成功、4 次失败;按重试次数拆分:0 次重试 4 成功/2 失败,1 次重试 1 成功/0 失败,2 次重试 0 成功/2 失败。第三次尝试从未挽救过任何一次,这其实支持把上限调低以减少约 45 秒的等待——但该结论仅建立在 2 个样本之上,因此维持原状。

  • 每次重试强制新建连接:连接默认是复用的,因此重试可能仍然走同一条隧道、落到同一个代理节点,这能解释「重试同一个请求往往无效」。机制上说得通,但在本地无法验证,故不予改动。

一个被推翻的推测(记录在此)

请求体积一度看起来就是原因:连续四轮分别是 1,915 tokens 正常,随后 27,683 / 27,927 / 28,170 全部失败,且与长期存在的「发短消息总能成功」现象吻合。但把全部 38 轮统计下来后该结论不成立:正常轮次中位数 29,714,出错轮次中位数 27,927,且 30k 以上的分组反而大多正常。那四行数据只是巧合。

验证情况

共 36 项测试通过,新增 4 项。两处新增防护均经过「故意改坏使其失败」的验证:关掉标签剥离会让可读性测试失败,删掉那句可操作的提示会让顺序测试失败。另有两项旧断言按新文案做了更新——文案变更是有意为之,因此直接改写断言,而不是绕开它。

按测试名与重新生成的基线比对,出现一项 WebSocket Chat Integration;已确认为负载敏感的不稳定用例:该文件在改动前后单独运行均为 22 通过 / 0 失败,且本次改动不涉及任何 WebSocket 相关代码。