← 返回 2026-10-20

OpenVLHarness:基于多模态记忆的真实世界视觉智能体工具使用框架 OpenVLHarness: Real World Visual Agentic Tool-Use with Multimodal Memory

Yu Zhou, Cheng-Fu Yang, Rui Sun, Di Wu, Sibo Peng, Mingyang Zhang, Zhen Yang, Ruiyi Zhang, Nanyun Peng, Zhe Gan, Kai-Wei Chang 📅 2026-10-19 👍 102 2026-11-11 18:30
基准评测 多模态智能体 智能体记忆 视觉工具使用 视觉推理

能力层+持久多模态记忆双机制,让MLLM在22个基准上平均提升9.7–12.6分

前置知识

多模态大语言模型(MLLM)

以语言模型为核心、能同时接收图像、文档、网页等多模态输入并输出文本的模型,如 Qwen3-VL、GPT-6。它将图像编码为视觉 token,与文本 token 一起送入 Transformer 进行联合推理,从而实现'看着图说话'。其能力边界决定了哪些任务必须借助外部工具获取额外证据。

本文的 orchestrator(调度核心)就是一个 MLLM,全部实验都是围绕'给 MLLM 挂载工具框架'展开的,只有先理解 MLLM 单独能做到什么、做不到什么,才能理解 harness 带来的增益从何而来。

推理时扩展(inference-time scaling)

不更新模型权重,仅增加推理阶段的计算量来换取精度,典型做法是让模型生成更多思考 token,如 GPT-6 的 low/medium/high/xhigh/max 推理力度档位。其收益通常边际递减:计算量翻倍不等于准确率线性提升。

论文的出发点正是一组对照实验:基础模型推理预算从 xhigh 提到 max 档,模型 token 开销乘以 $2.7$ 倍,22 基准平均分却只提高 $0.7$ 分。这个'多想不如多看证据'的观察是整篇论文的立论基础。

开放词汇定位与 RLE 分割掩码

Visual Grounding 根据文本查询在图像中定位目标,输出边界框和分割掩码;RLE(游程编码)是压缩存储掩码的紧凑格式,数值上精确但人类和模型都无法直接读懂。要被 MLLM '看见',必须渲染成标注叠加图;要被程序精确计算,又必须保留原始数组。

这正是论文'证据渲染'设计要解决的核心矛盾:工具输出的原始载荷机器可读但模型不可读。理解 RLE 掩码的双重属性,才能理解为什么作者要同时做'可视化渲染'和'工件保留'。

智能体工具调用与 harness

harness 指包裹模型的外层框架,负责工具接口、消息循环与状态管理。模型以 ReAct 风格运行:每轮输出一次工具调用,框架执行后把观察结果(observation)回填上下文,循环往复直到给出最终答案。工具调用通常走模型原生的 function calling 通道。

OpenVLHarness 本身就是一个 harness。分清'模型能力'与'框架能力'的边界,才能读懂论文的实验设计:同一骨干分别接 Base、Codex、Visual Sketchpad、OpenVLHarness 四种框架对比,隔离出框架本身的贡献。

深度估计与相机位姿

深度估计为图像每个像素预测距离值,得到稠密深度图;相机位姿由内参矩阵 $K$ 和外参 $[R|t]$ 描述,刻画相机在场景中的位置与朝向。多张图的位姿统一后可建立共享三维坐标系,进而在代码中计算物体间的真实三维距离。

论文的招牌示例(计算窗户与柜子中心距离 1.1957 米)正是把相机位姿、深度数组与 grounding 掩码三类工件在记忆中组合后,由 Python 编码智能体算出的,是理解'记忆接地计算'的最佳入口。

研究动机

