跳到主要内容

生产环境中的多模态智能体:纯文本评估从未发现的问题

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数构建AI智能体的团队在投产三个月后都会发现同一个问题:他们精心设计的评估套件——围绕文本输入和JSON输出构建——当智能体遇到模糊的发票、扫描合同或从未见过的UI截图时,毫无参考价值。纯文本评估通过了,但用户提交了工单。

多模态输入不仅仅是另一种需要接入的模态,它们引入了一类截然不同的故障,需要不同的架构决策、不同的成本模型和不同的评估策略。将视觉能力视为对现有文本智能体的即插即用扩展的团队,无一例外地低估了所需的工作量。

没人警告你的隐性成本乘数

第一个冲击是token账单。大多数工程师知道视觉输入成本更高——但他们不了解的是其扩展函数的形态。

视觉token与图像分辨率大致呈二次方关系增长。图像尺寸翻倍,token数量翻四倍。一个能够愉快处理1000个token文本文档的智能体,当PDF以图像方式传入时,每页突然消耗8000至15000个token。在规模化场景下,这不是舍入误差,而是可行单位经济学模型与破坏产品的模型之间的差距。

2025年关于token效率的研究让问题变得具体:自适应压缩技术可以在保持任务性能的同时将视觉token数量减少60-90%,但实现这一点需要在摄取阶段主动选择目标分辨率,而不是默认接受用户上传的任何内容。大多数生产系统没有这道门控。它们接受文件、渲染文件,然后让模型消耗输出的一切内容。

成本不对称还会影响设计时不明显的架构决策。当你的智能体循环按顺序处理多个步骤——检索、读取、推理、执行——而每个"读取"步骤都涉及视觉时,上下文窗口消耗成为任务复杂度的上限。智能体失败不是因为模型无法推理,而是因为在推理应该发挥作用之前,它们就耗尽了上下文。

实践指导:在编写任何智能体代码之前先建立分辨率策略。为每种文档类型定义最大传入分辨率,在摄取阶段强制执行,并在生产中监控每文档token分布。仅这三件事就能捕获大多数成本意外。

OCR与视觉模型:第一次很少有人能做对的权衡

在为智能体添加文档处理时,自然的本能是二选一:要么使用传统OCR提取文本并将文本输入语言模型,要么直接使用视觉语言模型,让它"视觉阅读"文档。两种极端都有失败模式。

纯OCR速度快、成本低。对于清晰、标准化的文档——政府表格、格式良好的发票、结构化数据打印件——OCR精度可以超过97%。该管道具有确定性和可重复性,这对调试很重要。问题是OCR依赖可预测的布局。当文档具有可变结构、手写内容、降质扫描或混合内容(嵌入在散文中的表格、带标签轴的图表)时,OCR精度会崩溃。手写字段的准确率下降到65-78%范围内,噪声扫描则低于60%。

视觉语言模型可以自然处理可变布局。在OCR挣扎的手写文本上,它们达到85-95%的准确率,并且无需布局模板即可从复杂表格中提取含义。但它们的速度慢了几个数量级——OCR需要毫秒级,而VLM每页需要数秒——在较大规模下,成本差异相当可观。以每月一千万页的处理量计算,自托管OCR的运行成本约为900美元,而等效吞吐量的云VLM API约为14000美元。

在生产中占主导地位的模式是混合:OCR用于初始提取,VLM用于低置信度字段的验证和纠正。这在大多数情况下保留了OCR的成本和延迟优势,同时在关键案例上恢复了精度。使这一方案奏效的实现细节是置信度分数门控——低于阈值的OCR输出由VLM重新处理,而高置信度提取则直接通过。

决策矩阵简化为三个问题:文档布局的可变性如何?手写或降质输入的频率如何?每文档可接受的成本是多少?如果布局可预测且文档清晰,带有VLM抽查的OCR几乎总是正确答案。如果布局不可预测或质量参差不齐,从一开始就要为VLM预算。

定位失败:当模型看到不存在的东西

文本模型中的幻觉是一个已知的、经过研究的问题。视觉模型中的定位失败在生产环境中理解较少,而且失败模式差异很大,以至于文本模型的直觉无法直接迁移。

对象幻觉是最常见的类别:模型生成对图像中不存在的对象的自信描述。机制有据可查——VLM过度依赖语言先验,产生在统计上合理但并非视觉上有依据的描述。在文档处理背景下,这表现为模型自信地报告源文档中不存在的字段值。

空间推理失败更为微妙,在没有专门构建的评估的情况下难以检测。在空间任务的受控基准测试中——识别哪个对象在哪个的左边、推断相对比例、理解遮挡——当前VLM的准确率为50-55%,而人类为85%以上。这不是一个小的差距。对于需要解释UI截图、理解表单布局或根据位置从表格中提取值的智能体,空间推理错误会导致系统性失败,在你拥有专门探测它们的评估之前,这些失败看起来像随机噪声。

