AgenticTyper: Automated Typing of Legacy Software Projects Using Agentic AI
本文提出了 AgenticTyper,一种基于大语言模型的智能代理系统,通过迭代纠错和转译对比确保行为一致性,成功在 20 分钟内将两个专有仓库(共 8.1 万行代码)中的 633 个类型错误全部修复,显著降低了将遗留 JavaScript 项目迁移至 TypeScript 的人工成本。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
这篇论文介绍了一个名为 AgenticTyper 的新工具,它就像是一个**“智能代码翻译官”**,专门用来给那些老旧的、没有“安全网”的 JavaScript 软件项目穿上“防弹衣”(即添加类型安全)。
为了让你更容易理解,我们可以把整个故事想象成给一座没有图纸的古老迷宫安装现代化的导航系统。
1. 背景:为什么我们需要它?
想象一下,你接手了一座由几代人建成的老式迷宫(Legacy Software)。
- 现状:这座迷宫是用一种非常灵活但混乱的语言(JavaScript)写的。里面的房间(代码)没有门牌,走廊没有标记。虽然里面藏着巨大的宝藏(商业价值),但如果你想修改其中一面墙,很容易不小心把整个迷宫的承重墙拆了,导致崩塌(Bug)。
- 痛点:为了安全,工程师们发明了一种新语言叫 TypeScript,它就像给迷宫加上门牌和导航图,告诉你“这里只能走人,不能走车”。但是,手动给这座巨大的迷宫画图纸(添加类型注解)是一项浩大的工程,需要好几个人花上几天甚至几年,既贵又累。
- 旧方法的局限:以前的自动化工具就像是一个只会猜谜的机器人。它看着迷宫猜:“这大概是个房间吧?”但它经常猜错,而且一旦猜错,它不会去检查会不会把路堵死,也不会去修路。
2. 解决方案:AgenticTyper 是什么?
AgenticTyper 不是一个只会猜谜的机器人,它是一个拥有“超级大脑”和“多只手”的智能特工团队(Agentic AI)。
它的核心能力可以比喻为:
- 多任务处理:它不像以前那样一次只修一个房间,而是能同时派出一队特工,分头去处理迷宫的不同区域。
- 自我纠错:它不是盲目地画图纸。每画一笔,它都会立刻**“试运行”**一下(转译对比)。
- 比喻:就像你在给迷宫加新门牌时,会立刻让人走一遍。如果走法变了(比如原本能通行的路现在堵了),系统会立刻报警:“停!你改错了,把路堵死了!”然后特工会撤回修改,重新思考。
- 区分“真病”和“怪癖”:有些老迷宫的走法很怪(比如把车当人用),强行加门牌会破坏原有功能。AgenticTyper 很聪明,它能识别出哪些是真正的错误(需要修),哪些是特殊的“怪癖”(需要保留但标记出来,让人类最后决定)。
3. 它是如何工作的?(三步走战略)
这个特工团队的工作分三个阶段,像打游戏通关一样:
第一阶段:建立最小防线(最小化设置)
- 动作:特工们先给迷宫装上最基础的“门牌”(JSDoc 注释)。
- 策略:遇到实在修不好的怪路,先贴个“此处有坑,小心行走”的警示条(
@ts-expect-error),而不是强行改路。 - 成果:确保迷宫不会在修改过程中崩塌。
第二阶段:全面覆盖(开启严格模式)
- 动作:现在要求所有地方都必须有门牌,不能含糊其辞(开启
noImplicitAny)。 - 策略:特工们开始填补所有空白,定义清楚每个房间的功能。如果有新出现的错误,继续用“试运行”的方法去修。
- 动作:现在要求所有地方都必须有门牌,不能含糊其辞(开启
第三阶段:完美主义(严格模式)
- 动作:开启最高级别的检查(Strict Mode)。
- 策略:这时候可能会发现一些深层的结构问题(比如空指针),这通常需要重新设计房间结构(重构)。这一步风险最大,需要人工介入确认。
4. 惊人的成果:快、准、省
作者在两个真实的、巨大的企业级“迷宫”(总共 8.1 万行代码)上测试了这个系统:
- 速度:以前,一个经验丰富的工程师需要整整一天才能搞定这些类型错误。现在,AgenticTyper 只用了 20 分钟!
- 成本:以前的人力成本很高,现在只需要花费 25 美元(主要是调用 AI 的费用)。
- 质量:它解决了所有 633 个 初始错误,并且没有改变迷宫原本的运行逻辑(没有引入新 Bug)。
- 小瑕疵:大约有 7% 的地方,特工贴的“警示条”稍微多了点(本来可以修好,但它选择了贴条),但这已经非常接近完美了。
总结
AgenticTyper 就像是一个不知疲倦、极其谨慎的“老建筑改造专家”。它利用最新的 AI 技术,把原本需要人类工程师耗时耗力、充满风险的“给老代码加类型”的工作,变成了一场20 分钟就能完成的自动化手术。
这不仅让老旧软件变得更安全、更容易维护,还极大地降低了企业的成本,让工程师可以把精力从“修路”转移到“设计新建筑”上。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。