文章摘要
文章指出,在AI代理工程热潮中,软件工程基础比以往更重要。真正的创新者低调务实,善用工具而非炒作。代理工具虽已跨越可行性门槛,但开发者仍需谨慎选择,扎实解决系统开发中的核心问题。
文章总结
软件工程基础比以往任何时候都更重要
作为一名软件工程师,我时常被“冒充者综合征”困扰,思考着这个职业的真正意义。网络上关于“智能体工程”及其未来影响的讨论喧嚣嘈杂,但真正有价值的信息却很少。我选择这个标题,是想强调在解决软件和系统开发难题时,需要谨慎地做出每一个选择。
抛开那些大型模型供应商的炒作和狂热营销,我发现将“工具”与“模型”结合使用,确实是一种强大的手段。我观察朋友们如何使用这些工具,学到了很多。有趣的是,那些做出最惊人成果的人,往往不是在网上大肆宣扬或预言行业末日的人。他们找到了有力的工具,正在探索如何利用杠杆原理,撬动世界。
过去一年里,智能体工具已经跨越了“能否实现”的门槛。我不愿看到世界知识被未经许可地攫取,也不愿看到经济上的自私行为。虽然大型模型的经济模式从任何报告来看都不可持续,但它的能力不会消失,反而在快速缩小。开源模型已经让个人电脑具备了类似的能力,虽然效率稍逊,但差距正在缩小。
“能否实现”只是起点,远非软件或系统工程师工作的全部。就像我年轻时学习焊接,很快就能做出东西,但那些东西要么搬不动,要么出不了门。我学到的是:如何组合才是关键。使用智能体工具开发时,如果稍加预见,你不仅能得到“能运行”的代码,还能实现“可测试”。但除此之外,代码的“接缝”——即代码如何工作、它的“API”如何与其他软件配合——既是艺术也是科学。这取决于你的视角、经验和猜测,既要解决当前问题,也要考虑软件的长期维护。
让软件可调试、可维护、分层且可组合,仍然是一项艰巨的任务。这需要大量深思熟虑的推理,而目前的大语言模型,即使是最前沿的,在这方面也力不从心。要知道,LLM并不“推理”,它们只是预测,模型本质上是压缩的人类知识。如果人类知识中包含了推理痕迹,它们就能复现出来。对于专注于软件开发的智能体来说,这些推理痕迹是宝贵的数据。一篇名为《思考的幻觉》的研究论文就揭示了LLM在推理方面的不足。虽然也有研究关注行动结果的预测,但这与目前的编码智能体不同,是一个截然不同且引人入胜的领域。
在使用LLM时,仍有很多方法可以提高它们的效率。我认为我们甚至还没有开始挖掘其全部潜力。目前最有效的做法是:在正确的时间提供简洁、准确的数据,并配备确定性验证工具,用自然语言反馈让LLM自我修正。令我惊讶的不是它能预测写什么,而是它能有效地调用工具并遵循指令。
这种遵循指令的能力也有其弊端,正如西蒙·威利森提出的“致命三重奏”:LLM无法区分好建议和坏建议,从根本上无法始终如一地防止提示注入攻击。“对齐工作”、安全防护和沙盒环境能增加一些屏障,但存在根本性的漏洞。一个不知疲倦地遵循指令却缺乏良好推理能力的系统,对我来说简直是噩梦。
我希望未来模型训练能包含更多关于构建可调试、可维护软件的推理痕迹,并将其作为强化评估的关键部分。仔细审查、规划和修复软件(及系统)的“接缝”,是我们无论是否使用智能体助手都必须掌握的关键技能。当看到人们轻易地说“哦,这很容易实现”,并急于用粗糙的工具去完成时,我认为软件工程基础比以往任何时候都更重要。
现在正是关注那些分享软件工艺、探讨如何成为更好工匠的人的好时机。显然,从来就没有单一的答案或万能药。一切都在于权衡,为手头的问题做出合理的选择。借助众多杰出思想家的智慧——无论是现在还是过去几十年的积累——我们拥有一个丰富的工具箱。关键在于选择或重构合适的抽象,管理认知负荷,知道哪些部分需要稳定,哪些部分需要灵活应变。
评论总结
根据评论内容,总结主要观点如下:
1. 对AI生成代码质量的质疑(认可度:中等) - 评论2指出,AI生成的代码在目录结构、接口设计和状态管理上混乱,常做出错误假设,需要人工逐行审查。 - 关键引用:"the directory structure, interface design and general state management is usually a haphazard mess";"it will just make a decision and it's often the wrong one"。
2. 对AI推理能力的争议(认可度:中等) - 评论3认为,推理是预测训练目标下的涌现属性,而非本质缺陷。 - 关键引用:"Prediction is the training objective. The ability to reason can be, and very arguably is, an emergent property"。
3. 对AI代码实用性的乐观看法(认可度:较高) - 评论6声称,AI已能维护15万行代码的移动应用,无需人工审查代码,且提示注入问题已基本解决。 - 关键引用:"I stopped even glancing at the code about two months ago";"prompt injection appears to be largely solved already"(引用Anthropic第三方评估数据)。
4. 对AI代码的比喻性评价(认可度:中等) - 评论7将AI代码比作宜家家具:足够好但缺乏高端定制,未来将减少对高级工程师的需求,仅保留1%的顶尖人才。 - 关键引用:"AI generated code is like IKEA furniture";"Good enough to vastly reduce the need for fine craftsmen"。
5. 对软件工程本质的反思(认可度:较低) - 评论8强调,软件工程应像传统工程一样基于硬计算和理论(如队列理论),而非依赖AI的模糊启发式。 - 关键引用:"engineering is actually a thing";"you can use queue theory to calculate what it would take to achieve certain guarantees"。
6. 对AI能力的补充观点(认可度:中等) - 评论4认为,AI在机械应用模糊启发式、识别常见模式方面表现出色,但架构设计仍困难。 - 关键引用:"they're very good at applying 'fuzzy heuristics' in a mechanical way";"Designing architecture, that's difficult"。
7. 对AI定位的简洁概括(认可度:较低) - 评论5将LLM比作“新Excel”,暗示其工具性而非革命性。 - 关键引用:"LLM is the new Excel"。
总结:评论呈现两极分化。一方质疑AI代码质量、推理能力和工程适用性,强调人工审查和传统工程方法的重要性;另一方则基于实际案例和第三方数据,认为AI已能高效维护大型代码库,并解决安全漏洞。中间观点认为AI擅长机械性任务但缺乏架构设计能力,未来可能减少对普通工程师的需求。