SWE-bench Multimodal
真实 GitHub issue,附带图片、仓库版本和参考补丁。
多模态的行业趋势:大语言模型代码能力评测正在从函数级单元测试走向仓库级软件工程任务。与此同时,Code Agent 链路中也开始逐渐纳入其他多模态信息【Web渲染图,手机屏幕截图】。 SWE-bench Multimodal 是这一路径上的代表工作,但其中的多模态概念主要停留在 issue 输入侧: 相关视觉元素尚未嵌入 环境观测信号 与 结果判定信号,因此并不能充分评估 Code Agent 的多模态能力。
组内工作补全:组内已有相对完整的文生文代码评测体系,也正在建设面向 搜索Agent 和 通用 Agent 的多模态评测体系。 Code Agent 利用多模态信息解决代码相关问题,这一多模态代码场景仍缺少专门的评测 Benchmark。本工作以 SWE-bench Multimodal 为起点, 补足这一部分。
真实用户需求验证:为了验证多模态 Code Agent 评测是否具有真实需求基础,我们对 CodeBuddy 原始会话数据进行了分析。在 307,000 条记录中,识别出 11,039 条确切包含图片等多模态信息的记录,占比约 3.6%,这个比例已经部分说明了目前存在的多模态 Code Agent 的实际需求,并且由于目前 CodeBuddy 等产品并不提供方便的截图工具,所以这个比例对比真实的用户需求仍可能远远被低估。
本工作旨在构建一个面向视觉类代码缺陷的仓库级修复基准。
基于 SWE-bench Multimodal,本研究计划分为两个阶段,第一阶段【8月】保证业务上可评,第二阶段【10月】做更全面的升级。我们会依次实现以下几个改进:
评测流程仍遵循 SWE-Bench 系列的基本流程:单个任务的评测从一个 issue 实例开始。实例中包含目标仓库版本、问题描述、和相关视觉输入;Agent 基于这些信息及运行时反馈生成补丁,评测端再在独立环境中重新执行并判定结果。
固定 base commit、issue 文本、图片或其他相关多模态信息。将以上信息提供给模型,作为任务的初始输入。
Agent 阅读任务材料,在同时包含文本文件和多模态文件的仓库中完成定位、修改。
初步修改完成后,模型会自己生成相关测试。在自测过程中,模型需要收集相关视觉结果,并综合多模态自测结果对之前的修改进行调整,最后提交最终补丁。
评测端重新应用候选补丁,并按任务配置安装依赖、启动服务和运行评测脚本。判定过程同时检查 F2P / P2P 测试,并检查截图、DOM、渲染产物等视觉结果;两类检查均通过时,该实例计为修复成功。
本项目借鉴 OSWorld 对环境状态、执行过程和结果判定的组织方式,但将评测对象从桌面任务转向仓库级代码修复任务: Agent 负责在给定仓库中定位缺陷并生成补丁,评测系统则统一完成环境恢复、补丁应用、测试执行、视觉结果采集与修复结果判定。
OSWorld 强调从固定初始状态启动任务。本项目沿用这一思路,在每次评测前恢复干净环境,并区分 Agent 调试环境与最终评测环境。
评测系统需要在目标环境中安装依赖、启动服务并运行测试。OSWorld 的环境内执行方式可作为本项目的基础能力。
不同任务可能依赖不同文件、命令和启动方式。本项目借鉴 OSWorld 的配置化流程,使任务初始化过程可以被统一描述和复现。
OSWorld 将任务准备、结果获取和指标计算拆成独立阶段。本项目沿用这种组织方式,以便接入不同类型的代码测试与视觉检查。
OSWorld 的结果采集主要围绕桌面文件、浏览器页面和应用状态。本项目需要覆盖仓库运行后产生的视觉结果,包括截图、DOM、SVG / PDF 文本层、控制台日志和生成文件等。
除代码测试外,本项目还需要判断补丁是否修复目标视觉缺陷。评测将结合图像差异、关键区域、文本内容、元素位置和颜色等信号,给出代码测试结果与视觉修复结果。
代码修复任务还需要管理仓库状态,包括仓库拉取、版本切换、测试补丁应用、Agent 补丁应用和结果导出。
补丁应用后,系统运行目标测试和回归测试,并记录日志、返回状态和测试结果,用于判断缺陷修复情况和潜在回归。
每个任务提供固定运行方式,用于触发页面、图表或文档等目标场景,保证 Agent 调试阶段与最终评测阶段运行的是同一任务流程。
不同 Agent 可以直接输出补丁,也可以在环境中修改代码后导出补丁。评测系统将这些差异统一到补丁层面,保证最终比较对象一致。
真实 GitHub issue,附带图片、仓库版本和参考补丁。
移动端开发任务,配套 PRD、Figma 与参考截图。
VS Code、terminal、文件编辑等代码相关 GUI 任务。
真实代码助手会话,保留需求、编辑过程、工具调用和运行反馈。
从 SWE-bench、SWE-Bench Pro、Multi-SWE-bench 中筛选视觉相关题目。
公开 issue、PR、commit、截图与测试记录,用于补充视觉修复任务。
当前工业级 Code Agent 的多模态能力差异较大。OpenHands 支持多模态工具扩展,Cursor 提供浏览器视觉观测, Claude / Anthropic 可通过 Vision、Computer Use、MCP 和 SDK 接入多模态能力;Codex 与 GitHub Copilot 的公开接口中,暂未看到稳定的环境侧视觉观测与交互协议。
| Code Agent 框架 | 原生多模态 | 原生多模态方式 | 支持扩展 | 扩展方式 |
|---|---|---|---|---|
| Cursor | 是 | Browser tool 原生支持浏览器截图反馈;含 Screenshot / Navigate / Click / Type / Scroll / Console / Network | 是 | MCP |
| Codex | 未见明确 | 未查到 image / screenshot / vision / browser 原生 tool | 不明确 | 未查到 MCP / 自定义多模态 tool |
| Claude Code | 部分是 | Anthropic Vision / Computer Use / Desktop:图片理解、截图、visual diff | 是 | MCP、Claude Agent SDK、Playwright MCP |
| GitHub Copilot | 未见统一原生 | 未查到 image / screenshot / vision / browser 原生 tool | 是 | MCP、GitHub MCP Server、agent skills、extensions |
| OpenHands | 是 | Image Input、BrowserToolSet、Browser Session Recording 等 | 是 | Custom Tools、MCP、SDK、sandbox、browser-use、headless |