前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片NEW
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 业务场景题真实业务问题与追问
  • 查漏补缺常见问题解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
    • AI 定制路线NEW按你的简历现排
    • AI 知识地图NEW串起全站知识点
  • 动态
    • AI 热点NEWAI 每日动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
AI 助手NEW
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片NEW
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 业务场景题真实业务问题与追问
  • 查漏补缺常见问题解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
    • AI 定制路线NEW按你的简历现排
    • AI 知识地图NEW串起全站知识点
  • 动态
    • AI 热点NEWAI 每日动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
AI 助手NEW
旧版
返回 AI 情报前线
All News · 全部资讯8836
  • 2026 年十大 LLM 网关横评:语义缓存与多提供商故障转移
  • codebase-memory-mcp:毫秒级代码知识图谱MCP服务器,158语言支持
  • Strands Agents:开源AI Agent开发框架,支持Python/TS全生命周期管理
  • 2026年9大开源LLM网关生产级对比:Bifrost领先
  • 用 TigerGraph+MCP 构建自主欺诈调查 Agent
  • Jev 决策模型真实成本拆解:何时省钱何时烧钱
  • 开源CLM-8B:Agent动作评分比Jev快9倍
  • JEV:打破布尔二值困境的类型安全验证方案
  • Claude Opus 5.5降价40%逼近前沿性能
  • VS Code 1.139:Agent 会话首次加载提速约 12 倍
  • 定时 Agent 总重复干活?用完成分类账让它知道什么是「做完」
  • TypeSafe AI Jev 编码指南:类型化决策、置信度校准与推测式广播
  • Vercel Connect 新增 TanStack AI 集成
  • Anthropic与OpenAI 90分钟内相继降价
  • 选LLM API的六个价格陷阱
  • Agent记忆正常仍出错:问题在状态不在记忆
  • Mercury 2.5 推理速度达 770 tokens/秒
  • GitHub Copilot 代码审查新增个人配置选项
  • MCP单人上手容易,团队规模落地是另一回事
  • 影子测试100%一致率背后:模型实际正确率仅75%
  • 两个都通过的测试,代价却不同:重试的隐性成本
  • 定时运行AI Agent输出飘移的根因与修复
  • Anthropic如何两周将Claude.ai速度提升3倍
  • claude-code-templates:一键装配 Claude Code 开发套件,含 100+ Agent/MCP
  • Agent 删改测试必须拦截:CI 合并门禁实操方案
  • Google Antigravity SDK 支持本地 AI 模型:Gemma 4 26B 可离线跑
  • NVIDIA Warp 与 MjWarp 加速机器人仿真工作流
  • HEMA 用 MCP 和 Amazon Bedrock 实现内部 AI 助手转型
  • 五大LLM网关工具生产环境横评
  • GitHub Copilot应用如何渲染百万行PR
  • 基于 AWS 构建 Agent 式视频智能对话系统架构解析
  • Bedrock 上用开源权重模型做 AI 编程助手
  • Anthropic 实验室:Claude 自主发现类 CRISPR 新型酶系统
  • ChatGPT Voice 集成邮件、日历和 Slack:Altman 心中的"Her"更近一步
  • OpenAI GPT-6 Sol/Luna 和 Claude Opus 5.5 同步降价 50%
  • AI 工具循环必须显式传递 Retry-After 头否则必死循环
  • AI 代码补丁静默引入新工具调用:merge 前必须强制契约检查
  • AI 写 API 文档无法区分 null/0/缺省三态:OpenAPI 契约必须显式约束
  • AI 编程 Agent 工具输出遭截断:应记录 stdout_bytes 和截断标志
  • Anthropic工程师揭秘:Claude为何越进化写作越差
  • Gemini 3.8 Flash / Flash-Lite TTS 发布:千款语音、30秒克隆、逐行台词控制
  • 工程师详解:新版Claude为何写作风格变得怪异
  • 小米MiMo-V3将搭载HySparse 2:100万Token下KV缓存缩小4.5倍
  • GitHub Copilot 应用新增本地沙箱隔离功能
  • AI Agent 调试指南:重启不是调试,七层架构定位根因
  • AI 加剧软件供应链攻击威胁,行业如何应对
  • 阿里 Qwen Audio 3.1 发布:语音识别/TTS 多模型,API 价格最高降 95%
  • Claude Code部署到Lizard平台实战指南
  • Claude Opus 5.5降价却破坏四个Agent依赖项
  • OpenAI GPT-6 Sol/Luna 半价发布,缓存机制或为更大降本杠杆
  • treg:聚合 3000+ Agent 工具的统一网关
  • 已加载 51 / 8836
