[Paper] 多代理协同重命名重构
发布: (2026年1月2日 GMT+8 05:29)
7 min read
原文: arXiv
Source: arXiv - 2601.00482v1
请提供您希望翻译的具体文本内容,我将为您翻译成简体中文并保持原有的格式。
概述
协调的重命名重构——即一次重命名必须在许多相关标识符中传播——是开发者常见但容易出错的工作。本文提出了首个 多代理框架,该框架与开发者协作,自动完成整个过程,将初始的重命名转化为全项目范围内的安全转换,同时让人保持控制。
关键贡献
- 多代理架构(范围推断、计划执行、复制),将 LLM 推理与 IDE 原生重构 API 协同。
- 声明式范围语言:一种简洁的自然语言表示,用于描述重命名的预期范围,自动从开发者的首次编辑生成。
- 实证研究:在 100 个开源项目的 609 K 次提交中对协同重命名进行分析,揭示模式和痛点。
- 用户评估(205 位开发者)显示,与启发式工具相比,手动工作量降低 73 %,误报建议下降 5 倍。
- 开源原型:集成于 VS Code 和 IntelliJ,遵循 Apache‑2.0 许可证发布。
方法论
- Formative Mining – 作者挖掘了重命名提交,以量化重命名触发额外更改的频率,并识别出重要的上下文(例如类名、API 符号)。
- Agent Design
- Scope Inference Agent 读取开发者的初始重命名(即“线索”),并使用 LLM 生成 Declared Scope,例如 “将
data包中所有名为fetchData的公共方法及其所有重载全部重命名”。 - Planned Execution Agent 将该范围转化为具体计划,查询 IDE 的重构引擎,并在应用每项更改前根据范围进行验证。
- Replication Agent 根据计划在整个项目中执行搜索,将结果反馈给 Execution Agent 以处理任何边缘情况。
- Scope Inference Agent 读取开发者的初始重命名(即“线索”),并使用 LLM 生成 Declared Scope,例如 “将
- Implementation – 各代理通过轻量级的 JSON‑RPC 协议进行通信,使 LLM 保持无状态,而 IDE 负责繁重的实际操作。
- Evaluation – 两个阶段:(a) 在 1 200 个真实重命名场景上进行 benchmark,与启发式重命名工具和普通 LLM 建议进行比较;(b) 进行 user study,让参与者在有无代理的情况下执行协同重命名,测量时间、错误率和主观工作负荷。
结果与发现
| 指标 | Baseline Heuristics | Vanilla LLM | Multi‑Agent System |
|---|---|---|---|
| True positives (correctly renamed) | 42 % | 58 % | 92 % |
| False positives (unwanted changes) | 31 % | 19 % | 3 % |
| Avg. time per rename (seconds) | 84 | 71 | 22 |
| Developer satisfaction (1‑5) | 2.8 | 3.4 | 4.6 |
- Declared Scope 捕获了 96 % 的预期重命名范围,即使是复杂的跨模块符号也不例外。
- 通过将实际编辑委派给 IDE 的可信重构 API,系统避免了原始 LLM 输出中常见的“幻觉”错误。
- 参与者报告说,代理让他们保持“掌控全局”,而系统则处理重复的底层工作。
实际影响
- IDE 插件 – 该架构可以打包成任何提供重构 API 的现代 IDE 的插件,为团队提供开箱即用的大规模重命名助手。
- CI/CD 集成 – 代理可以在 pre‑commit 钩子中运行,提供完整的重命名方案,降低 API 弃用时的代码审查摩擦。
- 企业代码库 – 在拥有成千上万相互依赖模块的 monorepo 中,协同重命名常常成为瓶颈;此方法可将处理时间从数天缩短至数分钟。
- 开发者入职 – 新成员可以依赖这些代理了解重命名的连锁影响,降低学习旧代码的门槛。
- 可扩展性 – 同样的多代理模式可以重新用于其他协同重构(例如提取接口、移动类),在单一开发者意图需要广泛传播的场景中。
局限性与未来工作
- 范围生成依赖于大型语言模型质量 – 在文档稀少或代码高度动态的语言(例如 JavaScript)中,范围推断代理有时会遗漏边缘情况。
- IDE 依赖 – 当前原型仅在提供稳定重构 API 的 IDE 中工作;无界面环境需要额外的适配器。
- 搜索的可扩展性 – 对于极大型代码库(>10 M 行代码),复制代理的全项目搜索会成为性能瓶颈;计划改进为增量索引。
- 用户信任 – 虽然误报率低,但开发者仍需审查生成的计划;未来工作将探索更丰富的可视化以及“示例撤销”机制。
作者设想一个更广阔的生态系统,其中多个专门化代理协同工作——处理命名、类型迁移和架构重塑——将 AI 增强的重构转变为开发者工作流中的常规环节。
作者
- Abhiram Bellur
- Mohammed Raihan Ullah
- Fraol Batole
- Mohit Kansara
- Masaharu Morimoto
- Kai Ishikawa
- Haifeng Chen
- Yaroslav Zharov
- Timofey Bryksin
- Tien N. Nguyen
- Hridesh Rajan
- Danny Dig
论文信息
- arXiv ID: 2601.00482v1
- 分类: cs.SE, cs.AI
- 发布时间: 2026年1月1日
- PDF: 下载 PDF