高效提示词原则
与 Cursor AI 交互的质量很大程度上取决于你的提示词质量。不同于普通搜索引擎,AI 响应的是意图和约束, 而不是关键词。掌握以下原则可以显著提升每次交互的质量。
原则 1:角色 + 任务 + 约束 + 期望输出
// 标准提示词框架:
"
[角色] 你是一位专注于性能优化的 Python 后端工程师。
[任务] 重构下面这个函数,解决 N+1 查询问题。
[约束] 使用 SQLAlchemy 的 joinedload,不修改函数签名,保持现有测试通过。
[期望输出] 返回重构后的函数代码,并解释每处优化的理由。
"
原则 2:用 @符号给足上下文
// ❌ 缺少上下文,AI 只能猜测项目结构
"给这个 API 添加分页功能"
// ✅ 通过 @提供所有相关上下文
"参考 @src/controllers/productController.ts 中现有的分页实现,
为 @src/controllers/orderController.ts 的 listOrders 函数添加相同风格的分页支持。
分页参数格式参考 @src/types/pagination.ts"
原则 3:迭代式精炼,而非一次完美
// 第一轮:快速生成骨架
"写一个 Redis 分布式锁的 Python 实现"
// 第二轮:补充细节
"好的。现在添加:
1. 自动续期机制(使用后台线程,防止长任务持有的锁过期)
2. 可重入支持(同一进程的多次 acquire 不死锁)
3. Prometheus 监控指标(锁等待时间、持有时间、超时次数)"
// 第三轮:加测试
"最后为这个类添加完整的单元测试,使用 fakeredis 模拟 Redis"
Few-Shot 示例技术
提供 1-3 个示例,让 AI 理解你期望的输出格式和风格:
"按照下面的格式为 API 响应添加文档注释:
示例1(输入):
async function getUser(id: string): Promise<User | null> {{
return db.findById(id);
}}
示例1(输出):
/**
* 根据 ID 查询用户信息
* @param id - 用户唯一标识符(UUID 格式)
* @returns 用户对象,不存在时返回 null
* @throws DatabaseError - 数据库连接失败时
* @example
* const user = await getUser('550e8400-e29b-41d4-a716-446655440000');
*/
async function getUser(id: string): Promise<User | null> {{
return db.findById(id);
}}
现在用同样的格式为下面的函数添加文档:
[粘贴你的函数]"
Notepads:持久化上下文
Notepads(笔记本)是 Cursor 的持久化上下文功能,允许你保存经常使用的上下文信息、架构文档、约束条件等,
在任何 Chat 或 Composer 中通过 @Notepads 引用,而不必每次重复输入。
// Notepad 内容示例:系统架构说明
// 保存为 Notepad "backend-architecture"
# 后端架构说明
## 整体架构
- 微服务架构,16 个服务通过 gRPC 通信
- API Gateway 使用 Kong,统一鉴权和限流
- 消息队列使用 RabbitMQ,异步任务用 Celery
## 数据库
- 主库:PostgreSQL 16(用户数据、订单)
- 读副本:2个只读副本,所有读操作走副本
- 缓存:Redis 7 Cluster(用户 session、商品信息)
- 搜索:Elasticsearch 8(商品搜索、日志)
## 服务发现
- 使用 Consul,所有服务注册到 consul.internal
- 服务间调用用 service name 不用 IP
// 在 Chat 中使用:
// "参考 @Notepads/backend-architecture,为订单服务添加一个新的搜索接口"
高级使用模式
使用 Cursor 加速代码审查
// 在终端运行 git diff,将输出粘贴到 Chat,询问:
"这是今天的 git diff。请:
1. 检查是否存在潜在的安全漏洞
2. 找出可能的性能问题
3. 检查是否有遗漏的边界情况
4. 给出整体代码质量评分(1-10)"
用 Cursor 做技术选型研究
// Agent 模式 + @web 搜索
"我需要在项目中添加实时功能(用户在线状态、即时通知)。
使用 @web 搜索最新资料,比较以下方案的优缺点:
WebSocket(ws 库)、Server-Sent Events、Socket.io、Ably、Pusher。
我的项目是 Next.js 13+ App Router,用户规模约 10 万,
帮我做技术选型并给出推荐理由。"
Vibe Coding 的正确姿势:"Vibe Coding"(随性编程)不是说让 AI 随便写然后祈祷它能用。正确姿势是:你掌握方向和架构,AI 执行细节——你是架构师,AI 是你的高效执行者。保持对代码的理解,能够审查和修正 AI 的输出,才是 AI 时代开发者应有的能力。
本章小结 · 全课程总结
- 高质量提示词遵循"角色+任务+约束+期望输出"框架,用 @符号提供充足上下文
- Few-Shot 示例让 AI 准确理解你的输出格式期望
- Notepads 保存常用架构文档,避免重复输入上下文
- AI 时代的开发者核心竞争力:架构判断力 + AI 协作能力 + 代码审查能力
- Cursor 不会替代优秀的程序员,但会让优秀的程序员生产力提升 3-10 倍