多模态大模型在视觉推理上进步很快,但许多真实任务需要的证据无法靠模型'内省'得到:在密集场景中定位大量微小物体、检索长尾实体的外部知识、或根据中间测量值计算数量,这些都需要通过感知、搜索和计算获取额外证据。作者在 22 个基准上做了受控实验:把基础模型的推理力度从 xhigh 提到 max 档,模型 token 开销乘以 $2.7$ 倍,平均分却只提高 $0.7$ 分,说明单纯'多想'已严重边际递减。已有视觉工具方案各有短板:训练类框架(AdaReasoner、PixelReasoner、DeepEyesV2)需要微调骨干模型;免训练框架(Visual Sketchpad、OctoTools)依赖手工设计的工具接口;通用编码智能体 Codex 给 GPT-6 Luna 使用反而把 22 基准均分从 45.8 拉低到 43.8。更深层的技术障碍有二:其一,异构后端调用约定不一,分割掩码、深度图、网页原文等输出格式模型难以解读;其二,后续步骤仍需访问底层工件——渲染好的深度图便于'看',但精确测量必须拿到数值数组,而把数组直接塞进上下文既耗 token 又不可解读。

本文的目标是本文的目标是构建一个免训练、模型无关的通用视觉智能体框架 OpenVLHarness,让任意 MLLM 骨干都能一致地调用感知、搜索、计算三类异构工具,并以可解读、可复用的方式利用工具产物完成多步推理。具体拆成四点:其一,定义任务级工具接口,使 SAM 3 与 Grounding DINO、PaddleOCR-VL 与 DeepSeek-OCR 等后端可以互换而不改变上层调用方式;其二,把每个工具的原始输出渲染成模型可读的观察,即可视化附件+简短自然语言描述+紧凑结构化信息的组合;其三,建立持久多模态记忆,把图像、结构化数据、网页引用注册为可寻址工件,供后续轮次通过句柄复用;其四,用 Python 编码智能体对存储的数据执行计算,把多个工具的输出组合成完整推理链。最终在 22 个基准、8 个开源与专有骨干上系统验证效果,并与免训练基线、训练类基线以及推理预算扩展做正面对比,同时提供把 harness 适配到自定义领域的免训练优化工作流。

与已有工作不同的是,本文的独特切入点是把'证据的可用性'和'证据的可复用性'拆成两个正交机制分别设计。以往工具框架要么关注工具集本身(有什么工具),要么关注调用策略(何时调用),很少系统回答'工具输出的二进制产物如何跨轮次被再次使用'这个问题。作者的做法是:能力层用'任务级接口+证据渲染'解决'模型看得懂',持久多模态记忆用'句柄与载荷分离的工件注册表'解决'模型用得上'——orchestrator 只看到紧凑句柄和描述符,重型载荷(图像字节、数值数组)留在框架侧按引用解析。另一个差异是框架自身的可进化性:用 Kimi K3 批判失败轨迹,自动诊断该改提示词还是该造新工具,再由 harness search 与 tool generation 两条免训练工作流落地,使 harness 能跟随模型与任务演进。此外,作者首次在 22 个基准、26229 题规模上把'加工具'与'加推理预算'放进同一成本坐标系比较,得出二者互补而非替代的结论,回答了'更多推理能否取代框架'这一悬而未决的问题。

核心方法

整体思路的直觉是:把 MLLM 当作'会思考的调度员',给它配一间'设备齐全的实验室'(能力层)和一个'随手可取的物料架'(持久多模态记忆)。技术路线上,OpenVLHarness 以 ReAct 风格循环运行:orchestrator(即骨干 MLLM)每轮至多发起一次原生工具调用;能力层把调用路由到具体后端并渲染观察;记忆模块登记产物并发出 Environment Update 消息广播当前可用句柄;Python Coding Agent 接收自然语言计算目标,用同一骨干生成代码并在存储数据上执行。基础实例化包含九个能力:感知五项(Zoom-in、Visual Grounding、OCR、深度估计、相机轨迹),信息获取三项(文本搜索、图片反搜、网页访问),外加编码智能体。感知后端包括 SAM 3/Grounding DINO、PaddleOCR-VL/DeepSeek-OCR、Depth Anything 3/VGGT,搜索走 Serper API 并由 Qwen3-VL-8B 做摘要与重排。每题最多 15 次工具迭代,上下文上限 168K token。