在实践中有效的缓解策略是:

  • 视觉对比解码:将模型输出与同一图像的扭曲版本的预测进行对比。仅在图像完整时出现的输出是有依据的;在两种情况下都出现的输出可能由语言先验驱动。
  • 多智能体纠正:将不确定的输出路由到第二个具有不同采样温度的模型轮次,然后进行比较。不一致标志着需要人工审核的低置信度提取。
  • 结构化输出验证:从文档中提取结构化数据时,根据预期范围、格式和跨字段约束验证提取值。模型可能会幻觉一个字段值,但更难以幻觉一个通过业务规则验证的字段值。

纯文本管道不覆盖的评估差距

团队在推出多模态智能体时最常犯的错误是孤立地测试视觉组件,并假设智能体集成通过蕴含关系是正确的。事实并非如此。

最先进的多模态模型在基准测试设置中的复杂、现实的基于网络的智能体任务上实现约27%的准确率——这些任务需要解释视觉上下文、选择动作和完成多步目标。这不是对模型的批评,而是一个校准点。你的生产任务比基准测试更难,你的文档比基准测试输入更杂乱,你的用户会探测没有任何基准测试预料到的边缘案例。

在用户之前捕获多模态回归的评估模式有几个共同特性:

往返提取测试:从文档中提取结构化数据,然后重新渲染提取的数据并与原始数据比较。显著的分歧表明提取步骤不可靠,即使提取的数据孤立看来似乎合理。

对抗输入套件:维护一套以前导致失败的文档——来自实际用户的真实文档——并在每次模型更新之前将其用作评估输入。

置信度校准检查:测量模型的置信度声明是否与实际准确率相关。在特定输入类别上自信地出错的模型(在空间推理任务中很常见)需要绕过其自我评估的路由逻辑。

跨模态一致性测试:对于同时具有视觉和文本表示的输入(同时具有嵌入文本的PDF、同时也存在于数据库中的表格),验证模型从视觉中的提取是否与文本的基础事实相符。不一致揭示了视觉定位的特定失败模式。

让团队措手不及的结构性病理是感知脆弱性:在多模态管道中,添加视觉输入有时会降低纯文本版本正确处理的子任务的性能。视觉输入引入了分散注意力的位置偏差和对齐伪影。在添加视觉后监控纯文本指标——不要假设新能力是可加的。

跨视觉步骤的上下文窗口管理

在多步骤智能体循环中,每个视觉步骤都会加剧上下文消耗问题。根据图像分辨率和文档复杂性,一个在每个步骤处理文档的五步任务可以在智能体到达第四步之前就耗尽200K token的上下文窗口。

这种失败模式从外部是不可见的。智能体不会返回错误;它默默地基于截断的上下文产生输出,通常没有任何迹象表明重要信息已被丢弃。"迷失在中间"效应——模型无法使用出现在长上下文中间的信息——放大了这一点:即使上下文在技术上没有耗尽,来自早期视觉步骤的信息也可能从模型的推理中有效消失。

三种结构性方法管理这个问题:

  • 选择性上下文注入:不是将所有先前图像传递给每个步骤,而是从已完成的视觉步骤中提取结构化输出并将这些作为文本传递。只有在当前步骤需要时才包含原始图像。
  • 渐进式摘要:在每个视觉步骤之后,让模型生成它所学到的内容的紧凑结构化摘要。在后续步骤中使用该摘要而不是原始图像。
  • 步骤级上下文预算:设置每步的明确token限制并在编排层强制执行。当某个步骤将超出其预算时,在将其传递给模型之前对图像进行降采样或截断上下文。

构建生产就绪性:真正重要的是什么

将视觉集成到智能体管道中对于做对的团队来说是一个多月的工作,而不是一个周末的集成任务。在演示中看似可选的架构决策——分辨率策略、OCR/VLM路由、置信度门控、上下文预算——在生产中成为承重结构。

成功交付可靠多模态智能体的团队有几个共同实践:

  • 他们维护一个不断增长的真实生产失败库——来自真实用户的、破坏管道的真实文档——并在每次发布前将其用作评估输入。
  • 他们在每个提取步骤对置信度分数进行监测,并使用这些信号将边界案例路由到人工审核,而不是接受不确定的模型输出。
  • 他们将纯文本指标与多模态指标并行运行,并在任一方向出现回归时发出警报。视觉输入可以悄无声息地降低文本任务性能。
  • 他们将实时监控视为一等需求,而非事后考虑。大多数生产多模态失败表现为微妙的降级——错误的字段值、误读的数字、空间推理错误——而非硬崩溃。没有每步监控,这些在用户报告之前是不可见的。

27%的基准准确率数字是一个有用的锚点。如果世界上最好的多模态智能体在受控基准测试中大约每四次复杂任务中只有一次能做对,那么具有真实世界文档多样性和对抗性用户输入的生产系统需要能够优雅降级、诚实呈现不确定性、并将低置信度输出路由到适当回退的防御性架构。这就是演示和产品之间的差距。

Let's stay in touch and Follow me for more thoughts and updates