摘要
1) 一句话总结 现阶段AI无法独立完成复杂软件项目,主要是受限于大语言模型在上下文窗口、自然语言精确度、环境感知与执行能力以及幻觉等方面的固有缺陷,目前仍只能作为人类开发者的辅助工具。
2) 关键要点
- 上下文窗口受限:复杂项目代码和文档庞大,AI难以获取全局视野,从而无法有效进行架构设计和模块拆分。
- 自然语言不精确:项目包含大量代码和文档之外的隐性知识,仅靠语言描述无法让AI完全理解整个项目。
- 需求转化依赖人类:项目需求通常是开放式的,必须由人类(如产品、运营)经过讨论和决策,将其转化为具体、确定的功能要求后,AI才能着手实现。
- 缺乏环境感知与直接执行能力:软件开发包含编译、部署、测试、集成和调试等大量互动环节,AI无法直接执行,且目前难以胜任复杂的调试操作。
- 当前协作模式:现阶段AI以辅助为主,流程为“人类提出模块级要求 → AI生成代码 → 人类审查与测试 → 人类将代码集成到项目中”。
3) 风险与缺口
- 代码幻觉风险:由于AI训练知识有限,在响应无限的人类需求时容易产生幻觉(如编造不存在的API或无法运行的代码)。若未经人类仔细审查和测试就混入项目中,后期发现和修复的代价极大。
正文
宝玉老师我有个问题。现在的AI开发工具比如cursor或者Devin其实都无法完成大型项目的开发,你也提到如果是一个模块,它们是可以胜任的,同时像o1这样的先进模型,是可以把大型项目拆分到模块的,那为什么还是不能很好的完成呢?
A.模型不行,拆分模块不够好
B.工具不行,需要人在中间调和
这其实是局限于大语言模型自身的缺陷:
上下文窗口长度有限
复杂项目的代码、文档是很多的,如果不能全局了解整个项目,你就很难去设计架构去拆分模块。
自然语言是不精确的
你很难用语言来描述清楚一个项目,就算你把整个代码库加上所有的文档都扔给 AI(假设上下文窗口长度没限制),它也不能完全理解这个项目,因为一个项目会有很多代码、文档之外的知识,要把它完全描述清楚要 AI 能理解这很难。
不仅仅是自然语言难以精确描述,很多时候项目的需求是开放式的,需要经过反复的讨论和修改才能把开放的问题变成确定的问题。比如说小红书突然有很多美国用户注册,你告诉 AI 这件事 AI 也不知道该做啥,最多给你出点点子,最终还必须是运营和产品把这件事梳理清楚,做出决策,变成具体的功能要求,比如要更好的国际化的支持,翻译的功能,等等,AI 才能去实现。
无法感知环境,也无法直接执行
当人类去开发一个项目的时候,不光是写代码,还需要很多互动,比如编译代码、部署代码、测试代码、模块集成、调试等等,这些事情 AI 是不能直接去做的,它需要去调用外部工具去编译、去部署,如果要调试那就更难了,因为它只能借助多模态,复杂一点的操作它现在还很难胜任。
幻觉
由于 AI 训练的知识是有限的,但人类的需求是无限的,但 AI 又要尽可能的对人类的要求做出响应,所以它就会产生幻觉,编造出一些不存在的 API、无法运行的代码,如果人不认真检查和仔细测试,就很容易把这些有问题的代码混进去,后期要花很大代价去发现和修复。
所以现阶段,AI 还是辅助为主,人类提出模块级别的要求,AI 去生成代码,然后人去审查去测试,最后再集成到项目中。