📚 文稿库

2件事减少了我Cursor 90%的错误

视频分享了通过任务驱动开发(TDD)和建立内存库(Memory Bank)两种核心工作流,显著降低 Cursor 在复杂项目中的报错率。

UP主: 薛志荣被注册了 · 时长: 18:56 · 🔗 B站原视频

标签: Cursor · AI编程 · TDD · 开发效率 · 提示词工程

两个减少 Cursor 报错的核心工作流

上周我分享了如何将 PRD 拆分成小任务,收到了很多好评。今天我想再分享两个非常重要的技巧和工作流,它们帮我在使用 Cursor 处理大型复杂项目时,大幅减少了报错率。一个是任务驱动开发(Task-Driven Development),另一个是为你的 Cursor 项目建立内存库(Memory Bank)。通过这两个工作流,我能让 Cursor 实现复杂的功能,并确保生成的代码很好地融入现有的代码库。我会向你展示我的最佳实践,你可以直接用到自己的项目里。

任务驱动开发(TDD)与 YOLO 模式

任务驱动开发(或者说测试驱动开发)基本上是一种软件开发流程。在编写实际代码之前,你要先为功能定义并编写测试。比如,你可以写一个测试脚本,定义好预期的输入和输出。然后你只写刚好能通过测试的代码,并在确保所有测试依然通过的前提下不断优化。

Cursor 会告诉你测试是否通过,你可以根据结果来迭代功能。这不仅能帮你和 Cursor 对齐需求(预期的输入输出),更重要的是,因为 Cursor 可以自己在命令行运行测试,你完全可以开启 YOLO 模式,让它自己写测试、写功能、跑测试,然后多次迭代,直到所有测试都通过。

网页抓取利器:Firecrawl

在演示具体例子之前,我知道你们很多人在做 AI 应用或 AI Agent,需要抓取网页数据来做商业调研或获取最新资讯。把网页数据转化给大语言模型使用,一个聪明且可靠的方法就是使用 Firecrawl。

他们最近推出了很多新功能,让网页抓取变得简单了十倍。比如他们推出了 Extract 端点,可以处理分页和页面交互。如果你想抓取电商网站,需要点击多个页面获取完整内容,用这个端点就能轻松搞定,并输出结构化的产品信息。我个人最喜欢的是 Web Action Agent,可以直接提取结构化数据。最棒的是,这些能力都可以直接通过 API 调用。你可以写个简单的脚本,随时拥有一个点播的调研 Agent,或者通过 Zapier、Make.com 等工具结合 Firecrawl API 构建自动化工作流。如果你在找抓取互联网数据的聪明方法,我强烈推荐你去看看 Firecrawl。

任务驱动开发实战演示

现在我来给你演示一下如何使用这个任务驱动开发流程。我想让 Cursor 帮我建一个解决方案,让我可以粘贴类似 JSON 的字符串(包括 Pydantic 模型和嵌套的 JSON 字符串),并能轻松查看它的结构。市面上已经有 JSON 查看工具了,但当你把 Pydantic 模型和嵌套 JSON 混在一起时,它们通常就不管用了。所以我想要个更好的。

我用最新的代码模型试了好几次,几乎都失败了,因为这确实挺复杂的。所以这是一个很好的例子:对于复杂功能,它一开始很可能写不对,但通过清晰地定义测试用例,你可以让 Cursor 掌握方向盘,让它自己迭代,直到功能完善。

我会打开 Cursor Chat,输入提示词:“创建一个函数,将类似 JSON 的字符串转换为格式正确的易读 JSON。首先写一些测试,然后实现代码,接着运行测试并迭代代码,直到所有测试通过。” 为了让它更好地理解我的需求,我还提供了一个预期的输入和输出示例。

发送之后,你会看到一开始有 5 个测试失败了。然后它会回去迭代代码并再次运行测试。这次失败得更多了,但这不代表它变差了,只是它发现了新问题。在失败的同时,它也尝试通过添加 debug 日志来排查问题,这样就能更好地理解哪里出错了。经过 4 到 5 次迭代,所有 5 个测试都通过了。它还写了一个新例子来测试,但这次发现了一个漏洞,某些嵌套的 JSON 字符串没有被正确解析。所以它又回去修改代码。

经过几次迭代,这个 Web App 看起来很不错了。我可以粘贴任何 Python 对象类型的字符串,它会自动转换成结构化的格式。这就是如何使用任务驱动开发方法,来构建包含大量边缘情况的复杂功能。

引入内存库(Memory Bank)概念

接下来我想展示的是“内存库”(Memory Bank)的概念。这个概念最初是由 Cline 引入的。如果你不知道 Cline,它是一个开源的 Cursor 替代品,你可以自带 API Key,作为 VS Code 插件运行。

他们引入的概念是:如果 AI 编程 Agent 能够记住已经完成的工作、我们做过的技术选择,以及它当前正在处理的任务,会怎么样?这样你就可以在现有的基础上开发新功能,而不是把现有的文件搞得一团糟。

为了实现这一点,其实没什么魔法。他们设计了一个系统,定义了几个文件来存储不同类型的上下文:

  • projectbrief.md:定义核心需求和目标。
  • productContext.md:包含用户体验和工作原理。
  • activeContext.md:包含当前的工作重点、最近的更改、决策考量。
  • systemPatterns.md:存储系统架构、关键技术决策。
  • techContext.md:包含技术栈、约束和依赖项。
  • progress.md:包含已完成的工作和待办事项。

