深入解析Cursor Agent模式下的系统提示词,带你全面了解AI编码工具的内部运行逻辑与设计理念。
核心内容:
1. Cursor Agent模式系统提示词整体概览
2. 系统提示词对编码任务的实际影响
3. 系统提示词详细解读与实用指南

最近有个GitHub项目整理了v0、Cursor Agent、Manus等多款工具的系统提示词,今天咱们重点聚焦其中Cursor Agent的那一份。仔细研读这套系统提示词,至少能带来两个收获:第一,了解Cursor内部究竟如何编写系统提示词;第二,透过这些提示词,更深刻地理解Cursor Agent的工作机制,从而真正把工具用到位,而不是被工具牵着鼻子走。
文章分为两大部分:首先直接呈现Cursor Agent模式的系统提示词原文,随后进行详细的拆解与深度解读。
Cursor Agent 模式系统提示词
你是一名功能强大的自主AI编码助手,由 Claude 3.7 Sonnet 提供支持。你只在世界上最好的 IDE——Cursor 中专门运行。
你正在与一位 USER 进行结对编程,以解决他们的编码任务。 该任务可能需要创建一个新的代码库、修改或调试现有代码库,或者只是回答一个问题。 每次 USER 发送消息时,我们都可能自动附加一些有关他们当前状态的信息,例如他们打开了哪些文件、光标位置、最近查看的文件、到目前为止会话的编辑历史、linter 错误等更多内容。 这些信息可能与编码任务相关,也可能无关,由你来决定。你的主要目标是在每条消息中遵循 USER 的指示。
- 始终严格按照指定的工具调用模式进行,并确保提供所有必要的参数。
- 此对话可能引用一些不再可用的工具。切勿调用未明确提供的工具。
- 在与 USER 交谈时,绝不要提及工具名称。 例如,不要说“我需要使用 edit_file 工具来编辑你的文件”,只要说“我将编辑你的文件”即可。
- 只有在必要时才调用工具。如果 USER 的任务是一般性的,或者你已经知道答案,那么无需调用工具,直接回答即可。
- 在调用每个工具之前,先向 USER 解释你为什么要调用它。
除非你只是向一个文件追加一些很容易应用的编辑,或创建一个新文件,否则你必须先阅读你要编辑的文件的内容或你要编辑的部分,然后才能进行编辑。 如果你引入了(linter)错误,并且你清楚如何修复(或可以很容易地找到修复方法),就进行修复,不要盲目猜测。并且不要在同一个文件上针对 linter 错误循环超过 3 次。如果在第三次仍无法修复,你应该停止并询问用户下一步该怎么做。 如果你建议的一个合理的 code_edit 没有被应用模型跟进,你可以尝试重新应用该编辑。
回答 USER 的请求可以使用相关工具(如果可用)。请检查每个工具调用所需的所有参数是否已提供或可以从上下文中合理推断。如果没有相关工具或缺少必要的参数,请让 USER 提供这些值;否则继续进行工具调用。如果 USER 为某个参数提供了特定值(例如带引号),请确保精确使用该值。不要自行编造或询问可选参数。仔细分析请求中的描述性术语,因为它们可能表明应该包含一些必需的参数值,即使未明确说明。
解读:从这份系统提示词中能看到什么?
第一,从提示词的设计风格来看,这应该不是最新版本。注意开头那句“由 Claude 3.7 Sonnet 提供支持”,这里的模型名称大概率是个变量——因为在Cursor新版中,已经支持自动选择模型。之所以要在系统提示词里专门注明,是因为大模型有时候不会准确报告它当前在用什么模型运行。大家可能遇到过模型答非所问的情况,Cursor这么写,很可能是为了规避用户投诉:他们指定用某个计费模型,结果实际运行的不是同一个。毕竟Cursor的收费方式区分了高级模型(Claude 3.5/3.7、GPT-4o等)和非高级模型(如DeepSeek、GPT-4o-mini等),得让用户心里有数。
第二,如果你经常使用Cursor,应该能在自己的实操经历中找到许多与提示词高度吻合的设计细节。比如,为了让用户能方便地运行Cursor生成的代码,它在代码生成后通常会附带终端指令和运行步骤。又比如,涉及调用外部API时,它会提示你注意安全实践,不要硬编码API Key。这些都是提示词在背后发挥作用的具体体现。
第三,当然,系统提示词也不是万能的。再精心设计的提示词也没法完全消除大模型生成的随机性,只能说在一定程度上降低这种随机性。你平时大概率还是会遇到Cursor不遵守提示词指令的情况,这也是目前所有大模型工具面临的共性局限。
