AI News HubLIVE
站内改写1 分钟阅读

与犹豫不决的AI编程助手的趣事

作者描述了一个AI编程助手(Claude Opus 4.6配合GitHub Copilot)在修复GoAWK程序中的bug时,虽然快速诊断出问题,但随后在7种不同修复方案之间反复切换了25次以上,暴露了AI模型在决策时的不确定性。

来源Hacker News AI作者: azhenley

本·霍伊特(Ben Hoyt)在个人博客中记录了一段与AI编程助手合作的趣事。他正在使用Opus 4.6(Claude的模型)配合GitHub Copilot插件,在GoLand IDE中修复GoAWK解释器的一个非平凡bug。问题源于一个Awk程序:BEGIN { a["x"]=1; for (NR in a) print NR, a[NR] },预期输出“x 1”,但实际输出“0\n0\n”。

AI在几个段落内就诊断出问题所在,速度甚至快过人类。它指出,特殊变量(如NR)被存储为原生Go的int类型,导致字符串表示丢失。然而,令人哭笑不得的是,AI随后陷入了漫长的决策挣扎——在短短几分钟内,它提出了7种不同的修复选项,并在它们之间反复切换了至少25次。

这些选项包括:A)保留特殊变量的字符串表示;B)将特殊变量存储为值类型;C)当特殊变量被字符串赋值时存储字符串覆盖;D)专门修复ForIn操作码;E)在侧字段中存储原始值;F)仅将lineNum和fileLineNum改为值类型;G)添加特殊值覆盖映射。AI频繁使用“实际上……”这样的转折词,前后矛盾达19次之多。

有趣的是,最经常被提及的选项B(出现11次)正是最恰当的修复方案。霍伊特最终在一个拉取请求中实际采用了这个方案。然而,AI在决策过程中似乎无法判断何时应该停止,甚至开始修改代码后又忘记自己已做改动,最终被作者取消。

这一案例生动展示了当前AI智能体在决策收敛方面的局限性。它们可以快速诊断问题并提出多种解决方案,但缺乏一种机制来评估并停止在最佳选项上。霍伊特感慨:“这些机器令人惊叹,但我可不想有如此犹豫不决的朋友。”