slot deposit pulsa slot mahjong slot gacor slot gacor slot gacor resmi slot gacor 2025 slot gacor terpercaya slot gacor 2025 slot gacor hari ini slot gacor hari ini slot gacor hari ini
技术高管在开发者论坛上表示,要鼓励对AI编码持怀疑态度的人,遏制狂热分子
17611538698
webmaster@21cto.com

技术高管在开发者论坛上表示,要鼓励对AI编码持怀疑态度的人,遏制狂热分子

人工智能 0 289 2周前

图片


目前,开发者们面临的大概最紧迫问题之一就是编程的未来。

Anthropic 的首席执行官这样表示,在未来三到六个月内,人工智能将负责编写软件开发人员负责的 90% 的代码。

Birgitta Böckeler 在“AI 编程现状”的演讲中告诉与会者,现场观众不禁发出紧张的笑声。

QCon 开发者大会本周正在英国伦敦举行,其内容中充满了独特的 AI 元素。Thoughtworks 软件开发公司 AI 辅助软件交付全球负责人 Böckeler 和与会人员交流,人们应该创造一种鼓励实验和 AI 质疑的文化。

主办 QCon 的 C4Media 总裁 Dio Synodinos 在会议开始时这样表示说:

“我们正在经历整个软件开发史上最令人着迷也最令人困惑的时期。如果你正经历着好奇、兴奋,或许还有一丝不确定性,或者非常不确定,那么你并不孤单。” 

他表示,有些难题“可能没有简单的答案”。 


图片
Thoughtworks 人工智能辅助软件交付全球负责人 Birgitta Böckeler

在演讲中,Böckeler 快速介绍了过去几年人工智能编程的发展。

“一切都是从自动建议开始的,对不对?”她这样评论道,“就像强化版的自动完成一样。”

之后是聊天功能,程序员可以在 IDE 中提问;再之后是改进的上下文和“与代码库聊天”的能力,例如询问特定 UI 元素的测试在哪里,这对于检查不熟悉的代码非常有用。

因为大型语言模型 (LLM) 提供更多上下文的能力,提问也提升了它们自己的能力,模型本身也得到了有效改进。

“Claude Sonnet 模型,例如 3.5、3.7,是迄今为止最受欢迎的编程模型,”她这样说道。

那么,这对生产力的影响究竟有多大?

她说道,生产力提升幅度远不像 GitHub 之类的公司所宣称的 55%。大多数开发者表示,他们用于编码的时间不到 30%;而且 AI 也并不总是有用。

“假设 60% 的时间里,编码助手确实有用……如果你有这些数字,那么它对你的周期时间的影响就是 13%……你可能甚至感觉不到这一点。”她表示,在实践中,Thoughtworks 发现使用 AI 辅助编码可以带来约 8% 的提升;不过这仍然值得,但并不显著。

然而,通用人工智能(Gen AI)是一个不断变化的目标。

“现在,代理(Agent)已经进入了这个领域。” Böckeler 表示,尽管“代理”一词被广泛使用,但其定义尚未完全明确。在这种情况下,“代理”指的是一个编码助手,它可以访问工具,读取文件、修改文件、执行命令并运行测试。该助手会整理出一个“精心编排的提示”,并将其发送给大语言模型(LLM),并附上其可用工具的描述,“几乎就像 API 描述一样”。

大语言模型(LLM)可能会提出更多问题,“所以我们会反复讨论,这就是代理的工作原理,”Böckeler 说。

“我一直在用它,不仅仅是因为这是我的工作。它有点让人上瘾……我看到有人在Reddit上写道,它有点像老虎机,要么赢要么不赢,你总是得投入更多钱才能再试一次,”她这样补充说道。 

Böckeler说,很多时候,代理能够帮助我们更快地解决问题。

演讲者还提到了“目前正在蓬勃发展的”MCP(模型上下文协议)。代理是 MCP 客户端,而 MCP 服务器可以在任何地方运行,包括本地机器。开发人员可以编写 MCP 服务器代码来执行诸如“查询我的特定测试数据库,或向 JIRA 工单添加评论”之类的操作。编码助手可以将 MCP 工具的描述发送给 LLM,从而扩展代理可用的功能。

Böckeler还问道:“会出什么问题?” 许多人正在构建和共享 MCP 服务器,“你使用编码助手所做的事情正处于软件供应链的中段,是一个非常有价值的目标,”她说。如果你不关注某个工具正在做什么,它可能会显示一条“调用某个攻击者服务器”的语句。

演讲的主题现在转向了AI编码的其他问题。“你的模型不可能一直按照你的意愿行事,尤其是在你的课程越来越长的情况下,”Böckeler说道。更大的上下文窗口——发送给LLM的上下文数量,这意味着对细节的关注度会降低。像“遵循最佳实践”这样的指示可能行不通,因为我们不知道LLM认为的最佳实践是什么。

开发人员可以添加规则文件,指导 LLM 遵守组织标准或其他最佳实践,但这也存在风险。“人们在互联网上共享[自定义规则],”Böckeler 说,并且发现了一个漏洞,规则中可能存在隐藏字符,导致 LLM 生成额外的代码。“他们可能会在你的 HTML 中添加一个脚本标签,调用某个攻击者的服务器。”

Böckeler 还提到了氛围编码,以及如果使用不当可能会导致灾难。

她还说,人工智能“乐于助人,博学多识,但缺乏经验”。它就像一个“不会承认自己不懂”的团队成员。如果由业余人员使用,他们无法识别出问题所在,就会带来风险。

她还举了一个例子:在处理 JavaScript 应用程序中的 Docker 文件时,AI 工具告诉她遇到了内存不足错误,应该增加内存限制。然而这种修复方式是错误的。她需要弄清楚内存错误发生的原因,然后才能修复它。这种强行修复只会“引发更大的麻烦”。

Böckeler 引用了GitClear 的研究,该研究表明,人工智能编码正在增加代码流失并减少重构,为未来埋下隐患。

她说:“人工智能现在已经在我们的工具箱中,它不会消失,尽管我最后提出了这些警告,但如果以负责任的方式使用,它将非常有用。”

因此开发团队必须学会如何管理 AI 代码。“不要让 AI 左右摇摆,”Böckeler 说道,他指的是那些在拉取请求中进行 AI 代码审查的工具。“为什么它必须在拉取请求中?为什么不在我推送之前就写好?”

人工智能编码本身就存在局限性。“有些问题……我看不出在使用大语言模型时如何才能完全克服它们,”她这样说道。


图片

人工智能:平衡团队中的爱好者和怀疑者

Böckeler 还表示,团队中既有对人工智能持怀疑态度的人,也有热情的支持者。她最后建议要欣赏队友。

“如果你是热情支持者,当怀疑者尝试一些两个月前他们不会尝试的事情时,要充分给予褒奖。
如果你更倾向于怀疑,要欣赏你的同事们的尝试,因为人工智能有一些意想不到的特性和缺点,并在他们仔细观察结果时,给予大大地赞扬。”


作者:场长

评论