当前位置: 首页 > news >正文

Cursor 提示词探索——如何打造真正懂自己的Agent

最近看到鱼皮的Cursor提示词分享(微信公众平台),刚好之前也在做Agent开发,跟提示词打交道的多,也经常发现 ai 蠢蠢的,一点不会根据提示词设计的来,按鱼皮的分享研究了一下,写了这篇博客。

Cursor 的提示词不仅逻辑严谨、场景覆盖全面,更把「如何让 AI 精准理解编程需求」这件事做到了极致。今天就带大家拆解 Cursor 提示词的精髓,这些技巧对我们自己开发 AI 应用也会有巨大帮助。

一、Cursor 提示词:场景化设计是核心

Cursor 并非只有一套提示词,而是针对不同使用场景设计了多套方案,每一套都对应特定的功能目标。比如:

  • Agent 模式提示词:让 AI 具备「自主分析-规划-执行」的能力,能从头到尾解决复杂编码任务,直到问题彻底解决;
  • CLI 命令行提示词:适配命令行交互场景,支持通过指令快速调用工具;
  • Chat 对话提示词:聚焦问答场景,能快速响应用户的代码咨询、语法解释等简单需求;
  • Memory 对话记忆提示词:负责管理 AI 的长期记忆,评估哪些信息值得沉淀(比如用户的编码偏好),哪些需要舍弃,避免无效信息干扰。

从开源仓库的文件列表中,我们能清晰看到这些提示词的迭代痕迹:

提示词文件

说明

Agent CLI Prompt 2025-08-07.txt

2025年8月更新的 Agent 命令行场景提示词

Agent Prompt v1.0.txt

Cursor 1.0 版本的基础 Agent 提示词

Agent Prompt v1.2.txt

迭代更新的 Agent 提示词(优化逻辑)

Chat Prompt.txt

对话场景核心提示词(已重命名优化)

Memory Prompt.txt

对话记忆管理基础提示词

Memory Rating Prompt.txt

记忆质量评估提示词(筛选有效记忆)

在这些提示词中,Agent 模式提示词最值得深入学习——足足 500 多行的内容。

二、Agent :三大模块构建 AI 编程能力

Cursor 的 Agent 提示词本质分为三大模块:角色定义(让 AI 知道“我是谁、要做什么”)、操作约束(教 AI“该怎么做、不能怎么做”)、支持的工具(给 AI“装备”,让它有能力执行任务)。

1. 角色定义:给 AI 清晰的“身份认知”

提示词的开篇就直接明确了 AI 的定位,没有任何模糊空间,原文(中英文对照)核心内容如下:

