Cursor不适合大型项目?

AITNT-国内领先的一站式人工智能新闻资讯网站
# 热门搜索 #
AITNT-国内领先的一站式人工智能新闻资讯网站 搜索
Cursor不适合大型项目?
5913点击    2025-03-11 11:50

Cursor不适合大型项目?


自 2025 年伊始,Cursor、WindSurf、Trae 等 Agentic AI 编程工具开始席卷开发领域。然而与过往的 GenAI 技术类似,这些 Agentic AI 技术同样面临着小规模 demo 惊艳,产品化实战翻车的困境——它们生成一两千行的小型原型轻而易举。自我迭代、自动 Debug、快速交付,整个过程行云流水。


可一旦踏入真实的软件工程应用,比如当项目规模突破 5000 行代码时,Agentic AI 的魔法似乎突然失灵。它就像在迷雾中盲行,既看不清全局架构,又记不住历史逻辑,最终代码中充斥着诡异的故障模式,开发者不得不频繁手动干预才能勉强达标。


这不禁让人怀疑:Agentic AI 编程究竟是一场改变游戏规则的革命开端,还是又一个华而不实的技术泡沫?这篇文章将深入探讨两个核心问题:


  1. 为什么 Agentic AI 会有项目规模的限制?
  2. 有哪些技术路径可能突破这一规模限制,让 AI 在大型工程场景中真正发挥实用价值?


#01

三大 Failure Pattern:空间错配、时间遗忘、重复造轮子


想要回答为什么的问题,我们首先得具体看看 Agentic AI 在大规模工程中究竟有哪些 Failure Pattern。一般来说,我们会遇到三种模式。


第一种模式是软件开发的空间维度,改一个文件,却忘了另一个文件的逻辑。在只有几百行代码的小型 demo 里,Cursor 一次就能输出一个可用的版本,非常灵活可靠。但是当项目到了几千上万行的时候,它常常会犯一些初级错误。


比如,明明另一个文件里已经有了现成的功能实现,它却视而不见,又从头开始写了另一个函数。或者它在一次迭代中对 A 模块做了修改,却没有注意到 B 模块正依赖着那个接口,最终导致 A、B 无法兼容。即使通过 Agentic Workflow 它可以看到相关的出错信息,但仍然感觉整个 AI 跟被降智了一样,也需要长时间的反复迭代才能发现问题,并且最终修复。


这一定程度上是因为上下文窗口所限制的。Cursor 等工具是根据一定规则自动化构建上下文窗口的。当我们让 AI 写代码的时候,如果因为种种原因,另一个已经有了相关代码的文件没有被放进上下文窗口,它自然没办法在实现中考虑到这一因素。因此就会出现上面所说的这种问题。


第二种模式是时间维度的反复,纠错又推翻,推翻再纠错。如果你用 Agentic AI 开发过相对复杂的横跨几天的项目的话,你也许已经注意到了它的一种自我推翻的模式。


比如,它第一次写程序犯了一个错误 A,在程序跑挂以后,会说 “好的,我来通过修改 X 来修正。” 结果过一阵子在进行其他改动的过程中,它忽然又把 X 改回去了。所以这时候错误 A 又再次出现,它就只能重新再 debug。同时,随着工程的增大,整个 AI 给人的感觉也越来越笨,在工程中后期 debug 的效率远远不如前期。所以这样反反复复不仅消耗时间和耐心,而且还可能让工程进展陷入困境。


这背后的原因其实是上下文窗口的限制。现在的 Agentic AI 的工具往往还是把上下文窗口作为一个记忆的媒介。开始的时候,错误 A 和修正 X 仍然在上下文窗口里,因此这时候 Agentic AI 仍然记得不要去推翻 X 这个实现。但是因为种种原因,比如对话太长,或者新开了一个会话,这个记忆被抛出窗口以后,AI 就忘了这个历史的 context,忘了自己为什么要使用 X。于是就再次回到老路,推翻了之前的修复。


第三种模式是,这两个问题在对接已有代码库的时候尤其严重,尤其是当这些代码不是 AI 自己写的时候。它往往缺乏一种全局的视角,没办法理解这个代码库的高层设计。这在空间上表现为无法准确定位某个需求所需要更改的具体文件;在时间上,它往往也没有这个代码库发展历史上的 context。


因此,在 AI 写代码的过程中,它往往会体现出一个坏毛病:宁愿再写一个功能,也不去复用或者理解原先的代码。哪怕这个原先的代码有时候是它自己写的,它也陷入这种鬼打墙的境地。最终结果就是同一功能被重复实现多次,逻辑还可能互相冲突。


综合来看,当代码量突破一定程度,比如 5000 行的时候,Agentic AI 的长期记忆力就开始成为整个生产力的瓶颈。工程越到后期,改动越多,上下文越庞杂,AI 就越像在迷雾中摸索,一边推翻自己,一边又忘记自己探索过什么。接下来让我们看看,这种上下文失忆究竟源于什么技术限制。