8.0
热点
AI SCORE
技术实践2026-09-24 04:40

两个都通过的测试,代价却不同:重试的隐性成本

dev.to · AI#AI Agent#可观测性#重试机制
Editor brief · 编辑速览

指出Agent测试中重试机制掩盖了真实可靠性问题,提出在summary中记录重试次数等关键指标以提升可观测性。

文章思维导图
Knowledge map
拖拽缩放
Full translation

完整中文译文

我们的 agent 在无人值守的情况下运行,它在大部分生命周期里留下的唯一痕迹是一行摘要,写着 run passed。很长一段时间里这行字就够了,因为 pass 就是我们想要的。后来我们开始更仔细地读这些行,发现两个有着相同摘要的 run,实际上花费完全不一样。

其中一个发起请求、收到响应、写好输出、然后结束。另一个发起请求、什么都没收到、等了一会儿、重新发了请求,然后才结束。两个 run 结束时的状态相同,都打印了同一个词。第二个 run 告诉了我们第一个 run 没有告诉的东西——它所依赖的路径不够可靠,无法在第一次尝试就成功——然后我们把这些信息丢掉了,因为我们的报告机制只设计来回答两个可能值的问题。

这是一种特定种类的盲区,值得精确命名。重试不是 bug,是我们自己加进去的。它们存在是因为远程服务偶尔会变慢或短暂不可用,对瞬时失败的正确应对是重试而不是把人叫醒。重试完成了它的本职工作。问题在于重试还做了第二件事——没人给它分配,但它自己揽下来了:它测量了依赖的健康状况,然后一旦第二次尝试成功,就立刻丢弃了这个测量结果。

它的代价是日积月累显现出来的,而不是某一天突然出现。假设你调用的某个服务开始出现每五十次调用失败一次的状况。你的重试机制吸收了它,你的摘要显示 pass。一个月后变成每十次调用失败一次,你的重试大部分时候也能吸收它,你的摘要仍然显示 pass。那条本可以告诉你某些东西在降级的曲线,每天都在你自己的进程内部绘制出来,而每天你的进程都在任何人看到之前就把它们擦掉了。你第一次了解到这个趋势,是失败率终于超过了你的重试预算、run 变成红色的时候——而这恰恰是这条信息最没用的时刻,因为现在它已经是事故而不是预警了。

修复方法并不巧妙,而这恰恰是它让我们花了不少时间才动手的原因。我们现在把尝试次数作为一个与 outcome 同级的字段记录下来。在第一次尝试就成功的 run 和在第三次尝试才成功的 run,是相同的 outcome,却是不同的记录。重试行为没有任何改变;我们只是不再把中间的尝试当作草稿工作了。摘要行仍然写着 pass,因为它应该写 pass——一个无人值守的 agent 如果每次小毛病恢复都要大喊大叫,最终会让迟早来看它的人学会不再看它。但数字就写在旁边,而这个数字才是你用来绘图的东西。

实际上改变的是我们能问的问题的形状。之前我们只能问今天是否成功。现在我们可以问这周是否比上周花了更多次尝试才把事情做成。第二个问题在什么都没坏的日子也有答案,这意味着我们从健康的 run 中也能得到信号,而不仅仅是从失败中得到。对于一个应该无人值守运行的系统来说,这比听起来重要得多,因为健康的 run 几乎是它的全部。

无人值守的 pipeline 给你发现它在变差的机会非常少。它的绝大部分输出都被设计成可以被忽略的,而且它成功地做到了可以被忽略——直到它做不到的那一刻。它所需要的尝试次数,在它决定打印什么的那个瞬间,已经存在于内存中了。打印它们几乎不花任何代价。不打印它们,是一个等着以后被惊到的决定。

Original source

本文由 AI 翻译整理自 dev.to · AI,原文版权归原作者所有。

阅读英文原文
上一篇
影子测试100%一致率背后:模型实际正确率仅75%
下一篇
定时运行AI Agent输出飘移的根因与修复