Requirements After the First Edit 精读:需求晚到正在让 Agent 会话里的代码作废翻倍

论文:Requirements After the First Edit: Mining Late Requirement Emergence and Rework in Real-World Coding-Agent Sessions(arXiv:2609.03028,cs.SE,2026-09-02) 作者:Bowen Jiang, Anne Koziolek, Weixing Zhang(KIT);Haowei Cheng, Jialong Li(早稻田);Yuhong Fu(阿德莱德) 机构:Karlsruhe Institute of Technology + Waseda University + Adelaide University 数据:SWE-chat 数据集 3,553 个合格会话


一、题目

  • 会议/期刊:arXiv 预印本,模板残留(Woodstock 占位符)暴露投稿中,实证规范(匹配对照、敏感性分析、预注册式实验设计)对标 ICSE/FSE 实证软件工程(EMSE/IST 风格)。
  • 发表单位:KIT(Koziolek 组——需求工程与可靠性)主导,早稻田与阿德莱德参与——典型的 RE 社区视角切入 agentic 编码。
  • 一句话概括:传统软件项目里"需求变更导致返工"是按项目周期和预算度量的;这篇论文证明在 Agent 会话里,同样的代价被压缩到分钟级——需求一晚到,此前写的代码行作废率直接翻倍。

二、背景

研究脉络

需求工程三十年前就确立了两组概念:“稳定需求 vs 易变需求”、“emergent requirements(随设计实现逐渐浮现的需求)";实证研究反复证实需求易变与工期/成本超支相关——但证据粒度是项目级(周/月、财务数字)。

Agentic 编码改变了时间常数:用户像与人类同事协作一样,在多轮对话中逐渐陈述、修订、补充意图;Agent 每轮立即开始改代码。SWE-chat 数据集(提供行级人机代码归因)已发现大量 Agent 代码没能活到最终 commit;misalignment 语料系统编码了用户 pushback 事件——但没有任何工作把"某个需求到达的时刻"与"它导致的具体行级作废"连起来。SWE-bench 类基准更是按定义排除了需求变化(需求在测试前完全给定)。

填补的空白

第一个在真实会话内建立"需求到达→行级作废"因果链度量框架的工作。

三、定位

  • 领域:实证软件工程 × 需求工程 × 编码 Agent。
  • 问题层级:现象度量与刻画(关联性而非因果性——作者明示)。
  • 四个研究问题:RQ1 刻画(需求如何晚到、如何分布);RQ2 关联(需求到达是否比无需求编辑引发更多作废);RQ3 区分(作废与变更操作类型的关系);RQ4 时机(披露时机对返工的影响——受控实验)。

四、问题定义

观察单元:会话中的编辑事件。锚点=第一次文件写入编辑(实现开始)。

需求事件编码:实现开始后用户提出的需求,沿三个 RE 维度编码——与初始 brief 的关系(补充/约束/移除)、变更操作(add/constrain/remove)、触发源。

作废代理指标:在仓库状态可可靠回放的会话子集上,每个需求到达后,先前 Agent 生成代码中被删除/替换的行数(replay-derived invalidation proxy)。

核心假设:H——需求到达后的作废量显著高于匹配的非需求编辑点。

五、解法(度量框架+对照设计)

5.1 数据与重建

3,553 个合格 SWE-chat 会话;行级代码状态回放要求会话的仓库历史可确定性重建(子集分析)。

5.2 对照设计(本文方法学精华)

  • 匹配伪事件对照:在无需求到达的编辑点配平比较——隔离"需求到达"变量;
  • 用户轮次对照:进一步限制比较范围为"用户发言但未引入新需求"的轮次之后的编辑——排除"用户说话本身就触发大改"的混淆;
  • 净删除敏感性:对删除/替换的不同计数口径做稳健性检验。

5.3 受控实验(RQ4)

操纵需求披露时机的双组实验:E1 检验延迟披露是否移动实现工作的时间分布;E2 在后续工作量配平的前提下检验"预先警告"是否减少既有代码的覆写。

5.4 标签可靠性

针对稀疏基率的聚合式可靠性度量(传统 per-item 一致性在稀有事件上失真)——这一方法学组件可迁移到其他事件级挖掘研究。

六、实验结果

6.1 RQ2 主结果:作废翻倍

新需求到达后,Agent 删除先前 Agent 代码的行数约为匹配非需求编辑的 2 倍;该方向在用户轮次对照与净删除敏感性下保持(乘数因统计口径在 2 附近浮动)。且作废负担随会话推进无下降趋势——不存在"越聊越对齐"的学习效应。

6.2 RQ3:操作类型不重要

控制需求多重性后,add/constrain/remove 的操作类型与作废量无显著关联——作废由"需求到达"本身驱动,而非某种特定变更类型。区间较宽,作者明示不排除中等效应。

6.3 RQ1:需求持续浮现

需求在整个会话中持续出现,绝大多数是补充性变更而非整体重写——“需求 emergence"是常态而非异常。

6.4 RQ4 受控实验:延迟披露是搬运而非放大

  • E1:延迟披露把本应更早的实现工作搬到了披露之后(时间分布移动);
  • E2:配平后续工作量后,预先警告对既有代码覆写无检出效应——提前知道"会有需求要来"没有用,有用的是需求内容本身(该否定性结论以"未建立不存在性"的谨慎措辞给出)。

七、知识反推

  1. Agent 交互把 30 年的 RE 代价压缩进会话:需求 volatility 的代价曲线在"即时执行"的交互模式下没有消失,而是以行级作废的形式即时显影——需求工程理论在 agentic 场景不是过时了,而是变得更可测量了。
  2. “多轮交互=渐进需求"是 Agent 评测的盲区:SWE-bench 式单轮全给定基准系统性排除这一最高频的返工来源——多轮/需求演化基准的缺失让"Agent 抗返工能力"完全未被度量。
  3. 关联≠因果的自律:作者全程把结论限定为时间关联(temporal association),并用多层对照逼近因果——这种克制在 agentic 研究的过度声明氛围里值得效仿。
  4. 警告无用论的设计含义:E2 的否定性结果说明系统提示用户"请尽量一次说完需求"大概率无效;有效的方向是 Agent 主动引导需求内容(追问具体约束),而非等待或提醒。

八、通用灵感

  • 对本课题(代码评审/自迭代系统)的启发:评审 Agent 的输入同样面临"评审标准晚到”(用户/团队规范在评审过程中才给出)。本文的编辑事件-作废代理指标设计可平移为"评审准则到达→已生成评审意见的作废率"度量,作为自迭代系统的退化监控信号。
  • 对记忆系统的启发:既然作废无衰减,Agent 记忆应显式记录"每个计划的依赖需求版本”(与同日 PlanFence 的 lineage validity 思路呼应)——需求版本变更时主动标记受影响的产出。
  • 实证方法迁移:匹配伪事件+用户轮次双重对照+净删除敏感性,是任何"事件→代价"挖掘研究的标准模板。
  • 开放问题:因果方向的确认(需求到达是否总是作废的原因而非相关);跨 Agent 框架的泛化;主动需求引导策略的增益量化。

基于论文全文逐页阅读撰写;数字出自原文摘要与 §1、§4–6。