他们还会用类似 Cursor Rules 或自定义指令的方式,教 AI Agent 如何以及何时使用这些文件。最酷的是,它不仅适用于新项目,你也可以在现有项目上使用同样的方法。让 AI Agent 查看你的项目文件,理解现状,并生成这些文件,这样它就有了上下文,然后再开发新功能。

在 Cline 和 Cursor 中设置内存库

我先快速演示一下它在 Cline 中是如何工作的,以及你如何利用最近的 Custom Mode(自定义模式)功能,在 Cursor 中采用同样的方法。

如果你还没安装 Cline,可以去下载这个 VS Code 插件。你需要点击设置按钮,复制一段提示词作为自定义指令加进去。然后在项目文件夹里创建一个叫 memory-bank 的新文件夹。开始时,你可以输入命令“初始化内存库”(initialize memory bank),它会设置好所有文件。完成特定任务后,你可以让它“更新内存库”。

比如我输入提示词让它理解当前项目并初始化内存库,它会查看文件夹,阅读 README,然后逐个创建上述的那些 Markdown 文件,把项目的核心需求、技术栈、进度等信息都记录下来。有了这些,我再让它“实现一个搜索功能”,它就会先去读这些文档获取上下文,然后再去修改代码。完成后,它还会主动更新 activeContext.mdprogress.md。这套系统会不断更新内存库,所以我可以继续在现有项目里堆叠越来越复杂的功能,而不用担心它把项目搞砸。

在 Cursor 里实现这个也非常直接。已经有人写好了 Cursor Memory Bank 的规则,结构类似。你可以直接复制整段规则,回到 Cursor,利用最近推出的 Custom Mode 功能,新建一个模式,把规则粘贴到高级选项(Advanced option)里。然后你选择这个模式,告诉它“初始化内存库”,它就会开箱即用地为你的项目设置好内存库。

进阶玩法:Cursor Memory Bank 与多模式切换

还有一个我觉得超级有趣的项目叫 Cursor Memory Bank。它基本上借鉴了 Cline 的做法,但推进得更远。它有几个不同的模式:

  • Plan Mode(计划模式):用来做任务规划,你可以把它当成一个工程经理。
  • Act Mode(执行模式):用来实际写代码。
  • Create/Think Mode(创造/思考模式):这个很有意思,专门用来思考和探索。你可以用它来回讨论应该用什么技术栈,或者用来 Debug。

如果你已经在 AI Builder Club,你可以用 10XCoder 这样的工具帮你输出项目设计和架构,然后复制粘贴到提示词里作为上下文。这里我直接用一个简单的 Todo App 来演示。我输入提示词:“我想用 Next.js 建一个 Todo App,我已经建好项目了,请先初始化内存库。”

它会加载一系列不同的规则。Cursor 引入了新的规则类型,我们可以控制规则何时被附加。它会先检查项目状态,检测平台(Windows/Mac/Linux)、分析复杂度。如果是简单的 Level 1 复杂度,它就在当前模式下继续构建;如果是 Level 2 到 Level 4 的复杂任务,它会动态加载更多规则。

我让它加几个功能:“买食物”、“吃晚饭”,它不仅做出来了,还加了过滤标签、快捷键编辑和删除功能,非常完善。而且在构建过程中,它会不断更新文件,所以下次我开一个新对话时,它依然有之前的上下文,而不是从头开始把事情搞砸。

将内存库应用于现有项目与 Debug

更厉害的是,因为有这些 Cursor 规则,它可以作用于任何现有的项目。比如我把刚才建的内存库删了,切换到 Plan 模式,告诉它“我已经用 Next.js 建好了一个 Todo App,请初始化内存库”。它就会根据最佳实践和规则,通读所有文件和项目结构,把技术栈和已完成的工作总结到内存库里。这可能是最实用的一点,它为 Cursor 介入现有项目提供了一条可行的路径,而这通常是最难的部分。有了这些上下文,你想让 Cursor 实现新功能时,起点会高得多。

比如我想加个新功能:每个任务可以设置截止日期、优先级和富文本描述。它做好计划后进入构建模式。结果我遇到了一个报错,试了几次都解决不了。这时候 Creative/Think 模式就派上用场了。我把报错贴进去说“帮我 Debug”,这个模式会在采取行动前思考几个潜在的选项,所以它更有可能真正解决报错,而不是陷入死循环。切换回 App 一看,完美运行,没有报错了。

总结与资源分享

这就是如何在新项目或现有项目中使用内存库的快速演示。虽然还在早期阶段,但我已经能看到它大幅提升了表现。

如果你想要视频里展示的提示词和 Cursor 规则,可以加入我正在建的 AI Builder Club,我会在里面分享我最佳实践的 AI 编程工作流,以及如何构建生产级别的 Agent。你也可以访问 10xcoder.dev 这样的平台,它能帮你生成更好的 PRD 来指导 Cursor,还有配置好登录、支付、Supabase 的 Next.js 模板,让你在一个周末就能上线自己的 SaaS。最重要的是,我们有一个不断壮大的顶尖 AI 开发者社区,有问题随时来交流。链接在描述里,希望你喜欢这个视频,我们下次见!

On this page