为什么智能AI需要更好的专家
作者通过使用AI代理(OpenAI Codex)重写sed程序的经历,展示了AI在代码自动化方面的强大能力,但也强调了专家指导的重要性。文章详细讨论了AI代码需要仔细审查、大量改进提示以及成本(金钱和环境)问题,并提供了对开发人员、管理者和决策者的建议。
近日,软件开发专家Diomidis Spinellis在其博客中分享了他使用OpenAI Codex(一种AI编码代理)对uutils项目中的sed程序进行重大修改的经历。这次修改涉及13个文件、1740行新增和609行删除,旨在将内部数据处理从字符改为原始字节,以提高与GNU sed的兼容性和性能。Spinellis认为,这次实践深刻揭示了AI编码代理的能力与局限。
一方面,Codex在初始提示和后续优化中正确引导了任务方向,处理了大量繁琐的工作,节省了时间和精力。修改后的代码在所有阶段都能编译和运行成功(得益于全面的单元测试、集成测试和持续集成检查)。
另一方面,Spinellis指出,要获得生产质量的代码,Codex的工作需要仔细审查和大量专家指导。在他发起的总共78个提示和子提示中,有61个(78%)是要求改进的。这些改进包括代码注释、单元测试、架构调整(如避免不必要的UTF-8转换)、错误处理优化等。Spinellis强调,即使AI代理在不断进步,分配给它们的任务也会越来越复杂,所需的审查和专家指导也将随之增加。
Spinellis对AI编码的成本提出了具体数据。一次会话的Token使用总量约430万,按当时价格计算约80美元。实际通过订阅使用的成本可能被补贴,但长期使用的成本可能与一个开发人员的薪资相当。环境方面,该会话产生了约326千克的二氧化碳排放和12,871升水消耗,相当于一辆高效柴油/汽油车行驶2,500公里或一次短中程航班的排放。这些外部成本在欧盟碳排放交易体系下约为26欧元,在美国环保局社会碳成本下为42-117美元。水费在雅典本地家庭水价中约为4.50-41欧元。这些成本虽不天文数字,但远非可忽略。
Spinellis还给出了针对不同角色的建议:
- 学习编程的人:要思考如何获得识别AI代码问题并提示修复所需的知识和经验。
- 管理软件开发或人力资源的人:要规划如何让新开发人员掌握这些技能。
- 决定完全用AI代理外包编程的人:要考虑是否愿意让代码逐渐劣化、积累技术债务。
文章末尾列出了会话中使用的所有78个提示,其中要求改进的以粗体显示。Spinellis承认,有些改进(如注释和单元测试)可以由更强大的代理或适当的初始配置自动完成,但AI代理的增强也会使任务要求更严格。最后,他还提到自己手动完成了一些更改以节省时间和浪费。