多模态模型代码写得像老司机,却在数手指、量柱子时频频翻车?UniPat AI用五百行代码打造的SWE-Vision,让模型「掏出Python尺子」自我验证,一举拿下五大视觉相关基准SOTA。
模态大模型在代码能力上进步惊人,但在基础视觉任务上却频繁失误。
UniPat AI构建了一个极简的视觉智能体框架——SWE-Vision,让模型可以编写并执行Python代码来处理和验证自己的视觉判断。
在五个主流视觉基准测试中,SWE-Vision均达到了当前最优水平。
在过去一年,多模态大模型的代码能力取得了惊人进展——独立搭建项目、排查bug、完成复杂重构,表现已可比肩资深工程师。
然而,在「理解视觉世界」这件事上,它们的表现远没有代码能力那样可靠。
UniPat AI此前发布的多模态基准BabyVision就揭示了这一现象:模型常常给出大段看似合理的推理,却在最基础的计量、计数和空间关系判断上出错。
UniPat AI此前发布的多模态理解benchmark BabyVision已被多个近期发布的重磅模型产品纳入评测体系,并在其技术报告中被引用,体现了社区对这一问题的广泛关注。
当我们仔细审视BabyVision中模型出错的案例时,可以发现一个关键点:问题往往是「模型看见了,却无法精确处理」:
面对这些错误,人类通常会怎么做?
掏出工具:画辅助线、作出标记、用尺测量、用笔计算。
这个观察引发了一个关键猜想:既然模型已经极其擅长编程,能否让它用代码——这个它最熟悉的工具——来弥补视觉处理中的精度短板?
SWE-Vision正是对这一猜想的系统性验证。

其结果令人瞩目:在五个不同的视觉基准测试中——涵盖基础感知、图表推理、数学问题解决、空间理解和复杂的多步骤视觉挑战——SWE-Vision始终改进了前沿LLM,如GPT-5.2-xhigh和Seed-2.0-Pro,并取得了最先进的结果:
在BabyVision上达到64.4,
在MathVision上达到94.0,
在Zero-Bench-Sub上达到50.1,
在OmniSpatial上达到69.0,
在CharXiv-RQ上达到82.5。
SWE-Vision并不需要再造一堆专用视觉工具,而是把要做的事压缩到极简:
工具层:只保留两个工具
config.py里定义的工具只有两个:execute_code和finish。
这里最关键的不是「能执行代码」,而是工具接口本身非常小、非常通用。SWE-Vision没有给模型塞一堆专用视觉API,而是只暴露一个模型本来就很熟悉的动作:写Python。
控制层:一个标准的agentic loop
agent.py里的VLMToolCallAgent实现了完整的循环:
repo里默认tool_choice="auto",并支持reasoning模式;在开启时会把推理effort设为高档,并允许最多100轮迭代。
执行层:Docker里的持久化Jupyter kernel
kernel.py不是简单exec()一段代码,而是正经启动一个Docker容器,再在容器里拉起ipykernel。宿主侧通过jupyter_client.BlockingKernelClient连接这个内核,并从IOPub/shell通道收集执行结果。
内核是持久化的,变量、导入、图像对象和中间结果都能跨多次execute_code保留;同时代码运行在隔离的Docker环境里,宿主与容器通过挂载目录交换文件。
kernel.py还会在启动后做health check,并把matplotlib后端配置成inline,以便抓取图像输出。
简单来说,SWE-Vision不强迫模型每题都写代码,但给它一个随时可用并且熟悉的「视觉工具库」。
SWE-Vision像一个会看图的数据科学家,其完整工作流如下:

它有几个关键设计:
这套设计的价值在于:允许模型像一个真正的科学家一样,先做实验再下结论。
很多人第一次看SWE-Vision会觉得,它不过是在VLM外面加了个Python工具。
真正的差别其实在于stateful。
在SWE-Vision中,内核状态会在多次调用间保留。
这意味着模型可以像人类分析师那样分步工作:
如果代码执行是无状态的,这种多步分析会非常笨重:每一步都要重新导入库、重载图片、重建变量,模型也更难维护中间假设。
SWE-Vision通过持久化kernel,把「多轮工具调用」变成了「同一个notebook会话里的连续实验」。
从工程实现上看,这也是它为什么能处理图表测量、空间关系和复杂多步视觉任务,而不只是做一次性的OCR或检测。
在SWE-Vision「观察科学图表、总结规律」的案例中,我们看到了一种截然不同的行为模式。
如下图所示,这是科研场景中常见的图表分析任务:我们要求模型判断,在Quarters=15时,哪一张子图中红色虚线与黑色实线之间的差距最大。
SWE-Vision智能体给出了一套极其严谨且可解释的解法。
首先,它排除了不存在红色虚线的子图(d);
随后,对每一张候选子图在Quarters=15处精确绘制辅助线,定位红线与黑线的交点;
接着,通过可执行代码精确计算两条曲线在该位置的数值差距;
最终基于计算结果给出正确答案。
这种「先结构化分析、再程序化测量、最后数值验证」的思维与行动闭环,与传统视觉语言模型依赖直觉式「瞪眼观察」直接给出答案的方式形成鲜明对比。
它不仅显著提升了结果的可靠性与可解释性,也展示出更高的能力上限与更强的泛化潜力。

