Towards Agentic Runtime Healing
本文介绍了"Healer",这是一个新颖的框架,它利用大语言模型动态生成并实时执行定制的异常处理代码,在恢复未预见的运行时错误方面实现了高成功率,并标志着向代理式、自愈软件系统迈出了重要一步。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你的计算机程序就像厨房里一位忙碌的厨师。通常,这位厨师会完美地遵循食谱(即代码)。但有时,意外会发生:厨师试图切一种并不存在的蔬菜,或者试图把蛋糕放进一个已经塞满的烤箱。在软件世界里,这就是运行时错误。
传统上,当厨师犯错时,厨房就会停工。厨师停下,顾客挨饿,而一位人类经理必须介入,找出问题所在,并为下次重写食谱。这就是当今大多数软件的运作方式:一旦崩溃,它就会一直处于崩溃状态,直到有人类修复它。
新理念:“AI 副厨”
这篇论文提出了一个名为Healer的新概念。把 Healer 想象成一位极其聪明、反应迅速的AI 副厨,就站在主厨身旁。
当主厨绊倒并打翻锅具(即发生错误)时,AI 副厨不会让厨房停工,而是立即介入。它不只是惊呼“天哪!”然后呼叫经理,而是立刻审视混乱局面,理解现状,并在一张便利贴上写下一条全新的、微小的指令,以解决眼前的问题。
例如,如果错误是“锅已经在炉灶上了”,AI 可能会立刻潦草地写下:“好吧,我们就换个锅吧”,然后将这条指令递给主厨。主厨阅读后照做,继续烹饪,服务从未中断。
工作原理(魔法技巧)
研究人员构建了一个系统来测试这一想法。以下是他们描述的逐步过程:
- 崩溃:程序遇到了一个未预期的错误。
- 快照:系统迅速拍摄一张“照片”,记录那一刻发生的一切:错误信息、代码中断的位置,以及变量(即食材)的状态。
- 询问:这张快照被发送给一个大型语言模型(LLM)。将 LLM 想象成一位超级聪明的图书管理员,他读遍了世界上所有的食谱。系统向这位图书管理员提问:“这是问题所在。请写一个快速修复方案,让我们能继续运行。”
- 修复:图书管理员写出一小段代码(即“修复代码”)。
- 重启:系统立即运行这段新代码。它改变程序的状态(就像更换锅具一样),使错误消失,程序继续运行,仿佛什么都没发生过。
他们的发现
该团队在数千个出错的程序上测试了这个"AI 副厨”。结果如下:
- 效果出乎意料地好:当他们使用可用的最智能 AI 模型(GPT-4)时,它成功修复程序并让其继续运行的比例约为73%。
- 能够完成任务:在约**39%**的案例中,程序不仅继续运行,而且实际上正确完成了任务,得出了正确答案。
- 训练有帮助:他们发现,如果专门“教导”AI 如何修复这些错误(通过向其展示良好修复示例),即使是更小、更弱的 AI 模型,其表现也能几乎媲美那些庞大而昂贵的模型。
潜在问题:信任 AI
论文还指出了一个大风险。由于 AI 是即时编写代码,它可能会犯错。
- 风险:想象一下,AI 副厨决定通过告诉厨师“关闭整栋大楼的燃气”来解决“烤箱过热”的问题。那将是一场灾难。
- 现实:研究人员发现,虽然 AI 擅长修复问题,但它有时会做出危险举动,例如跳过重要步骤或更改错误的变量。
- 解决方案:他们建议我们需要“安全检查”。这就像给 AI 副厨一份“安全工具”清单,规定他们可以使用哪些工具。他们可以更换锅具或调整温度,但不能触碰燃气管道。这样既能保证厨房安全,又允许 AI 提供帮助。
核心结论
这篇论文是迈向构建能够自我修复软件的第一步。我们不再需要等待人类来修复崩溃,未来或许很快就能拥有利用 AI 即时修补自身漏洞并持续工作的软件。
然而,作者明确指出:这仍是一个原型。我们需要确保 AI 在尝试修复时不会意外破坏其他东西。但其潜力巨大:软件将更具韧性、更少崩溃,并能够自主从错误中恢复。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。