核心创新是'能力层+持久多模态记忆'的双机制架构,与已有工作的本质区别有三点。第一,证据渲染:不是简单把工具返回值塞进上下文,而是每个能力自带输出处理器,把 RLE 掩码、深度数组等渲染成'标注叠加图+简短描述+归一化坐标(0–1000 尺度)'的组合观察,模型既看得懂内容又拿得到精确数字的引用。第二,工件句柄化:记忆注册表把图像(input_image_3、tool_image_6)、结构化绑定(segment_cabinet: dict 含 bbox 与 RLE mask)、网页引用(webpage_url_1)分类登记,载荷与句柄分离,Environment Update 只广播命名空间而不重复内容,后续调用凭句柄即可取用原始数据。第三,记忆接地计算:orchestrator 用自然语言描述计算目标,编码智能体在以数据绑定为具名变量的环境里执行代码,例如把 grounding 掩码与深度数组结合算出每个区域的平均深度。与 ReWOO、CodeAct 等文本符号引用方案不同,这里维护的是跨图像、结构化数据、网页证据的统一类型化工件注册表。

方法步骤详情

流程可拆为六步。步骤一(输入注册):用户问题连同图像进入系统,图像登记为 input_image_N 句柄。步骤二(推理决策):orchestrator 阅读系统提示、工具 schema 与 Environment Update,每轮恰好调用一个工具或给出 Final Answer。步骤三(执行与渲染):能力层把调用路由到后端(如 Visual Grounding 默认 SAM 3),返回编号标注的掩码叠加图、检测数量与归一化边界框描述,原始掩码和坐标同时交给记忆。步骤四(登记与广播):工具生成的图像按内容去重后注册为 tool_generated_image_N,结构化输出成为带类型描述符的数据绑定,网页存为 webpage_url_N;随后发出 Environment Update 列出全部可用句柄。步骤五(复用与计算):后续工具凭句柄取得输入,harness 解析回真实载荷;需要计算时,orchestrator 把目标(如'计算每个检测区域的平均深度')连同绑定描述符交给 Python Coding Agent,程序以绑定为变量执行,结果再登记复用。步骤六(作答):证据充分时输出最终答案。

技术新颖性

技术新颖性体现在四个层面。接口层:任务级接口与后端解耦是常见工程思想,但与证据渲染绑定成'调用约定+观察格式'一体化设计是新的——换后端不动提示词词汇,模型无感知,后端可按精度、成本、延迟灵活调整。记忆层:此前多模态工具框架要么不保存工具图像、要么只存文字描述;本文消融显示仅加文本记忆(图像转最多 160 token 描述)只涨 $+0.7$ 分(8B),补上可复用图像句柄后立刻再涨 $+3.1$ 分(32B 为 $+4.5$),直接证明'图像可寻址性'是被前人忽略的关键变量。系统层:Python Coding Agent 与记忆绑定组合使任意两个能力的输出都能在代码里组合,比 Visual Sketchpad 的固定画板和 OctoTools 的手工流水线表达力更强。方法层:用 Kimi K3 批判 9,893 条失败轨迹(与人工标注一致率 92%),按'失败原因×修复通道'自动分流到 harness search 或 tool generation,让框架本身成为可优化对象且全程不更新权重。

Overview of OpenVLHarness. The MLLM orchestrator invokes capabilities through typed interfaces. The capability layer connects these interfaces to underlying models and services and renders their outputs into model-facing evidence: here, a labeled mask overlay accompanied by a textual description and normalized bounding boxes. Persistent multimodal memory retains image artifacts, structured data, and web references under reusable handles. An Environment Update advertises the available artifacts to the orchestrator, allowing subsequent calls to reuse earlier evidence, including through memory-grounded computation.
Figure 2: Overview of OpenVLHarness. The MLLM orchestrator invokes capabilities through typed interfaces. The capability layer connects these interfaces to underlying models and services and renders their outputs into model-facing evidence: here, a labeled mask overlay accompanied by a textual description and normalized bounding boxes. Persistent multimodal memory retains image artifacts, structured data, and web references under reusable handles. An Environment Update advertises the available artifacts to the orchestrator, allowing subsequent calls to reuse earlier evidence, including through memory-grounded computation.
Qualitative examples of OpenVLHarness. (a) Camera poses, depth, and grounding are combined in code to measure a 3D distance (Example 17). (b) Grounded crops are passed by identifier to zoom-in, OCR, and image search before the answer is verified on the web (Example 8). (c) Masks from two grounding queries are reconciled in code to correct an undercount (Example 1).
Figure 3: Qualitative examples of OpenVLHarness. (a) Camera poses, depth, and grounding are combined in code to measure a 3D distance (Example 17). (b) Grounded crops are passed by identifier to zoom-in, OCR, and image search before the answer is verified on the web (Example 8). (c) Masks from two grounding queries are reconciled in code to correct an undercount (Example 1).