你是一个由 GPT-4.1 驱动的 AI 编程助手,在 Cursor 中运行。(You are an AI coding assistant, powered by GPT-4.1. You operate in Cursor.)
你正在与用户进行结对编程,以解决他们的编码任务。每当用户发送消息时,系统会自动附上用户的当前状态(比如打开的文件、光标位置、最近查看的文件、Linter 错误等),这些信息是否相关由你判断。(You are pair programming with a USER to solve their coding task. Each time the USER sends a message, we may automatically attach some information about their current state...)
在用户的查询完全解决之前,请继续工作;只有确定问题已解决,才结束你的回合。返回用户之前,需自主尽最大能力解决问题。(You are an agent-please keep going until the user's query is completely resolved... Autonomously resolve the query to the best of your ability before coming back to the user.)

这段提示词看似简单,却暗藏三个关键技巧:

  • 明确三要素:直接告诉 AI“身份(编程助手)、场景(结对编程)、目标(解决编码任务)”,避免 AI 输出偏离场景(比如不会突然讲编程理论,而是聚焦解决当前问题);
  • 强化 Agent 属性:强调“持续工作到问题解决”,赋予 AI 处理多步骤任务的能力(比如用户让“开发一个登录页面”,AI 会自动拆解“写 HTML 结构→加 CSS 样式→写 JS 交互→处理接口请求”,而不是只做一步就停);
  • 重复强调核心目标:多次提到“解决问题”“完成查询”,这是因为 AI 可能会忽略零散指令,通过多角度重复,能强化 AI 对核心目标的记忆(就像我们提醒别人“记得点赞三连”,会换几种说法反复提,避免对方忘记)。

还有一个隐藏技巧叫「Re-Reading(重读)」,本质是让 AI 反复确认需求——有文献证明,让模型“再读一遍问题”能提升推理准确性,这一点在 Cursor 的提示词中也有体现。

2. 操作约束:教 AI“规范做事”,避免犯错

如果说“角色定义”是给 AI 定方向,那“操作约束”就是给 AI 定规则——告诉它“该怎么说话、怎么用工具、怎么改代码”,甚至“不能做什么”。这部分用对称的 HTML 标签(比如 <communication> <tool_calling>)划分模块,结构非常清晰,我们逐个拆解:

(1)规范 AI 的“表达方式”

核心作用是统一 AI 的输出格式,告诉 AI 怎么说话,方便用户阅读和后续程序处理:

在助手消息中使用 Markdown 时,用反引号格式化文件、目录、函数和类名(比如 src/utils.js);用 ( 和 ) 表示行内数学公式(比如 (a2 + b2 = c^2)),用 [ 和 ] 表示块级数学公式。

(2)AI 使用工具的“红线规则”

这是整个提示词中最关键的部分,直接决定 AI 能否正确调用工具解决问题,核心规则有 9 条,其中 5 条必须重点关注:

  1. 严格遵循工具格式:必须按指定 schema 调用工具,不能漏填参数;
  2. 禁止调用未授权工具:即使对话中提到其他工具,只要没明确提供,就不能用;
  3. 不向用户提“工具名”:比如调用“读取文件工具”时,不能说“我要用 read_file 工具”,而是说“我会帮你读取这个文件的内容”;
  4. 优先工具获取信息:如果能通过工具查到答案(比如读文件看代码结构),就不要问用户(避免“你这个文件路径是什么?”这种无意义提问);
  5. 制定计划后立即执行:不用等用户确认(比如 AI 计划“先读登录接口代码,再写前端调用逻辑”,直接做就行,不用问“我可以先读接口代码吗?”)。

💡 这一段提示词中,我们能学到几个技巧:

  • 通过设定负面指令(大写的 NEVER)和正面指令(大写的 ALWAYS),强化了对 AI 的行为约束。
  • 通过 “切勿调用未明确提供的工具”、“仅使用标准的工具调用格式和可用的工具”、“读取文件而不是猜测或编造答案” 尽可能地消除 AI 的幻觉。
  • 在合适的场景给 AI 放权,不用让它频繁找用户确认。
(3)让 AI“想透彻”再动手

核心原则是“全面、深入”,确保 AI 理解所有上下文后再输出,避免“想当然”:

收集信息时要彻底,回复前必须掌握完整场景;追溯每个符号的定义和用法(比如某个函数的参数含义),不要只看第一个相关结果;用“语义搜索”作为主要工具,先从宽泛的高层查询(比如“用户认证流程”)入手,再拆成子问题(比如“登录态怎么存储?”);必须用不同措辞多搜几次,第一遍结果往往漏关键信息。

这其实是「思维链(CoT)」和「推理执行(ReAct)」的结合——先让 AI 想清楚“要查什么、怎么查”,再动手执行,而不是上来就写代码。比如用户问“为什么登录接口报 500 错”,AI 会先搜“登录接口的代码位置”→“看报错日志”→“查数据库连接是否正常”,而不是直接猜测“可能是参数错了”。

(4)规范 AI 的“改代码行为”

针对“代码修改”的专属约束,重点解决“输出冗余”和“代码不可运行”的问题:

除非用户要求,否则不要直接输出代码,必须用代码编辑工具修改(比如只替换某几行代码,而不是重新输出整个文件);生成的代码必须能立即运行,要自动加全导入语句、依赖配置(比如创建 requirements.txt);如果引入 Linter 错误,最多尝试修复 3 次,第 3 次没解决就问用户;构建 Web 应用时,要保证 UI 美观且符合 UX 最佳实践。

这个约束非常实用:比如用户要修改一个 5000 行的配置文件,AI 不用输出完整文件,只需用“字符串替换工具”改关键行——既高效,又方便用户对比修改前后的差异。

(5) 处理“优先级”和“记忆”
  • <summarization>:如果有 <most_important_user_query> 标签,就优先处理这个核心查询,忽略之前的需求(比如用户先问“改按钮样式”,后说“先解决登录报错”,AI 就聚焦登录问题);
  • <memories>:管理对话记忆,比如用户纠正过的错误记忆(比如“之前说的接口地址错了,应该是 xxx”),必须立即用 update_memory 工具删除或更新;用记忆时必须标注来源(比如“我会用 -la 命令查看文件 [[memory:123]]”),如果因记忆拒绝用户请求,要告诉用户“可以纠正记忆”。

3. 支持的工具:给 AI 趁手的“装备”

工具模块占了整个提示词的 80%,核心是“给 AI 清晰的工具使用指南”——通过「命名空间(namespace)」分类,让 AI 快速找到对应工具,主要分为两类:

  • functions:基础工具集合,比如 codebase_search(语义搜索代码)、read_file(读取文件)、grep_search(精确文本搜索)、file_search(按名称找文件);
  • multi_tool_use:多工具组合包装,支持同时调用多个 functions 下的工具,比如“先搜代码位置,再读文件内容”。

每个工具的定义都有严格的结构,以 codebase_search(语义搜索)为例:

// ### 何时使用:探索不熟悉的代码库、问“如何/在哪里/什么”类问题(比如“前端登录组件在哪里”)、按含义找代码;
// ### 何时不使用:精确文本匹配(用 grep_search)、读已知文件(用 read_file)、简单符号查找(用 grep_search)、按名称找文件(用 file_search);
// ### 示例:
// // 查询:“前端中在哪里实现了接口 MyInterface?” // 好:问题完整,带“前端”上下文,明确要找“实现位置”; // //
// // 查询:“MyInterface frontend” // 不好:太模糊,应改成“ MyInterface 在前端中在哪里使用?”; // //

这里用到了提示词的经典技巧「Few-shot(少样本示例)」——通过“好例子+坏例子+推理”,让 AI 快速理解工具的正确用法,比单纯说“要明确查询”效果好得多。

三、提示词编写原则:从 Cursor 中提炼的实战经验

拆解完 Cursor 的 Agent 提示词,我们可以总结出 5 条通用的提示词编写原则,无论是开发 AI 编程工具,还是做其他 AI 应用,都能用到:

  1. 明确场景、角色和目标:不要只说“你是一个助手”,要具体到“你是 XXX 场景下的 XXX 助手,目标是解决 XXX 问题”(比如 Cursor 中“GPT-4.1 驱动的编程助手,目标是结对解决编码任务”);
  2. 提供详细的执行流程:不仅要告诉 AI“做什么”,还要说“怎么做”——比如“用语义搜索时,先高层查询再拆子问题,多换措辞搜几次”;
  3. 模块化+格式化+强强调:用标签(如 <tool_calling>)划分模块,用大写关键词(NEVER/ALWAYS)强调重点,避免零散指令被忽略;
  4. 工具说明要“手把手”:如果 AI 需要用工具,必须讲清“适用场景、不适用场景、示例”,最好加“好/坏例子对比”;
  5. 严格定义输出格式:如果 AI 输出需要被程序处理(比如工具调用参数、代码片段),一定要约定格式(如反引号包裹、JSON 结构),避免解析错误。

最后

Cursor 的提示词之所以“惊艳”,不在于复杂的语法,而在于“以用户需求为核心”的设计思路——每一条约束、每一个工具定义,都是为了让 AI 更精准、更高效地解决编程问题。

参考

扒了下 Cursor 的提示词,被狠狠惊艳到了!


文章转载自:

http://JB0Dkbf1.nbfkk.cn
http://V4bvHu6V.nbfkk.cn
http://xMYHJjOl.nbfkk.cn
http://swO78pIZ.nbfkk.cn
http://KysWuPOw.nbfkk.cn
http://m968ED1H.nbfkk.cn
http://aGVirSdc.nbfkk.cn
http://gZqN3HQH.nbfkk.cn
http://cUKLFZ4U.nbfkk.cn
http://1ZIIPKYS.nbfkk.cn
http://NhprX6iG.nbfkk.cn
http://fw4wbGeR.nbfkk.cn
http://ObZODYH4.nbfkk.cn
http://2XkNxchH.nbfkk.cn
http://C3KPOGKG.nbfkk.cn
http://QK8aNG9w.nbfkk.cn
http://t60jyV6w.nbfkk.cn
http://jxPZs2d6.nbfkk.cn
http://pupgvPI4.nbfkk.cn
http://nvGzV4c0.nbfkk.cn
http://BfIwcIpT.nbfkk.cn
http://KkUHYnru.nbfkk.cn
http://SfsCCbTf.nbfkk.cn
http://g7PZpvTX.nbfkk.cn
http://Z5NJBVps.nbfkk.cn
http://mTUlcfkh.nbfkk.cn
http://CMkxrCsK.nbfkk.cn
http://XHBveIf3.nbfkk.cn
http://YtjQGMqk.nbfkk.cn
http://ZJRzoox3.nbfkk.cn
http://www.dtcms.com/a/372307.html

相关文章:

  • Selfie Vibe-AI头像生成器
  • 内网后渗透攻击--linux系统(权限维持)
  • MySQL中实施排序(sorting)及分组(grouping)操作
  • 《sklearn机器学习——管道和复合估算器》异构数据的列转换器
  • === 和 == 的规则及原理
  • Python:基于LangChain的AI Agent(智能代理)应用开发实践
  • Java ConcurrentHashMap 底层原理与线程安全机制深度解析
  • 基于SpringBoot+Vue的健身房管理系统的设计与实现(代码+数据库+LW)
  • 批量标准化(Batch Normalization):为什么它能让深度学习模型跑得更快、更稳?
  • 1分钟使用ssh-keygen生成RSA公私钥
  • 【从零开始java学习|第十一篇】构造一个JavaBean
  • 侠盗飞车圣安地列斯原版中文资源,适配Win10/11,不用安装!
  • Linux —— 虚拟进程地址空间
  • 负载均衡器如何自动将故障实例从服务列表中剔除
  • MySQL软件架构概述
  • 【面试】AI大模型应用原理面试题
  • postman接口功能测试
  • Java数据结构 - 顺序表模拟实现与使用
  • 【秋招笔试】2025.09.04携程秋招
  • PyPI 镜像源选择与 pipenv/poetry 加速配置(含实战与避坑)
  • 如何设计本地缓存、有哪些坑需要避免
  • 人力资源管理的思维方法学习笔记1
  • 【面试向】边缘计算基础介绍
  • digitalworld.local: TORMENT
  • MySQL数据库专用命令详细使用指南
  • Python3.12-slim版本
  • AI 生成式艺术重塑动漫角色创作:从技术逻辑到多元可能性(三)
  • 【面试向】元宇宙介绍
  • 硬件开发(4)—ARM裸机体系结构
  • Stream API三巨头:filter、map、collect