SWE-Vision的一个重要结论是:对视觉任务而言,加入通用代码工具,是提升前沿多模态模型视觉能力的一个有效test-time scaling方向。
它之所以有效,恰恰在于其极简:
这与很多「为了某类视觉任务单独发明一套工具接口」的方法不同。
这些方法往往在某些窄任务上能提升,但泛化性不足。而SWE-Vision的目标,是提供一个尽可能通用的视觉增强框架,让模型自己决定何时调用代码、如何组织分析步骤。
SWE-Vision在五个覆盖面很广的视觉基准上进行了评测(基础感知、图表、数学、空间、综合多步推理),核心发现高度一致:引入代码执行能力,能系统性地抬升前沿模型的视觉表现上限。
在对比实验中(同一模型vsSWE-Vision),SWE-Vision对两个前沿的视觉语言模型(GPT-5.2,Seed-2.0)都带来显著提升:


「反直觉」的一点是:提升幅度最大的,往往不是最复杂的高阶推理任务,而是最基础的感知和精确处理能力——例如BabyVision中的计数、颜色识别和空间关系判断。
这类任务人类靠直觉加简单工具就能稳定完成,而模型仅凭「语言化视觉」则极易忽略细节、数错个数、缺乏验证手段。
SWE-Vision的结果也给我们揭示了另一种可能:
对于视觉来说,测试时扩展(test-time scaling,TTS)不一定只能靠「多想几段文字」,也可以靠「多写几行代码」来看得更精细。
与用于训练多模态LLMs的传统数据(基本上是问题,图片,答案三元组)不同,训练视觉智能体模型需要多模态交错的智能体轨迹。
它还需要一个交互式环境来支持强化学习、工具使用和评估,使模型不仅能学习回答问题,还能学习感知、行动和反思,要彻底释放「工具增强视觉」的潜力,模型需要更多深度交织的视觉-编程SFT/RL数据与环境,来学会感知、行动和反思。
具体而言,下一步的关键方向包括:
SWE-Vision的开源代码已在GitHub发布。编程辅助的精确视觉理解是一个值得社区共同探索的方向——五百行代码的极简框架,也许是这段旅程一个不错的起点。
官网: https://unipat.ai
Blog: https://unipat.ai/blog/SWE-Vision
开源地址: https://github.com/UniPat-AI/SWE-Vision
文章来自于“新智元”,作者 “KingHZ”。
【开源免费】Browser-use 是一个用户AI代理直接可以控制浏览器的工具。它能够让AI 自动执行浏览器中的各种任务,如比较价格、添加购物车、回复各种社交媒体等。
项目地址:https://github.com/browser-use/browser-use
【开源免费】字节工作流产品扣子两大核心业务:Coze Studio(扣子开发平台)和 Coze Loop(扣子罗盘)全面开源,而且采用的是 Apache 2.0 许可证,支持商用!
项目地址:https://github.com/coze-dev/coze-studio
【开源免费】n8n是一个可以自定义工作流的AI项目,它提供了200个工作节点来帮助用户实现工作流的编排。
项目地址:https://github.com/n8n-io/n8n
在线使用:https://n8n.io/(付费)
【开源免费】DB-GPT是一个AI原生数据应用开发框架,它提供开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Multi-Agents框架协作、AWEL(智能体工作流编排)等多种技术能力,让围绕数据库构建大模型应用更简单、更方便。
项目地址:https://github.com/eosphoros-ai/DB-GPT?tab=readme-ov-file
【开源免费】VectorVein是一个不需要任何编程基础,任何人都能用的AI工作流编辑工具。你可以将复杂的工作分解成多个步骤,并通过VectorVein固定并让AI依次完成。VectorVein是字节coze的平替产品。
项目地址:https://github.com/AndersonBY/vector-vein?tab=readme-ov-file
在线使用:https://vectorvein.ai/(付费)
【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。
项目地址:https://github.com/Significant-Gravitas/AutoGPT
【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。
项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md
【开源免费】VideoChat是一个开源数字人实时对话,该项目支持支持语音输入和实时对话,数字人形象可自定义等功能,首次对话延迟低至3s。
项目地址:https://github.com/Henry-23/VideoChat
在线体验:https://www.modelscope.cn/studios/AI-ModelScope/video_chat
【开源免费】Streamer-Sales 销冠是一个AI直播卖货大模型。该模型具备AI生成直播文案,生成数字人形象进行直播,并通过RAG技术对现有数据进行寻找后实时回答用户问题等AI直播卖货的所有功能。
项目地址:https://github.com/PeterH0323/Streamer-Sales