实验结果

核心发现按实验逐一分析。(1)主实验(Table 1):22 基准、8 骨干,相对无工具基线平均提升 9.7–12.6 分——Qwen3-VL-8B 34.24→45.41($+11.2$)、32B 38.30→50.92($+12.6$)、GPT-5 44.4→55.7、Kimi K3 56.4→66.1、GPT-6 Astra 60.27→70.17($+9.9$,22 项全升)。8B 上超最强免训练基线 OctoTools(31.8)13.6 分;Qwen2.5-VL-7B 上得 33.45,超过需微调的 DeepEyesV2(25.02)。(2)推理预算对照(Table 2):GPT-6 Luna 每档 26,229 题,Base 从 low 到 max 仅 44.3→48.0,Visual Sketchpad 到 48.8,Codex 到 48.6;OpenVLHarness medium 档即 56.5,花费不超过对手 max 档成本的 37%,max 档在 Grounding/VS&DR 领先 15.6/12.4 分。(3)消融(Table 3):8B 从 37.06→40.84(裸工具 $+3.8$)→44.23(能力层 $+3.4$)→44.93(文本记忆 $+0.7$)→47.14(多模态记忆 $+3.1$)。(4)失败分析:9,893 条失败轨迹中 Grounding 域 75% 归因工具输出错误,VS&DR 49% 是漏调工具。(5)专项优化:harness search 在 ERQA/RealWorldQA 提升 $+4.1$/$+3.7$,tool generation 在 SparBench/FREAK-VQA 提升 $+8.2$/$+4.5$。逐题配对显示每净纠错一题花费 11.7–28.1 次调用。

