AI软件开发究竟有多强?智能体编程工具的实力解析

当前软件工程团队正在试验基于AI代理的编码工具和大语言模型,以提高开发速度和质量。然而,AI编码工具的效果很大程度上取决于使用方式。开发者需要提供结构化的问题描述、明确的执行要求和相关上下文,同时建立适当的防护机制。AI不仅能处理重复性任务,还能识别和评估替代方案,从被动助手演进为工作流程推进器。成功的关键在于将AI视为合作伙伴而非快捷工具,并将其整合到软件交付的全生命周期中。

软件代码具有自我复制的自主效率流。对我们大多数人来说,最容易识别的是计算机病毒,它们可以根据最初的构造方式和部署位置复制其功能、力量和足迹。更有用的是软件开发者使用的智能体AI线程,用于创建新的、有用的、功能性的、安全的软件代码。

这个想法可以追溯到1970年代开始的工作,生成式AI和智能体AI服务现在被用来为开发者"切割"代码。那么AI编程借鉴了什么知识源泉和学习,它在所做的事情上表现如何,有哪些注意事项和担忧呢?

今日试验,明日实施

如今,许多软件工程团队正在试用基于智能体AI的编程工具和大语言模型,以提高开发速度、范围,并希望也能提高准确性,从而获得调试后更强大的软件应用程序。对于这些原型开发先锋来说,现在是一个情感上相当艰难的时期,即当AI代码不工作时,或者产生了偏斜的衍生服务时,工程师们自然会质疑提示是否有问题,问题是出在他们身上,还是出在机器上。

幸运的是,这些挫折很少是由于开发者甚至大语言模型的固有限制造成的。更多时候,问题出现在工具的使用方式上。通过完善他们的规划流程、建立护栏并将AI纳入更广泛的工作流程中,开发者可以取得更好的结果并避免浪费精力。这是数据监控、可观测性和安全公司Datadog产品副总裁Yrieix Garnier的观点。

"许多开发者期望大语言模型像人类协作者一样解释意图——理论上它们应该这样做——但他们并不总是提供AI工具有效运行所需的上下文、清晰度或精确度。不同的模型在生成响应时投入的'努力'可能有所不同,通常以Token来衡量。要求模型'更努力地思考'或'思考更长时间'可以触发它消耗更多Token并产生更详细的答案,"Garnier解释道。

不是你的问题,是我的问题

他说,如果期望与输出之间存在持续差距,但问题不太可能与模型在其机器语言机器大脑意义上"思考"的努力程度有关。更多时候,问题在于如何向大语言模型(通过智能体AI编程助手)提出请求的方式。也许不出所料,软件应用程序开发者在提供问题的结构化描述、指定期望的执行并通过仅包含相关上下文来仔细构建框架时,会看到更好的结果。

例如,如果智能体需要引用特定的系统架构,就应该明确指示。虽然关于我们需要对AI服务多么礼貌的话题一致认为礼貌和文明并不重要,但听起来系统性的特异性确实起到了决定性作用。

"同时,重要的是不要用过多的信息使模型超载。大语言模型有严格的上下文限制,太多的输入可能会引入不必要的复杂性,从而降低性能,"Garnier说。"即使有结构良好的提示,AI智能体也可能引入错误或偏离预期的解决方案。没有适当的检查,修复这些问题的成本可能超过使用AI的好处。因此,建立护栏是必不可少的。"

Datadog团队已经进行了大量的软件自用测试,以找出这些理论、构造和方法如何应用于自己的平台。Garnier建议,一个强大的技术是在模型生成或修改任何代码之前纳入规划阶段。在向智能体呈现问题陈述、约束条件和预期结果后,应该要求它将执行计划分解为步骤并解释其推理。在智能体进入实施阶段之前审查这个计划,让开发者能够早期发现缺陷。它还防止智能体添加不必要的复杂性层或试图通过生成冗余脚本或备份代码来修补错误。

