大模型生成答案只需一秒,验证答案却要等五秒,这个倒挂正在拖垮所有智能体!
TypeSafe推出Jev判断模型,不生成文字,只返回选择与分数,实测六项任务:事实核查、新闻排序、PDF定位、引用检查、笔记归类、失败诊断,中位响应0.35到0.52秒,Gemini 3.5 Flash为1.68到4.85秒,速度快三到四倍,准确率多数持平或略逊。让智能体实时自检从设想变成了工程现实。
大模型会编故事,谁来验真假
你让一个AI智能体帮你查一份贷款合同里的承销费用,它翻了几十页PDF,最后信誓旦旦告诉你"承销费是一千零九十七美元",你刚想夸它靠谱,结果翻到合同原文一看,那个数字其实是"贷款发起费",承销费压根没写在它引用的那一页上!
这就是当下所有AI智能体(agent,一种能自主调用工具、搜索文档、生成答案的AI程序)面临的头号困境,它的工作流程通常分三步:先从文档库里搜出相关段落,再把段落塞给大模型生成回答,最后把回答连同引用来源一起交给你,这套流程有个专业名字叫检索增强生成,英文缩写是RAG。
问题出在第二步和第三步之间,大模型天生有一种叫"幻觉"的毛病,它会用极其自信的语气编造细节,把A数字安到B名目上,把"准备通话半小时"篡改成"通话半小时",而你作为用户根本没有时间逐一核对它引用的每一个边界框(bounding box,也就是它在PDF上画出来的那个高亮矩形区域)到底是不是真的支撑了它给出的答案!
所以行业里出现了一个迫切的需求:你需要另一个AI来当裁判,专门检查第一个AI的回答是否靠谱,这个裁判不需要写文章,不需要编代码,只需要做一件事——判断"对"还是"错","相关"还是"无关","支持"还是"矛盾"。
请大模型当裁判,四秒才出结果
最直觉的做法是拿一个现成的大模型来当这个裁判,比如Google的Gemini 3.5 Flash,它够聪明,够便宜,而且速度快,在通用大模型里已经算轻量级选手了。
有人真的这么干了,他搭了一套新闻聚合系统,每天从X平台、博客、YouTube、Hugging Face组织页、GitHub仓库等十几个渠道抓取文档处理领域的资讯,然后用Gemini Flash给每条资讯打分,过滤掉无关的灌水帖,把真正值得读的内容排到前面,思路完全没问题,但实际跑起来才发现一个致命瓶颈:Gemini Flash给一条资讯打分需要一点六八秒,给一份PDF搜索结果排序需要将近两秒,给一段智能体执行轨迹做根因分析需要四点二三秒!
四点二三秒是什么概念,人类能忍受的交互等待极限大约是一秒,超过两秒用户就开始焦虑,超过四秒用户就会怀疑系统是不是卡死了,这意味着你根本没法把Gemini Flash塞进智能体的实时运行循环里,你只能等智能体跑完所有任务之后再离线批量跑一遍检查,等检查结果出来的时候,用户早就拿着错误答案做决策去了!
更尴尬的是准确率也没有高到让人心甘情愿等这么久,在一份二十八条智能体失败记录的分类测试中,Gemini Flash正确归类了二十五条,看起来不错,但它花了四点八五秒的中位延迟才给出每条分类,而人类自己手动分类也就几分钟的事,你花四倍的时间等一个只比随机猜测好一点的裁判,这笔账怎么算都亏!
判断和生成压根是两门手艺
这里藏着一个被整个行业忽视了很久的认知盲区:我们一直默认"判断"和"生成"是同一种能力,觉得一个模型能写长文、能编代码、能做推理,那它自然也能判断对错,所以我们就拿最擅长生成的大模型去干判断的活,就像请一个米其林三星主厨来当食品安全检验员,他当然能尝出菜有没有变质,但他做一道菜要两个小时,你等不起!
TypeSafe这家公司想明白了一件事:判断本质上是一个分类任务,你给模型一段文本和一个问题,它只需要输出"对""错""相关""无关""支持""矛盾"这几个标签中的一个,它不需要生成一段流畅的自然语言解释,不需要考虑措辞优美,不需要维持上下文连贯性,它只需要像一个经验丰富的质检员一样扫一眼就盖章。
基于这个思路,TypeSafe造了一个专门干判断活的模型叫Jev,Jev不写文章,不聊天,不做开放式问答,它的全部存在意义就是接收一个判断请求、输出一个判断结果、然后立刻结束,这种极度聚焦的设计带来了一个惊人的性能表现:在事实核查测试中,Jev的中位响应时间是零点四一秒,而Gemini Flash是一点六八秒,Jev快了四倍多!
但速度快如果只是以牺牲准确率为代价,那毫无意义,真正让人意外的是,在同一份二十四条新闻脚本的事实核查测试中,Jev和Gemini Flash都拿到了二十四条全对的成绩,在贷款文档引用校验测试中,Jev同样精准地揪出了被故意篡改的承销费数字,速度快了四到十四倍,准确率几乎一模一样,这说明判断和生成确实是两门完全不同的手艺,用生成模型干判断的活就像用航母捕虾,能捕到,但太浪费了!
半秒揪出智能体编造的数据
光说抽象原理不够,我们来看几个具体到让人后背发凉的场景。
第一个场景是事实核查,有人写了一系列关于文档处理行业的分析脚本,其中一条脚本引用了Finch公司的客户案例,说"客户电话持续了半小时",这个细节来自语音转录,很容易搞混,Jev拿到脚本和原始文章后,零点四一秒内就指出了错误:原文说的是"通话准备花了半小时",而不是"通话本身半小时",这两个表述在中文里只差两个字,但含义完全不同,一个是准备工作,一个是实际通话,如果这条脚本直接发出去,读者就会对Finch的产品效率产生完全错误的印象!
第二个场景更狠,是引用校验,智能体回答完问题后会在PDF上画一个边界框告诉你"答案来自这里",但之前所谓的校验只是检查"有没有画框",根本不检查框里的内容是否真的支撑了答案,Jev的做法是把问题、答案、框里的原文三者一起吞进去,然后判断它们之间是"支持""矛盾"还是"无关",测试者故意把贷款估算单里的承销费从一千零九十七美元改成了另一个数字,Jev立刻标记为"矛盾",整个过程不到半秒!
这意味着你可以把Jev直接焊在智能体的输出管道上,智能体每生成一个答案,Jev就在半秒内完成校验,如果校验不通过,智能体立刻重新检索、重新生成,用户甚至感知不到中间发生过一次重试,因为整个校验加重试的额外延迟可能不到两秒,而以前用Gemini Flash做同样的事,光校验一步就要等四秒,用户早就关掉页面了!
事实核查脚本这项打平了速度
事实核查脚本这项,Jev在24个检查点全部正确,Gemini 3.5 Flash也是24/24,准确率完全打平,但Jev中位耗时0.41秒,Gemini要1.68秒,速度差了四倍,这个差距在单次调用里看不出来,在每天几百次核查里就是能不能实时反馈的分界线。
Jev不生成任何解释文字,只返回预定义的选择,比如“支持”“不支持”“无关”,它在一个并行前向传播里把所有答案一次性吐出来,不像大语言模型那样一个字一个字往外蹦,格式错误和类型错误从机制上就被挡住了。
但是,准确率打平意味着Jev没有比Gemini更聪明,它只是更快,快到你可以在脚本写完的瞬间就拿到核查结果,而不是等几秒钟再回头修改,这个速度优势在事实核查这种需要
新闻推送排序拉开质量差距
新闻推送排序这项,Jev给出10条推荐,其中6条被标记为值得读,Gemini 3.5 Flash给出10条,只有2条达标,这个差距不是速度带来的,是判断质量本身拉开了距离,因为新闻排序的答案空间是预先定义的,Jev的类型框架让它必须做出明确选择,而大语言模型容易在模糊地带给出模棱两可的排序。
一个深度关注文档处理领域的开发者,用私人新闻聚合器从X、博客、YouTube、Hugging Face组织主页、GitHub仓库抓取内容,每天涌进来的东西太多,大部分是垃圾,他之前用Gemini Flash做过滤,效果总是不太满意,换成Jev之后,垃圾信息量直接砍掉了三分之二。
但是,这只是一个评估集上的结果,样本量有限,Jev在新闻排序上的优势能不能推广到其他领域,目前没有公开数据支撑,而且它不生成解释,你无法知道它为什么把某条排前面,只能选择信任或者手动复核。
PDF关键段落定位靠重排
PDF关键段落定位这项,一份贷款估算文档里,承销费1097美元的段落原本在向量搜索里排第五,Jev把它提到了第一,在十几个类似问题中,向量搜索原本只有1次把正确段落排在第一,经过Jev重排序之后变成了7次,这个提升直接意味着top_k可以大幅降低,上下文窗口越短,智能体的推理成本和响应延迟就越低。
Jev在这里扮演的角色不是找答案,而是给答案排优先级,它不生成新的文本,只判断哪些段落真正有助于回答当前问题,这种判断任务不需要创意,需要的是速度和一致性,而Jev的亚秒级响应让重排序可以嵌入每一次检索流程,而不是作为离线步骤单独运行。
但是,重排序有效不代表Jev理解文档内容,它只是根据问题和段落的匹配程度做出选择,如果向量搜索本身没有召回正确段落,Jev也无能为力,它的作用是在已有结果里挑出最好的,而不是替代检索本身。
引用检查从有到好只需半秒
引用检查这项,把问题、答案和引用文本一起交给Jev,问它引用文本和答案是同意、不同意还是无关,故意在关于同一份贷款估算的答案里改掉承销费数字,Jev抓住了这个错误,中位耗时0.52秒,这个速度意味着检查可以在智能体运行过程中实时执行,不需要等答案返回之后再跑一遍离线评估。
原来的检查只确认有没有引用,不判断引用质量如何,Jev把判断标准从“有引用”提升到“引用是否支持答案”,如果它判断答案和引用不一致,智能体可以直接重试,而不是把错误答案交付给用户,在智能体架构里,生成模型负责写,判断模型负责验,写需要创意,验需要速度和一致性。
但是,Jev只能判断同意、不同意或无关,它不能解释为什么错,也不能告诉你正确答案是什么,你仍然需要人工抽查它的判断结论,只是抽查的方式从“检查格式对不对”变成了“看结论准不准”,判断错了和格式乱了是两种完全不同的错误,修复成本也完全不同。
笔记归类准确率差一个速度差十几倍
审核笔记归类这项,Jev与人工分类在28条笔记中一致24条,Gemini 3.5 Flash一致25条,Jev少了一个,准确率略逊,但Jev中位耗时0.35秒,Gemini要4.85秒,速度差了十几倍,这个取舍在单次归类里不明显,在写笔记的同时实时归类就变得可行。
一个人审核智能体运行时,用开放编码写笔记,记录每次失败的原因,他需要把这些笔记分组,找出高频问题,之前用Gemini做归类,要等好几秒才能拿到结果,所以只能攒一批再处理,换成Jev之后,它可以在你写下每一条笔记的瞬间就给出分类建议,你不需要中断思路去等待。
但是,准确率差一个意味着Jev偶尔会分错,如果你完全信任它的分类,可能会漏掉某些问题,它适合做第一遍筛选,不适合完全替代人工判断,速度优势让它成为实时辅助工具,而不是决策者。
向量搜索排第五,它一把提第一
智能体在回答问题之前,第一步是从文档里搜出相关段落,目前行业标准的做法是嵌入搜索(embedding search),也就是把文档里的每一段文字都转成一串数字向量,用户提问时把问题也转成向量,然后计算向量之间的距离,距离越近的段落越"相关",排在越前面。
这套方法在大多数情况下够用,但有一个致命缺陷:向量距离衡量的是"语义相似度",而不是"答案相关性",一段文字可能跟你的问题用词非常接近,但里面根本没有你要的那个具体数字,而真正包含答案的那段话可能因为措辞不同被排到了第五位甚至更后面。
一个真实的例子:有人问一份贷款估算单里的承销费是多少,正确答案是一千零九十七美元,但嵌入搜索把包含这个数字的段落排在了第五位,前四位都是跟"费用""贷款""估算"语义相近但并没有直接回答问题的段落,如果你只取前三位塞给大模型,大模型就会因为看不到正确答案而开始编造!
Jev介入的方式非常直接:把嵌入搜索返回的前八条结果一股脑扔给它,问它"哪一条最能回答这个问题",Jev在零点几秒内就把那条排在第五位的承销费段落提到了第一位,在一打以上的测试问题中,Jev排序后正确答案排第一的次数从一次跃升到了七次,这个提升幅度意味着你可以大幅缩小检索返回的结果数量(top_k),从而减少塞给大模型的上下文长度,直接降低每次调用的成本和延迟!
快到能塞进智能体的运行循环
前面五个场景都在证明同一件事:Jev够快,快到可以改变智能体的架构设计,但第六个场景才真正触及了这件事的终极意义。
智能体在复杂任务中经常会失败,失败的原因五花八门:可能是大模型产生了幻觉,可能是检索环节漏掉了关键段落,可能是PDF的OCR识别丢了一行小字,以前排查这些失败原因需要人类工程师逐条翻阅智能体的执行轨迹(trace,也就是智能体每一步操作的完整日志,包括它调用了什么工具、搜到了什么内容、生成了什么中间结果),一份轨迹动辄几千字,人工读一份就要好几分钟。
有人试着把整份轨迹扔给Jev和Gemini Flash,让它们判断失败的根因类别,在二十四份失败轨迹的测试中,Jev正确分类了十九份,Gemini Flash正确分类了二十份,差距只有一份,但Jev的中位响应时间是零点五二秒,Gemini Flash是四点二三秒,快了整整八倍!
八倍的差距在离线分析中可能只是"少等几分钟"的区别,但在实时系统中它是"能不能做"和"不能做"的分水岭,零点五秒的延迟意味着你可以在智能体运行的每一步都插入一次Jev检查,如果某一步的输出被判定为异常,智能体立刻回退重试,整个修复流程对用户来说几乎是透明的,而四点二秒的延迟意味着你只能事后复盘,用户已经拿着错误结果走人了。
不过这里有一个尚未解决的矛盾:Jev在轨迹分类测试中的准确率是十九比二十四,大约百分之七十九,这意味着每五次判断就有一次是错的,如果把它放进自动修复循环,那五分之一的误判可能会导致智能体在正确的路径上被强行拉回来重试,反而引入新的错误,TypeSafe目前还没有公开Jev在更复杂的嵌套推理场景下的表现数据,也没有说明当轨迹长度超过一万字时延迟是否还能维持在亚秒级别,而真实的智能体轨迹往往比测试用例长得多,这个缺口不补上,"实时修复"就还只是一个诱人的设想,而不是一个可靠的工程方案!