如果让你开发一个 AI 编程工具(比如 Cursor),你觉得最大的难点是什么?
是前端技术、后端技术、UI 设计、还是别的?
我觉得是提示词。
我之前手把手带大家做过一个 开源的 AI 代码生成平台,也能生成完整的应用,但无论是生成速度还是效果都不如 Cursor 要好。

要想让 AI 生成的效果好,不仅需要能力强的大模型,还需要精心编写的提示词。
Cursor 在提示词和工程化这点做的就很好,于是我从 开源项目 中获取到了 Cursor 的提示词,写的非常好,真的是惊艳到我了。所以本期我要带大家学习其中的精髓,很多技巧对我们自己开发 AI 应用会有很大的帮助。
Cursor 有很多套提示词,每套提示词适用于不同的场景。比如:

其中,最值得学习的是 Agent 模式提示词,足足有 500 多行。建议大家用 Markdown 阅读器或代码编辑器打开,比如我用 VSCode,可以一边阅读一边让 AI 给我解释。

不得不吐槽一句,这么长的提示词,token 消耗快不是没有原因的!有时我随便说一句话 AI 都得给我搞个长篇大论。
接下来我们以 Agent 提示词为例,拆解一下 Cursor 提示词的写法。
跟阅读开源项目一样,先整体再局部分析。
整体来看,这个提示词分为三大模块:角色定义、操作约束、和支持的工具。
就跟我们塑造一个游戏角色一样,先知道你是谁、你能做什么、你要做什么;再开始给角色点技能、教他怎么做;最后给角色持续买装备、教他怎么用,越来越强。
💡 我们写提示词也可以按照这个思路,让 AI 先从宏观上理解它的身份和目标,再到微观上遵循每一步的行动规范。
下面我们依次分析每个模块。
提示词:

这段提示词上来就定义了:
💡 这也是典型的提示词编写技巧,通过明确角色、背景和目的,确保 AI 生成的内容聚焦于某个具体的领域和场景,提升输出的有效性。
接着往下看:

“你必须一直运行到完全解决用户的问题” 这里进一步明确了 AI 的角色,并且赋予 AI Agent 的持续运行模式,让 AI 有能力处理复杂、多步骤的任务。
💡 不知道大家有没有注意到,这段内容的表达有点冗余,多次重复了 “继续工作”、“解决查询”。这也是写 Prompt 常用的一种手段,我们知道,AI 跟人一样,在接受信息比较多的情况下,很可能会忘记一部分内容、或者忽略掉一些重点。通过从不同的角度 反复强调 同一个事情,能够强化 AI 的理解、保证这段内容的权重,也能在一定程度上消除 AI 理解 Prompt 时的歧义。
比如鱼皮说一遍 “记得点赞三连”,你可能不以为然,所以这里我要说第二遍 “求你点赞三连”,但你可能还是没有被打动,所以我要说第三遍 “在你没有点赞三连之前,请你先点赞三连”。

💡 还有个类似的技巧叫 Re-Reading 重读,又称 Re2。其实就是复读机,通过让模型重新阅读一遍问题来提高推理能力,有 文献 印证了它的效果。
接下来的提示词就是在教 AI 做事。
分为 6 个部分,每个部分都是用一组对称的 HTML 标签括了起来,结构非常清晰。


见名知意,这里就是在告诉 AI “怎么说话”,便于用户理解。
规定了 AI 的响应要使用 Markdown 格式,以及如何格式化文件名、函数名,如何使用定界符来展示数学公式。
💡 统一输出格式不仅能帮助用户阅读,而且也有利于后续对输出文本的处理。
鱼皮之前带大家做的 AI 零代码应用生成平台项目 中,提示词内也约定了输出格式:



这是整个提示词中非常关键的约束部分,是 AI 使用工具时必须要遵守的原则。
比如:
💡 这一段提示词中,我们能学到几个技巧:
我印象很深刻,刚开始用 AI Agent 的时候,有一次我睡觉前让 AI 跑个大任务,结果第二天发现 AI 在等我确认需不需要安装依赖。。。合着卡了一晚上啥都没干!


这部分的作用是告诉 AI 如何进行思考和信息收集、最大限度地理解上下文,核心原则是 全面 和 深入:
💡 其中,最后一点是我认为非常值得学习的,就跟我们程序员遇到 Bug 时一样,一个关键词可能无法搜索到我们想要的答案,就要多尝试几组关键词,得到足够多的信息后问题才更容易解决。

💡 这部分内容也是 思维链 CoT(Chain-of-Thought)和 ReAct(推理执行)的体现,给 AI 规划了一套具体、可执行的信息收集分析流程,让 AI 先尽可能思考、获取到足够的信息之后,再具体执行。

这个模块的作用是 规范 AI 修改代码的行为:
💡 对于 AI 编程工具来说,这段提示词非常重要。想象一下,如果已经生成了一个 5000 行代码的文件,结果用户只需要修改文件中的某一行代码,难道要重新把这 5000 行代码输出一遍么?更高效的方式肯定是提供给 AI 一个支持 “字符串替换” 的代码编辑工具,可以让 AI 只修改部分代码,不仅输出效率更高、修改更精准可控,还有利于对比修改前后的代码。


这部分比较简短,只添加了一个约束 —— AI 应该处理最重要的查询。
这其实是强行调整 AI 的注意力焦点。随着对话进行,用户可能会提出新的、更优先的需求,有了这段提示词,AI 可以转移任务重心,优先处理用户的核心诉求。
就好比我正在处理一个工作,老板突然说:“别干了,出去团建去!”,那我不可能还继续干之前的工作对吧。

这段提示词虽然很长,但核心的功能是为了让 AI 正确使用 Cursor 的对话记忆功能,了解一下就好。
Tools 模块的内容非常长,占了整个提示词的 80%,但其实很好理解,就是给 AI 提供各种各样的工具,并且将每个工具的作用、用法、注意事项给 AI 描述清楚。
由于工具较多,在最外层将工具通过 namespace 命名空间进行分类,包括 functions 和 multi_tool_use,为 AI 提供了一个清晰的工具层级。

命名空间下有很多工具,比如代码库搜索工具:

💡 从这个模块中,我们能学到一些小技巧。
1)工具的定义内部通过 ### 标题语法来创建逻辑分段,让文档内容层次分明,便于解析和理解。
2)工具提供了使用示例,并用一段简短的推理来评估使用方式是否正确。这其实是写提示词的经典技巧 Few-shot,通过手把手举例教学的方式,帮助 AI 理解工具的正确使用方法,能很大程度提高 AI 输出的准确度。

至此,我们就把 Cursor 的 Agent Prompt 拆解完了。大家感兴趣的话可以看看其他 Prompt,比如记忆模块的 Prompt 定义了一套过滤评估机制,指导 AI 判断哪些信息值得长期记忆,哪些应当舍弃,避免无用、错误内容干扰记忆质量。文本评估也是 AI 典型的应用场景之一了。
最后,通过本期对 Cursor 提示词的拆解,我们可以提炼出一些提示词编写原则:
还有更多提示词编写技巧、AI 知识、AI 工具等等,大家可以在我 开源的 AI 知识库 中获取。

如果本期内容让你有所收获,记得点赞三连,这个操作其实挺简单的,把手按在手机上,或者敲两下就可以了,你学会了么?