识别和评估替代方案

"规划还有助于解决上下文窗口限制带来的挑战。当模型用完上下文时,它们通常会将对话总结到一个新窗口中,这可能导致有价值的细节丢失。提炼的实施计划作为一个紧凑的指南,可以传递到新窗口中,保持AI的一致性而不过度扩展上下文,"他说。"当开发者讨论智能体AI工具和大语言模型的潜力时,他们经常强调其在管理重复任务或自动化例行测试方面的作用,从而加速交付。然而,有时被忽视的一个关键能力是识别和评估替代方法的能力。"

听起来从零开始解决复杂问题在时间和努力方面都可能代价高昂。开发者可以使用大语言模型来探索不同的方法、生成初步实现并突出权衡,而不是手动原型化每个选项。这些输出可以进行基准测试,让团队在进行更深层次投资之前专注于最有前景的途径。

AI还可以作为"审查员"机制,即开发者可以提出实施计划并要求模型对其进行压力测试,识别弱点或被忽视的考虑因素。这个角色可以在早期提出问题,帮助团队为利益相关者审查做更充分的准备。通过这种方式扩大其应用,AI从加速执行的工具转变为扩展视角的工具,支持更快的交付和更明智的决策制定。

从代码伙伴到工作流促进者

"大多数开发者已经熟悉使用AI助手来调试和改进本地代码。然而,当这些工具与外部系统交互时,事情变得更有趣。例如,在更新Terraform配置(一种基础设施即代码指令)时,准确了解当前环境至关重要。没有这种可见性,就有引入冲突或在预期状态和实际状态之间产生偏差的风险。AI智能体无法提供这种保证,除非它们访问正确的数据源,涉及必要的权限和集成,"Garnier在这个主题的深入讨论中详细说明。

有了正确的设置,AI工具——以助手或更复杂智能体的形式——不再是被动的帮手。Garnier确信它们可以"演化为工作流促进者",加速事件响应,减少解决时间,并确保运营决策基于可靠的、上下文相关的性能数据。因此,AI从更快编写代码的方式转变为维护有弹性、可观测和高性能系统的可信指南。

一个蓬勃发展的伙伴关系?

这里的要点是,为了让AI编程工具取得成功,开发者需要开始将AI视为不是捷径,而是协作者,即一个在正确的上下文、护栏和工作流程下表现出色的协作者。

随着技术的成熟,Garnier在这个主题上的临别赠言敦促我们理解,最有效的开发者不会只是使用AI来更快地生成代码。相反,他们会将其整合到整个软件交付生命周期中,包括研究、规划、审查和维护,以获得更高的精确度。通过这样做,AI从编程助手转变为工程合作伙伴,使团队能够自信地应对复杂性。

Q&A

Q1:为什么AI编程工具经常不能满足开发者的期望?

A:问题通常不在于大语言模型本身的限制,而在于工具的使用方式。开发者往往期望AI像人类协作者一样解释意图,但没有提供足够的上下文、清晰度或精确度。当开发者提供结构化的问题描述、指定期望执行并仅包含相关上下文时,会获得更好的结果。

Q2:如何提高AI编程工具的效果?

A:关键是建立规划阶段和护栏机制。在AI生成代码前,应要求它将执行计划分解为步骤并解释推理,然后审查这个计划以早期发现缺陷。同时要避免信息过载,因为大语言模型有严格的上下文限制,过多输入会降低性能。

Q3:AI编程工具未来会如何发展?

A:AI将从简单的编程助手演化为工程合作伙伴。最有效的开发者会将AI整合到整个软件交付生命周期中,包括研究、规划、审查和维护。AI工具会成为工作流促进者,加速事件响应,减少解决时间,并基于可靠数据做出运营决策。

来源:Forbes

0赞

好文章,需要你的鼓励

2025

10/13

23:28

分享

点赞

邮件订阅