来源笔记

SWE-chat: Coding Agent Interactions From Real Users in the Wild

Coding AgentsSoftware Engineering DatasetsHuman AI InteractionCode IntelligenceAgent Evaluation

SWE-chat 是一个来自开源开发者、使用公共 GitHub 仓库的真实代码代理会话大型数据集。论文用它来衡量人们实际如何使用代码代理、代理写出的代码有多少会被保留下来,以及这些系统在正常开发流程中会在哪里失败。

  • 代码代理研究很大程度上依赖整理过的基准测试,但这些基准看不到真实用户提示、反复来回、工具使用,以及开发者实际保留了哪些代码。
  • 没有野外数据,就很难衡量实际有用性、失败模式、人工监督、成本或安全影响。
  • 这很重要,因为代码代理已经在大规模使用,只看基准结果来做产品或模型决策,可能会误读真实工作流中的表现。
  • 作者构建了 SWE-chat,这是一个活的数据集,来自通过 Entire.io CLI 选择记录日志、并在公共 GitHub 仓库中活动的开发者。
  • 这个数据集把完整会话记录和提交关联起来,包括用户提示、代理回复、工具调用、token 使用、代码差异,以及逐行的人类与代理作者归属。
  • 截至撰写时,SWE-chat 约有 6,000 个会话、63,000 条用户提示、355,000 次代理工具调用、13,000 个检查点,以及跨 200+ 个仓库记录的 270 万 条事件。
  • 论文加入了会话成功、用户画像、提示意图和用户反制的标注,并使用经过验证的 LLM 判别器、原始日志,以及代码归属指标,例如代码留存率、每行已提交代码成本、每行已提交代码耗时和基于 Semgrep 的安全发现。
  • 核心思路很直接:端到端记录真实的人机代码会话,再把代理产出的内容和开发者实际提交的内容、以及开发者在会话中的反应做比较。
  • 在对比表中,SWE-chat 是第一个同时结合了真实人类提示代理工具轨迹代码差异代码作者归属的数据集。
  • 编码行为分化很明显:22.7% 的会话是纯人类完成,36.5% 是协作式,40.8%vibe coding,其中代理写了至少 99% 的已提交代码。在三个月窗口内,vibe coding 从 20% 增长到 40% 以上
  • 使用场景不只是在写补丁:最常见的具体提示意图是理解代码(19.0%)创建新代码git 操作各占 13.4%调试13.0%。大约三分之一的代理工具调用是 bash 命令。
  • 代理写的代码经常被丢弃:总体编码效率 44.3%代码留存率 50.3%;在协作会话中,这两个数降到 38.2%44.1%,而 vibe coding 达到 59.0%64.6%
  • Vibe coding 的成本更高,单位提交产出所需时间也更长:每 100 行已提交代码的中位 token 数是 204K,约为协作模式的 3 倍;中位美元成本是 每 100 行 0.13 美元,协作模式为 0.05 美元,纯人类模式为 0.07 美元;中位时间是 每 100 行 12.6 分钟,协作模式为 4.8 分钟,纯人类模式为 8.6 分钟
  • 安全结果在 vibe coding 中更差:用 Semgrep 测得,引入的漏洞为每 1,000 行已提交代码 0.76 个,协作模式为 0.14,纯人类模式为 0.08。论文还报告说,用户经常反制代理输出:总体上有 39% 的轮次出现反制,用户中断大约占 3.3% 到 6.0% 的轮次,而代理请求澄清的比例只有 1.1% 到 2.6%