在 Cursor 中,prompt 可以通过以下方式设置:
.cursorrules
文件中加入 prompt。让 Cursor 在被用户更正行为后思考错误并记录经验教训,若有必要,可直接用自然语言提示它记录。.cursorrules
文件放在打开文件夹的根目录上,其特殊之处在于可以改变 Cursor 对于后台 LLM 的 prompt,文件中的所有内容都会作为 prompt 的一部分发给后端的 AI,如 GPT 或 Claude。而自我进化的功能也可以使用类似的思路来实现。在.cursorrules这个文件里,我们加入prompt,让Cursor在被用户更正它的行为之后思考刚才犯的错误,有没有什么可以复用的经验教训记录下来。如果有的话,就更新.cursorrules这个文件相关的章节。通过这种方式,也可以让它积累出针对每一个project的特定知识。一个典型的例子就是,现在的LLM,由于knowledge cutoff date相对较早,很多都不知道有GPT-4o这个模型。如果你让它调用GPT 4o的话,它会自己把o去掉,认为这里是打错了。那如果你更正它:“其实已经有了这个模型,只是你不知道而已”的话,它就会把这个教训记在..cursorrules相关的章节里面,以后就不会再犯这样的错误了,通过这种方式就实现了学习和提升。但是这一点仍然取决于prompt到底有没有效,有些时候它确实也会漏掉这一点,不一定会把我们觉得有必要记成笔记的知识记下来。这种情况下,我们也可以用自然语言去nudge它一把,直接跟它说,你要把这点记下来。用这种更直接的方式也可以实现AI的经验积累和成长。因此,仅仅使用..cursorrules这个文件,加上一些prompting的技巧,我们就可以给现有的Agentic AI编程工具加上Devin非常厉害的流程规划和自我进化的能力。
在上一篇文章中也提到,Devin的一个非常有意思的变化是,它更像一个有章法的实习生。它知道先做一个计划出来,然后在执行的过程中不断地更新计划的进度。这一方面,让我们作为AI Manager能够更轻松地掌握AI当前的进度;另一方面,也让它不至于偏离原有的计划,实现更高的思维深度和任务完成质量。这个功能看起来很厉害,其实用Cursor是很容易实现的。对于Cursor来说,它有一个特殊的文件,叫做.cursorrules,放在打开文件夹的根目录上面。它的特殊之处在于,它让你可以改变Cursor对于后台LLM的prompt。换言之,这个文件里的所有内容都会作为prompt的一部分,发给后端的AI,比如GPT或者Claude。这给我们的定制化带来了非常大的灵活性。比如我们可以把计划的内容放在这个文件里,这样每次我们跟Cursor对话的时候,它都会得到一份最新版的计划。同时在这个文件里,我们也可以给它更详细的指令,比如让它任务开始的时候先思考和制定一个计划,每次做完一步之后都要更新这个计划。由于Cursor可以利用更改文件的agent,而.cursorrules本身就是一个文件,因此这就实现了一个闭环。它每次都会自动地读取这个文件的内容,了解最新动态,在经过思考之后,把更新后的进度和下一步的计划写到这个文件里,让我们始终能够得到最新的更新。
多一句嘴,在prompt方面,Devin有[一个文档](https://docs.devin.ai/learn-about-devin/prompting),我感觉特别有帮助,他会教你什么样的prompt在与Devin沟通的时候是最有效的。比如你需要明确定义成功的标准,比如要跑通某个测试,或者访问某个链接能对得上等等。这个和我们在[builder's mindset课程](https://maven.com/kedaibiao/genai)里面的观点不谋而合,而且当你把同样的原则应用到使用Cursor的过程中间的时候,也会发现Cursor一下子也变得聪明了很多,可以自主验证有没有完成任务并且进行迭代。