软件开发格局正在迅速变化,这是由 人工智能工具。这些AI代码工具分为两个主要类别:生成器,旨在从提示中生成整个代码库,以及直接集成到开发人员的工作流程中的助手。这些方法之间的基本建筑和哲学差异重塑了开发人员的工作方式。
拥有超过10年的大型Web应用程序经验的软件开发人员Ivan Liagushkin为这一不断发展的领域提供了见解。他负责工程 吐温,由红杉资本支持的AI撰稿人初创公司。
定义AI代码生成器和助手
Liagushkin说:“诸如V0.dev和Github Copilot之类的工具看起来似乎相似,但从根本上讲,它们在哲学上是不同的。” “发电机主要与无代码和低代码平台竞争,以非开发人员的专业人员为目标。相比之下,编码助手旨在改变日常的编码工作流程。”
来自Vercel和Bolt.new的V0.dev之类的发电机旨在实现快速原型制作和MVP启动。他们经常对他们使用的技术,促进特定的工具和平台有所考虑。
Liagushkin说:“这些发电机对他们使用的技术高度有所看法,并经常推广特定的工具供用户订阅。” “例如,Bolt.new和可爱的都促进了Supabase开发平台,而V0.Dev自然会促进Vercel托管。”
另一方面,编码助手专注于无缝集成到现有工作流程中,了解代码库以及跨技术提供通用工具。它们旨在对个人开发人员和团队都有帮助。
Liagushkin说:“编码助手旨在改变日常编码。” “对于他们尤其是单一开发人员和团队来说,对他们来说至关重要。 光标编辑器 看起来特别有希望,提供了一种便捷的方式,可以与所谓的“光标规则”共享和扩展LLM指令。
这些工具的基础体系结构相似,在用户界面和上下文增强方法中的主要区别。核心组件是大语言模型(LLM)。
Liagushkin说:“关键组成部分是LLM本身。” “所有提到的发电机都依赖于人类的Claude 3.5十四行诗,这是长期以来的最新编码模型,仅超过其继任者Claude 3.7十四行诗。但是,编码助手,但是,允许在模型之间切换。”
体系结构内部:AI编码工具如何功能
这些工具通常不会微调模型,而是依靠高级提示技术。 New等开源工具提供了对体系结构的见解。
Liagushkin说:“感谢Bolt.New是开源的,我们可以检查使用的内容。” “核心系统提示向LLM解释了其执行环境和可用操作:创建和编辑文件,运行shell命令,搜索代码库以及使用外部工具。提示是使用XML式格式进行良好结构的结构,并使用单声学习来减少幻觉和不一致。”
管理上下文,尤其是对于大型代码库,是一个重大挑战。助手索引代码库并使用矢量数据库进行全文搜索。
Liagushkin说:“最大的挑战是为LLM提供适当的背景。” “至关重要的是要馈送正确的文件的正确部分以及相应的模块,文档和要求。助手索引代码库,创建树状数据结构以监视文件更改,然后在矢量数据库中块和嵌入文件进行全文搜索。”
最后30%
尽管具有力量,但AI编码工具仍有局限性。 Addy Osmani表达的“ 70%的问题”强调了他们的斗争,最终的30%的代码需要可靠和可维护性。
Liagushkin说:“ ’70%的问题’完美地描述了AI编码工具的基本限制:它们可以快速生成代码,使您能够在其中70%,但要与关键的最终30%挣扎,这使软件可以生产,可维护和强大。”
解决这些限制涉及提高模型准确性,提高代理体系结构并增强提示技术。
利亚古什金说:“这个问题将通过三种不同的方式解决。” “首先,模型将变得更加准确。其次,编码助手的体系结构将通过代理方法提高。最后,我们将改变。每个人都会学习有效的提示技术。”
在吐温,Liagushkin在开发AI撰稿人方面也有类似的限制。减轻这些方法的策略包括LLM请求缓存,模型杂耍和及时的预处理。
Liagushkin说:“编码助手和Twain之间的唯一区别是,编码助手制作代码,而Twain产生了人工编写质量的个性化信息。” “不过,挑战保持不变 – 要有价值,我们必须快速,具有成本效益的副本,并使它们摆脱幻觉。”
预期未来
展望未来,Liagushkin预计模型质量和工作流程演变会取得重大进步。但是,他强调采用技术仍然是关键因素。
Liagushkin说:“ AI模型质量的进度令人惊讶,我们应该期望模型变得更加准确,稳定和成本效益。” “但是,我认为编码过程中真正的变革性变化将主要来自工程和人工智能的突破,而是来自工作流程和思维定势的发展。”
道德考虑,尤其是数据安全性,也是至关重要的。 Liagushkin建议在本地网络中部署编码LLM并使用可见性限制工具。
Liagushkin说:“道德考虑主要涉及数据安全,这是一个重大但技术上可解决的问题。” “编码LLM可以在组织的本地网络中部署,其可见性限制工具旨在隔离敏感的代码部分。”
AI编码工具的未来取决于技术进步和发展社区中心态的转变。