#02

核心限制:依存于上下文窗口的短期记忆


要理解 Agentic AI 在大规模项目上的失效,先得看看它的记忆机制:大多数 Agentic AI 目前都依赖有限的上下文窗口来获取先前写过的代码或决策信息。不论上下文窗口是 RAG(Retrieval-Augmented Generation)构建的,还是基于 Agentic 方法自动读取文件,只要关键内容没有被完整纳入其中,AI 就会遗忘那部分信息,自我推翻和反复犯错的模式就会再度出现。


当项目越来越大,一种直观的想法就是不断地重构:把代码切分得更细,好让 AI 在一次输出时更容易专注。然而这种方法只能缓解局部问题,并不能在根本上解决全局设计理解不足的挑战。就算代码再整洁,AI 依然依赖短期上下文来思考,一旦上下文窗口溢出,便忘却先前的逻辑。换言之,重构只是减少了 AI 在某个时刻需要处理的信息量,却并没有让 AI 真正拥有一种可以反复调用的长久记忆。


所以,当前 GenAI 基于上下文窗口的工作的机制就决定了,它好比是一个只有七秒记忆的鱼,每次只能记住当前一小段信息,游过这道门,就忘了先前经历,导致它不断犯下同样的错误。它可以记住短时间内写过的代码。


但如果没有长期记忆,Agentic AI 对于规模超过几千行的项目,注定就只能处于半瘫痪状态。问题指向的核心是:我们到底应该如何改变 AI 的记忆的实现机制?不仅仅依靠短时间的上下文窗口来给它提供瞬时记忆,而同时用另外一种方式来提供一种长期记忆的机制。


和其他问题类似,这个解决方法也可以从我们人类自身寻找。我们人类也有类似的问题:我们的短期记忆容量也很有限,但是我们通过“好记性不如烂笔头”这种方法,解决了这个问题。


在代码之外,我们有额外的文档来记录全局的设计和历史的决策。这些文档,包括 Tribal Knowledge,构成了我们的经验和长期记忆。这样让我们人类不会有特别严重的自我推翻的模式,也让我们有了更强的全局视角。而这种长期记忆,也是解决 Agentic AI 当下困境的核心


#03

破局之道:为 Agentic AI 构建长期记忆


关于如何具体构建 AI 的长期记忆机制,这是一个非常开放的问题。我也没有一个成熟的解决方案,但是也许可以从下面三个方面来思考:


第一是 Document-Driven Development,文档驱动开发。这个思路是对前面烂笔头带来好记性的模仿。我们可以通过 Prompt Engineering 等方法来让 AI 知道,交付一个文档是和交付代码同等重要的事情。AI 不仅需要写代码,另一个重要任务是时刻维护一个文档。


这个文档主要作用是定义这个项目的外部行为、产品决策、技术框架、高层设计,同时还要提供它历史上的一些 context,比如之前做过哪些尝试,效果如何等等。这样,当 AI 在写代码的时候,就可以更高效地利用上下文窗口。


它只要看文档,就可以迅速地知晓整体架构,理解相关依赖,而不必一遍遍地把所有原文件塞进上下文窗口。而类似的,我们也可以让 AI 在写代码的时候,先更新文档然后再根据文档去改代码,时刻保证文档的内容和代码的内容是吻合的。


注意这个长期记忆未必要是纯自然语言的形式,它也可以是软件工程中常见的 UML 图,或者协议的可视化,甚至是一个 JSON 文档等,让人类和电脑都可以理解的格式。


第二是,这个文档不仅对于单 Agent 有用,对 Multi-Agent 也是一个重要的技巧。在 Multi-Agent 的技术架构中,我们之前讨论过,它的核心好处在让不同的 Agent 有彼此隔离的上下文窗口。而这就需要不同的 Agent 之间有一个高效精准的通信渠道。这里所提到的长期记忆就是一个理想的渠道。它可以一方面让每个 Agent 从高层抽象的角度知道其他 Agent 干了哪些事,从而不会被其他 Agent 工作的细节所干扰。


另一方面,也形成了一个横跨所有 Agent 的 single source of truth。


因此,我们在实现这个长期记忆的时候,也要额外注意维护多个 Agent 之间的 consistency,比如引入一些锁机制,让多个 Agent 同时读写的情况下也能有数据的一致性。这有点类似于多人协作软件的概念,只是把人工换成了 AI。我们如何在这个过程中避免冲突、自动合并历史和进行差异分析,也是一个有待探索的路径。


第三个角度则是人类在这个过程中应当扮演什么角色。短期内也许我们不应该期待 Agentic AI 可以成为一个完全自主工作的系统。就好比一个有经验的人类员工也需要领导不断的指导和 coach 一样。我们对待 AI 的态度不应该是用完即抛,给它个任务就放手不管。而应该是给它适当的引导、纠正,甚至培养,让它在工作中不断积累经验。


