Cursor我想许多有经验的开发者,可以很轻松地手搓一个出来,但开发出来的能不能有官方的工具好用,得打一个很大的问号了。比如后期维护来适配当前各个大模型的更新,没有足够的人手是完全跟进不了模型的版本更新,提示词是最大的开发难点,提示词决定代码的生成质量,提示词写的不好,回答精准度就很难受了,用户体验感低。今天一起来解读一下Cursor的提示词(Agent部分)处处都是技巧。

Cursor Agent部分提示词含盖三大部分:

  1. 角色定义。
  2. 行为的约束(规范AI修改代码的行为,比如我们只需修改整个代码文件中某一行代码,AI不会是整个项目代码全部重新生成一次,而且使用字符串替换工具去替换这一行代码)。
  3. Tools工具调用。

Cursor Prompts项目地址:https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools/tree/main,参考下图进行查看。

在这里插入图片描述

角色定义

定义角色让AI从宏观上理解它的身份和目标,然后再从微观上让它一步一步的去遵循我们的行动规范,给它提供一个个的工具(精确文本匹配、读取已知文件、符号查找、查找文件等工具)。

这段话定义了角色是什么,任务是什么,目标是什么,能够提升输出的有效性。

在这里插入图片描述

这句话进一步明确了AI的角色,并且赋予了AI Agent的持续运行模式,AI就知道它要一直持续不断的工作,直到任务完成,AI能够处理多步骤的、复杂的调用。

这句话还多次强调需要AI持续运行直到任务完成,为什么要Re-Reading(多次强调呢)?实际是为了增加这段提示词的权重,好比人一样,多次强调和提醒后人更容易记住事,等同于重要的话说三遍,让AI更加稳定运行。

在这里插入图片描述

行为的约束

第二部分:操作约束(这部分分为6个部分,每个部分用html标签括起来,这样结构会非常清晰)。

一:communication – 规范函数、文件、数学表达式的格式,比如这里要求使用markdown输出,规定使用特定的符合。

二:tool_callin – 这是为了消除不确定性,消除AI幻觉 ,提高用户体验(比如尽量减需要少用户确认的点(比如一个大项目每次都需要你手动确认,如果需要长时间人工确认就很麻烦)),还约束了AI在实现需求过程中不要过多暴露系统内部的实现逻辑。

三:maximize_context_understanding– 最大化上下文理解,告诉AI怎么样思考,最大限度的理解上下文。

四:making_code_changes – 规范AI修改代码的行为,比如我们只需修改整个代码文件中某一行代码,AI不会是整个项目代码全部重新生成一次,而且使用字符串替换工具去替换这一行代码,使得AI修改代码更为精准可控,且有利于与历史版本的代码进行对比(比如Cursor在修改部分代码后会显示标红哪些代码进行了修改)。

五:summarization --告诉AI需要处理更重要的查询,强行调整AI注意的焦点,这段约束就是为了解决用户最优先的需求(比如你的手里同时有好几项任务都需要处理,那你可能就要按任务优先级处理了)。

六:memories --对话记忆,比如怎样更新记忆,哪些记忆应该长期记忆,哪些应该丢弃等,避免无用记忆的干扰。

在这里插入图片描述

Tools工具调用

Tools工具调用,调用哪些工具,提供AI使用工具的方法,很大程度上的保证每项工具的精准作用,提高AI的回复准确度(如使用Few short 这个是举例说明,在不好表达时举例子、示范提供给AI)。

在这里插入图片描述
在这里插入图片描述

如果本文能给你提供启发和帮助,还请留下你的一健三连(点赞转发评论),给我一些鼓励,谢谢。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