摘要
一句话总结 针对 AI 编程在大型项目中受限于上下文窗口的问题,可以通过将复杂任务拆分为小任务逐步迭代,并每次精准提供最相关的上下文(如已优化的代码和项目文档)来有效解决。
关键要点
- 核心策略一:任务拆解。将大型复杂任务拆分成若干小任务,每次只让 AI 实现一个小任务,从而在有限的上下文窗口内获得更好的生成效果。
- 核心策略二:精准上下文。每次交互时只选取最相关的上下文,让 AI 能够参考已有的代码进行模仿(“照葫芦画瓢”)。
- 迭代开发步骤(以爬虫项目为例):
- 第一步:实现最基础的功能(如抓取网页、解析内容、保存为静态文件)。
- 第二步:提供具体的 HTML 结构,实现特定页面(如首页)的结构化数据解析并保存至数据库(如 sqlite),随后进行代码优化。
- 第三步:增加进阶功能(如记录抓取位置以支持中断恢复),并继续完善代码。
- 第四步及后续:将前期已经优化好的代码作为上下文,结合新需求(如抓取二级页面结构)让 AI 生成新代码,AI 会自动参考优化好的代码规范。
- 项目文档的价值:项目文档非常重要,在使用 Cursor 等工具时,可以直接将项目文档作为上下文引入以辅助代码生成。
风险/不足
- AI 生成的代码在执行时可能会出现小问题,通常需要开发者进行半手动或半 AI 辅助的修改与完善才能正常运行。
正文
问:体验了一下 AI 编程,我发现这个编程能力受限于上下文的限制,对于大型项目的构建能力偏弱,不知道有没有什么好的方法能够解决这个问题呢?
答:编程能力确实受限于上下文的限制,但是使用 Cursor 这样的开发工具,有一些技巧可以让你在大型项目中,也能大幅提升效率。
核心是两点:
-
将复杂任务拆分成小任务,每次只实现一个小任务
-
每次交互选取最相关的上下文,让它可以照葫芦画瓢
既然我们知道大语言模型的上下文窗口长度是有限的,那么就需要最大化的利用好上下文。最简单有效的就是每次任务小一点,输入的代码和提示词少一点,这样就可以让模型在上下文窗口限制内很好的完成任务。
比如说我要让 Cursor 帮我实现一个爬虫,抓取某个网站的数据,要抓一级页面、二级页面、三级页面、四级页面。每一级页面还有很多细节。
如果我一次性要求 AI 去实现,那可能无法实现,或者完成的不好。但是我可以拆成若干小任务。
所以我第一步会要求 Cursor 帮我实现一个最基本的爬虫功能,能抓取网页、能解析网页内容,能保存内容到静态文件,这个任务 Cursor 能完成的很好。
第二步我要求 Cursor 帮我实现抓取首页,把页面的 HTML 结构发给它,让它能解析首页的内容成结构化的数据,并且保存到一个 sqlite 数据库。这个任务 Cursor 能完成代码,执行时可能会有点小问题,但是稍微修改就能正常运行。并且对代码细节进行半手动半AI辅助的完善。
第三步继续要求 Cursor 实现一个记录抓取位置的功能,让它可以中断后从上一次抓取位置继续。然后再完善优化代码。
第四步让它对去抓取二级页面,提供二级页面的结构给它,并且把之前优化好的抓取解析代码添加到上下文,让它去抓取二级页面。由于提供了优化好的代码参考,新的代码也会参考优化好的代码。
后面的步骤都是类似的,就是把之前写好的优化好的代码作为上下文,加上新的需求,让它去实现。
这样一步步下来,一个复杂的模块就完成了,而使用过程中也没有超出上下文长度。
所以不用担心上下文窗口长度的限制,也不用担心你的项目太大它不理解,核心是要把复杂任务拆成简单的任务,要一点点迭代,先优化好前面的代码,然后生成新的代码的时候参照前面优化好的代码。
补充:
项目文档很重要,Cursor 在生成代码时可以把项目文档作为上下文。

相关文档
- 为什么 AI 还不能完成复杂项目?;关联理由:观点一致;说明:两文都讨论大型项目中 AI 的能力边界,并强调人类审查与分步推进的重要性。
- Vibe Coding 的最佳实践仍然是 Agile 的版本迭代模式,而不是一次性完成一个庞大的无法运行和维护的半成品;关联理由:延伸思考;说明:该文把本文的分步实现策略扩展为版本化迭代方法,强调每轮都要可运行可维护。
- 普通人也能用得上的 Context Engineering 技巧;关联理由:解说;说明:该文细化了上下文筛选与提供方法,直接补强本文的“只给最相关上下文”策略。