而长期记忆的出现则给我们提供了新的可能。我们和 AI 的沟通不仅仅局限于通过 context window(也就是聊天)来进行。我们甚至可以把这种长期记忆作为一种沟通的媒介。


例如,当我们发现 AI 的行为跟我们的预期有比较大的差别的时候,我们不是通过对话来一点一点纠正它,而是直接更改它的整个设计文档,然后指示它根据这个文档重写,纠正所有代码与文档不一致的地方。

或者如果我们发现它有一个常犯的错误,我们也可以直接修改它的长期记忆,把类似的教训写进去。


而这种长期记忆甚至是可以共享和分发的,如果一个 AI 学到了一个经验教训,别的在同一个项目下工作的 AI 也能自动得到相应的更新,这本身也是一个非常有意思和重要的改变。


换言之,这个长期记忆不是简单地说我们让 AI 写写文档,看看文档就结束了,而是同时还要考虑到它怎样融入人与 AI 协同工作的工作流里。目前 Cursor 等工具走的还是一种 AI 主导的道路。人给一个简单的需求,它们就去把整个工程实现出来。但对于更复杂的项目,有可能我们需要走一条人机配合的道路。


比如,人类来主导文档体系的结构和关键摘要,AI 来协作补充细节。当系统需要重大改动的时候,AI 先尝试更新文档,给一个文档的草稿,人类做修订和最终确认。AI 再根据这个文档进行更多的更改。这样也许是一条更科学的道路,我们又不至于完全依赖 AI 的上下文窗口这样短时记忆,也不用过分纠结过多的琐碎细节。


#04

结语


我们现在还处于整个 Agentic AI 的萌芽时期。它已经给了整个软件开发领域很大的鼓舞和惊喜,但同时也带来了更多的问题。这篇文章并没有提供一个成熟的解决方案,而可能只是单纯抛出了更多的问题。


长期记忆的设计和具体形态的确定也不是一蹴而就的事情。要具体定位 Agentic AI 发展的瓶颈和未来的技术路线,我们的当务之急也许不是去拍脑袋想可能的方案是什么,然后就着手实现。


而是先在目前的工具中加入更多的透明度、可解释性和可调试性。例如,在 Cursor 或者 Trae 等工具中把 context window 给暴露出来,让各种翻车模式更好理解。另外一方面,也可以引入社区的力量,让爱好者或者深度用户有能力去影响和控制这些 context window,甚至加入他们自己对于长期记忆的构想。


当然,对于各个 Agentic AI 厂商而言,这确实也有相当大的商业风险。但是,群策群力,开放透明的模式不失为一条在短期内快速提升整个领域对于 Agentic AI 认知和实践的可行道路。


总而言之,Agentic AI 确实在 5000 行以上会面临翻车隐患,本质是记忆完全依赖于上下文窗口。而要真正突破,文档驱动开发、开放透明和社区共建可能是有前景的方向。


文章来自于“AI产品阿颖”,作者“鸭哥”。


Cursor不适合大型项目?

关键词: Cursor , WindSurf , AI编程 , AI
AITNT-国内领先的一站式人工智能新闻资讯网站
AITNT资源拓展
根据文章内容,系统为您匹配了更有价值的资源信息。内容由AI生成,仅供参考
1
AI工作流

【开源免费】n8n是一个可以自定义工作流的AI项目,它提供了200个工作节点来帮助用户实现工作流的编排。

项目地址:https://github.com/n8n-io/n8n

在线使用:https://n8n.io/(付费)


【开源免费】DB-GPT是一个AI原生数据应用开发框架,它提供开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Multi-Agents框架协作、AWEL(智能体工作流编排)等多种技术能力,让围绕数据库构建大模型应用更简单、更方便。

项目地址:https://github.com/eosphoros-ai/DB-GPT?tab=readme-ov-file



【开源免费】VectorVein是一个不需要任何编程基础,任何人都能用的AI工作流编辑工具。你可以将复杂的工作分解成多个步骤,并通过VectorVein固定并让AI依次完成。VectorVein是字节coze的平替产品。

项目地址:https://github.com/AndersonBY/vector-vein?tab=readme-ov-file

在线使用:https://vectorvein.ai/(付费)

2
智能体

【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。

项目地址:https://github.com/Significant-Gravitas/AutoGPT


【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。

项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md

3
RAG

【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。

项目地址:https://github.com/microsoft/graphrag

【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。

项目地址:https://github.com/langgenius/dify


【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。

项目地址:https://github.com/infiniflow/ragflow/tree/main


【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目

项目地址:https://github.com/phidatahq/phidata


【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。

项目地址:https://github.com/TaskingAI/TaskingAI

4
prompt

【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。

项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md

在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0