Main results across four task domains and 22 datasets. Results are grouped by MLLM backbone. Base denotes the backbone without tool use; OT, VS, and CX denote OctoTools, Visual Sketchpad, and Codex; Ours denotes OpenVLHarness.
Table 1: Main results across four task domains and 22 datasets. Results are grouped by MLLM backbone. Base denotes the backbone without tool use; OT, VS, and CX denote OctoTools, Visual Sketchpad, and Codex; Ours denotes OpenVLHarness.
Reasoning effort versus harness, by domain. GPT-6 Luna alone (Base) and with Codex (CX), Visual Sketchpad (VS), or OpenVLHarness (Ours) on the full evaluation splits of our 22 benchmarks. $ / 1k questions is the model-token cost at Standard-tier prices, including reasoning tokens and excluding tool execution and judging.
Table 2: Reasoning effort versus harness, by domain. GPT-6 Luna alone (Base) and with Codex (CX), Visual Sketchpad (VS), or OpenVLHarness (Ours) on the full evaluation splits of our 22 benchmarks. $ / 1k questions is the model-token cost at Standard-tier prices, including reasoning tokens and excluding tool execution and judging.
Ablation study of OpenVLHarness across model scales. We progressively add raw tool access, capability layer, textual memory, and multimodal memory to the no-tool baseline.
Table 3: Ablation study of OpenVLHarness across model scales. We progressively add raw tool access, capability layer, textual memory, and multimodal memory to the no-tool baseline.
The nine capabilities, their interfaces, and their interchangeable backends. Bold marks the backend used in all experiments.
Table 18: The nine capabilities, their interfaces, and their interchangeable backends. Bold marks the backend used in all experiments.
OpenVLHarness against the base model, paired per question. Rescued counts questions answered incorrectly by the base model and correctly by OpenVLHarness; broken counts the converse. Calls per net gain divides the total number of tool calls issued on these questions by the net number of questions whose outcome changed.
Table 5: OpenVLHarness against the base model, paired per question. Rescued counts questions answered incorrectly by the base model and correctly by OpenVLHarness; broken counts the converse. Calls per net gain divides the total number of tool calls issued on these questions by the net number of questions whose outcome changed.
Performance of OpenVLHarness across models and settings. (a) Average score over 22 challenging multimodal benchmarks with and without OpenVLHarness, across the Qwen, Kimi, and GPT model families. (b) Benchmark scores for GPT-6 Luna and GPT-6 Astra at medium reasoning effort, each with and without OpenVLHarness; radii are rescaled per benchmark, and numbers give the raw scores of GPT-6 Astra (medium) with OpenVLHarness. (c) Average score versus model-token cost (average for 1,000 query rollouts) on 22 benchmarks for GPT-6 Luna alone and with Codex, Visual Sketchpad, or OpenVLHarness, across all five reasoning-effort settings.
Figure 1: Performance of OpenVLHarness across models and settings. (a) Average score over 22 challenging multimodal benchmarks with and without OpenVLHarness, across the Qwen, Kimi, and GPT model families. (b) Benchmark scores for GPT-6 Luna and GPT-6 Astra at medium reasoning effort, each with and without OpenVLHarness; radii are rescaled per benchmark, and numbers give the raw scores of GPT-6 Astra (medium) with OpenVLHarness. (c) Average score versus model-token cost (average for 1,000 query rollouts) on 22 benchmarks for GPT-6 Luna alone and with Codex, Visual Sketchpad, or OpenVLHarness, across all five reasoning-effort settings.
Failure diagnosis and harness specialization with Qwen3-VL-8B. We critique failure trajectories using Kimi K3. (a) Distribution of failure causes across four domains. (b) Proposed remedies: grouped into creating task-specific tools (A–C), updating harness text (Y), and no proposed remedy (Z). (c) Four datasets selected for contrasting remedy profiles. (d) Gains from harness search and tool generation over the unoptimized harness.
Figure 4: Failure diagnosis and harness specialization with Qwen3-VL-8B. We critique failure trajectories using Kimi K3. (a) Distribution of failure causes across four domains. (b) Proposed remedies: grouped into creating task-specific tools (A–C), updating harness text (Y), and no proposed remedy (Z). (c) Four datasets selected for contrasting remedy profiles. (d) Gains from harness search and tool generation over the unoptimized harness.
查看结构化数据
任务指标本文基线提升
22 基准平均(Qwen3-VL-8B) 平均得分(3 次运行均值) 45.41 Base 34.24;最强免训练基线 OctoTools 31.80 较 Base +11.2 分,较 OctoTools +13.6 分
22 基准平均(Qwen3-VL-32B) 平均得分 50.92 Base 38.30;OctoTools 36.79 较 Base +12.6 分
22 基准平均(GPT-6 Astra, medium) 平均得分 70.17 Base 60.27 +9.9 分,22 项基准全部提升
22 基准平均(Kimi K3, max) 平均得分 66.09 Base 56.43 +9.7 分
GPT-6 Luna 跨推理力度对比 平均得分 / 模型 token 成本(每千题) medium 档 56.5($0.92) Base max 档 48.0($3.17);Codex max 48.6($2.52);Visual Sketchpad max 48.8($5.15) 领先 7.7–8.5 分,成本仅其最多 37%
Qwen2.5-VL-7B 对比训练类基线 22 基准平均得分 33.45(免训练) AdaReasoner 25.29;PixelReasoner 28.02;DeepEyesV2 25.02(均需微调) 最高领先 8.43 分且不更新权重
组件消融(32B 完整 vs 无工具) 22 基准平均得分 52.51 无工具 41.29;裸工具 45.61;文本记忆 49.12 合计 +11.2 分,其中多模态记忆贡献 +4.5

局限与改进

