Cursor为什么回答很精准,提示词解读,处处都是技巧
先定义角色让AI从宏观上理解它的身份和目标,然后再从微观上让它一步一步的去遵循我们的行动规范,给它提供一个个的工具(精确文本匹配、读取已知文件、符号查找、查找文件等工具)。这段话定义了角色是什么,任务是什么,目标是什么,能够提升输出的有效性。这句话进一步明确了AI的角色,并且赋予了AI Agent的持续运行模式,AI就知道它要一直持续不断的工作,直到任务完成,AI能够处理多步骤的、复杂的调用。这句
Cursor我想许多有经验的开发者,可以很轻松地手搓一个出来,但开发出来的能不能有官方的工具好用,得打一个很大的问号了。比如后期维护来适配当前各个大模型的更新,没有足够的人手是完全跟进不了模型的版本更新,提示词是最大的开发难点,提示词决定代码的生成质量,提示词写的不好,回答精准度就很难受了,用户体验感低。今天一起来解读一下Cursor的提示词(Agent部分)处处都是技巧。
Cursor Agent部分提示词含盖三大部分:
- 角色定义。
- 行为的约束(规范AI修改代码的行为,比如我们只需修改整个代码文件中某一行代码,AI不会是整个项目代码全部重新生成一次,而且使用字符串替换工具去替换这一行代码)。
- 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)。
如果本文能给你提供启发和帮助,还请留下你的一健三连(点赞
、转发
、评论
),给我一些鼓励,谢谢。
更多推荐
所有评论(0)