RealSWE:真实用户请求下编码代理的组合式评估
编码代理目前通常在 SWE-bench 系列基准上进行评估,其任务基于经过整理的 GitHub issue 构建:长文本、结构化、信息丰富。然而,真实用户请求通常更为简短且结构化程度较低。为刻画这一差距,我们定义了六类信息分类法和四个语言风格维度,并将其应用于 SWE-chat 中的真实用户提示与 SWE-bench Verified 和 Pro 中的问题陈述。我们发现,仅包含问题陈述(或附带少量额外上下文)的请求占真实提示的 88%,但仅占基准问题的 7%。此外,87% 的真实提示以随意风格书写,而 94% 的基准问题为正式风格。在这些观察的指导下,我们提出 RealSWE,包含从 SWE-bench Verified 和 Pro 衍生的 381 个多变体任务族。每个族内的变体共享相同的底层任务和 gold patch,仅在信息构成和语言风格上有所不同。 使用 RealSWE 对七个当代 LLM 进行评估后发现:1) 真实输入使解决率平均降低 6.4 个百分点,并可能改变模型排名。受控分析进一步表明:2) 包含 Desired Behavior 与 Motivation 会显著影响性能,而 Environment Information 和 Reproduction Steps 仅增加 token 而无明显益处;3) 语言风格的影响较小且依模型而定。这些发现为使用者和代理提供了可操作建议:显式说明期望行为与动机(大多数真实提示遗漏的信息)能大幅提升 LLM 的软件工程性能。
论文精读
TL;DR RealSWE 基于 SWE-bench 构建 381 个多变量任务,模拟真实用户请求的信息稀疏与随意风格,发现明确期望行为与动机可显著提升 LLM 软件工程性能,为编码智能体提供更现实的评估基准。
问题
问题背景
编码代理的评测是当前 AI 软件工程领域的核心议题,主流基准为 SWE-bench 家族,其任务源自精心筛选的 GitHub issue,通常信息丰富、结构正式。
现有方法局限
这类基准与真实用户请求存在系统性偏差:论文统计显示,真实用户 prompt 中 88% 仅包含问题陈述,而 SWE-bench 任务中这一比例仅为 7%;同时 87% 的真实 prompt 书写随意,而 94% 的基准问题语气正式。现有基准未能覆盖信息组成与语言风格的多样性,导致代理在处理稀疏、非正式的真实请求时表现可能被高估。
为什么这个问题难/重要
真实请求的信息缺失要求代理具备推断能力:例如缺少 Desired Behavior 和 Motivation 时,代理可能误解用户意图或生成无关代码。论文通过 RealSWE 多变体任务家族进行控制变量实验,发现显式提供期望行为和动机会显著提升解决率(平均提升幅度受模型影响),而环境信息和复现步骤仅增加 token 却无可测量收益。这为编码代理的输入设计和用户提示工程提供了直接指导,也揭示了当前 LLM 对上下文结构的敏感性。
行业类比
类似对话式编程助手在用户只给出“修个 bug”这类极简请求时,若主动追问“期望行为是什么”和“为什么需要修”,可以大幅提高任务完成率。
核心洞察
- 真实用户请求与 SWE-bench 基准任务的差距不只是长度,更体现在信息组成与语言风格的分布性偏移。论文对 SWE-chat 真实提示和 SWE-bench Verified/Pro 问题进行六类信息分类和四维语言风格标注,发现 88% 真实请求仅含问题陈述或有限上下文,而基准中该类仅占 7%;87% 真实请求语言随意,基准 94% 正式。这种系统性 mismatch 导致传统基准高估 agent 的实际能力,RealSWE 通过多变量任务族复现真实分布,使评估更贴近生产环境。
- 控制实验表明并非所有额外上下文都等同:明确 Desired Behavior 和 Motivation 可显著提升解决率,而 Environment Information 和 Reproduction Steps 只增加 token 数而无统计显著的性能收益。这一发现与通常“给 agent 更多信息总是更好”的直觉相悖,说明 agent 对信息类型有选择性利用。对工程实践的启示:用户与 agent 交互时,应优先补充期望行为和动机描述,而非堆砌环境细节或复现步骤,同时 agent 设计可针对这类关键信息做主动提取与确认。
方法
输入为 SWE-bench Verified 和 Pro 的原始任务(基于 GitHub issue)与 SWE-chat 真实用户提示。
关键模块
- 特征刻画:定义六类信息分类法(问题陈述、期望行为、动机、环境信息、复现步骤、其他上下文)和四个语言风格维度(正式性、结构、简洁度、礼貌等)。标注显示真实提示中 88% 仅含问题陈述或少量额外上下文,而基准问题中该占比仅 7%;87% 真实提示风格随意,94% 基准问题正式。
- 多变体任务族构建:对每个 SWE-bench 任务,将其问题陈述分解为独立信息字段,再重写为真实用户风格(简短、随意),按预设组合生成多个变体。每个变体包含不同信息字段组合与语言风格,但共享同一底层代码修复目标(
gold patch)。 - 验证与质量控制:流水线验证分解准确性与重新表述真实性,检查选择偏差,确保变体代表性。
输出为 RealSWE 基准,含 381 个任务族,每族多个变体,用于受控评估编码代理。实验对七个 LLM 测量解析率,并消融信息字段与语言风格的影响。
与 SWE-bench 直接使用原始 issue 不同,RealSWE 通过组合式多变体设计解耦信息组成与语言风格,量化归因“基准—现实差距”。
实验
实验设计
研究团队从 SWE-bench Verified 和 SWE-bench Pro 中抽取并构建 RealSWE——包含 381 个多变量任务族。每个任务族共享相同的底层代码修改目标与 gold patch,仅在信息组合(六类信息字段)和语言风格(四维)上做系统变化。评估对象包含 7 个当代 LLM,统一使用同一 agent scaffold 与执行环境。此外,从 SWE-chat 收集真实用户 prompt,用于刻画真实请求与基准问题的分布差异。
关键发现
- 真实用户请求中,仅携带问题陈述或极少上下文的占比 88%,而基准问题中该占比仅 7%;
- 87% 的真实 prompt 为非正式语言风格,而 94% 的基准问题为正式风格;
- 在 RealSWE 上,现实输入使模型平均解决率下降 6.4 pp,并导致模型排名发生变化;
- 控制分析表明,加入 Desired Behavior 和 Motivation 字段能显著提升性能,而加入 Environment Information 与 Reproduction Steps 仅增加 token 数量,无统计显著收益;
- 语言风格对性能影响较小且因模型而异。
与基线对比解读
与原始 SWE-bench 风格相比,RealSWE 注入的现实分布暴露出基准高估模型真实软件工程能力的问题。模型排名的改变证明仅依赖信息丰富的结构化 issue 评估具有误导性。对实际工程而言,该工作提示:用户在向编码 agent 描述任务时,明确说明期望行为与动机比补充环境细节或复现步骤更有效,这一发现可直接指导 prompt 编写与 agent 交互设计。
行业影响
落地场景
RealSWE 的发现直接适用于 AI 编码助手(如 GitHub Copilot、Cursor、企业内部代码 agent)处理来自开发者或非技术用户的真实请求。这些请求往往只有一句简短描述,例如“支付页面报错”或“这个组件渲染太慢”。产品可引导用户补充期望行为(Desired Behavior)和动机(Motivation),或在对话中自动追问,从而显著提升修复成功率。此外,低代码/无代码平台中的自动修 bug 功能、技术支持工单自动分派与修复,均可受益。
商业价值
在真实场景中,明确 Desired Behavior 和 Motivation 可使 LLM 的软件工程任务解决率平均提升,减少用户反复澄清的耗时,提高客户满意度和留存。同时,论文发现 Environment Information 和 Reproduction Steps 仅增加 token 而无显著收益,这意味着 agent 可省略这些字段,降低推理成本和延迟,直接转化为云 API 费用的节省。更贴近现实的评估基准 RealSWE 还能帮助企业选择更适合生产环境的模型,避免在合成基准上过拟合。
与现有工作流集成
可将 RealSWE 的提示模板嵌入现有 agent scaffold(如 SWE-agent、AutoCodeRover),在上下文构建阶段过滤低价值信息字段,并引导用户填写期望行为与动机。评估环节可用 RealSWE 替换或补充 SWE-bench 作为回归测试集,确保模型迭代面向真实用户分布。
具体落地用例
- 电商平台内部工单系统:客服或开发人员提交“订单金额计算错误”,agent 通过追问期望行为(应正确计算折扣和运费)和动机(避免客户投诉和退款),生成精准补丁。
- 内容平台审核工具误判反馈:用户反馈“视频被错误下架”,agent 明确期望(恢复上线)和动机(创作者活跃度下降),修复审核规则或代码逻辑。
局限
- - 论文在讨论中承认,当前评估仅覆盖单轮交互场景,未模拟真实用户与 coding agent 之间的多轮对话、追问澄清和迭代修正过程,因此可能高估或低估 agent 在真实任务中的表现。同时,实验中仅评估了七个当代 LLM,模型覆盖有限,且 agent scaffold 的固定配置(如工具集、上下文长度限制)可能影响结果,结论的外部有效性有待验证。
- - RealSWE 的任务族从 SWE-bench Verified/Pro 派生,导致其底层任务和仓库分布集中于少数热门的 Python 开源项目,可能无法代表真实世界中多样化的编程语言、私有代码库或企业级项目。此外,变体通过 LLM 改写生成,尽管进行了人工校验,但改写过程可能引入语义漂移或信息泄露(如保留原问题中的关键词),影响基准的效度;SWE-chat 数据源也可能存在平台用户偏置。
- - 与 SWE-bench 的其他扩展(如 SWE-bench-java、SWE-smith)相比,RealSWE 的规模较小(仅381个任务族),且主要针对 Python 生态,跨语言泛化能力有限。该基准聚焦于单条提示的信息构成和语言风格,未考虑用户与 agent 交互中的动态反馈、代码审查或增量开发等过程,而这些是真实软件工程中的关键环节,因此其评估维度仍有扩展空间。