作者承认的局限:一是收益分布不均——通用 VQA 与幻觉、空间推理域的增益更依赖骨干能力,Luna 在 RealWorldQA、HallusionBench、EmbSpatial 上提升不足 1 分;Qwen3-VL-8B 在部分基准上增益不一致,8B 有 28.9% 的问题根本未调用工具,说明小模型使用工具的熟练度有限。二是密集感知仍是硬骨头:超过 25 个物体的图像中漏检与实例合并主导了 Grounding 域 75% 的失败。三是成本核算不含工具执行与 LLM 判卷费用,专有模型结果为单次运行。我自己的观察:其一,LLM 判卷器与搜索摘要器都用 Qwen3-VL-8B,与部分被评骨干同源,可能引入评测偏差;其二,搜索依赖 Serper 单一商业 API,可复现性受第三方制约;其三,逐题配对显示仍有 700–2,146 题'被工具做坏',未调工具时 8B 还损失 1.8 分,提示工具接口有上下文税;其四,每题 8–14 轮对话的延迟未报告,实际部署体验存疑。

独立分析的弱点

独立分析的弱点及改进方向:(1)小模型不会主动用工具——Qwen3-VL-8B 有 28.9% 的问题零调用,携带工具接口本身还带来 $-1.8$ 分的空载税;改进方向是为小模型蒸馏工具调用策略,或按问题类型注入领域相关的调用先验,降低'何时该调工具'的决策难度。(2)感知后端是准确率天花板——Grounding 域 75% 失败源于检测/分割错误,框架再好也救不了 SAM 3 在数百物体场景的漏检;改进方向是接入高密度计数专家(如 CountGD)、分块迭代检测或专用密集场景模型,并在证据渲染层提示模型对高密度区域做多次局部查询。(3)工具收益不对称——Depth Estimation、OCR、编码智能体在多数模型上不优于对照组,调用占比也低;改进方向是按域自适应启用工具子集,缩小选择空间、降低提示长度。(4)记忆机制按查询隔离,跨问题无法积累知识;改进方向是引入可检索的长期多模态记忆与重要性剪枝。(5)专项优化依赖失败轨迹与多轮重复评测,小数据域可能噪声过大;改进方向是结合少量人工标注校准批判器,或用更强的批判模型降低 8% 的标签噪声。

未来方向

作者提出的方向:将 harness search 与 tool generation 推广到更多自定义领域,让工具库随任务自动生长;把 harness、工具、评测协议和优化工作流开源作为社区基础设施。基于成果可延伸的方向:(1)在 harness 之上做强化学习——免训练已有 9.7–12.6 分增益,用可验证奖励微调 orchestrator 的工具路由策略可能进一步放大;(2)跨查询持久记忆:把单查询工件注册表扩展为可检索的长期多模态知识库,支持'上次查过这个产品'类连续任务;(3)后端自动路由:按精度/成本/延迟动态选择 SAM 3 与 Grounding DINO 这类互换后端,接口层天然支持但论文未实现;(4)并行工具调用与异步执行,压缩 8–14 轮串行对话的延迟;(5)把'推理预算×工具'互补性研究推广到纯文本智能体,检验能力层+记忆范式能否迁移到代码、网页场景;(6)构建更高密度的计数与定位基准——Figure 9/10 显示主流基准绝大多数样本不超过 10 个物体,而 FSCD-LVIS 最高达 1599 个,高密度区间的测量能力远未被充分评测。

复现评估

复现条件相当友好。代码开源(github.com/uclanlp/OpenVLHarness),项目页 openvlharness.github.io,发布内容包括 harness、九个工具、22 基准评测协议和两条优化工作流。开源侧:Qwen2.5-VL-7B、Qwen3-VL-8B/32B 经 vLLM 部署,感知后端 SAM 3、Grounding DINO、PaddleOCR-VL、DeepSeek-OCR、Depth Anything 3、VGGT 均为公开模型本地服务,需较大显存 GPU。专有侧:GPT-5、GPT-6 系列与 Kimi K3 需 API 付费,专有模型结果为单次运行;搜索默认走 Serper API(付费)。22 个评测数据集均为公开数据,Qwen3-VL 结果为三种子平均且附标准差。整体难度中等:无需训练,算法门槛低,但工程集成量不小(工具服务器、消息循环、记忆注册表都要复刻);复现单模型单基准结论较可靠,完全复现 8 骨干×22 基准主表需可观 API 预算。

相似论文推荐