AI 协作技巧
这一节要解决什么?
核心问题: 知道 AI 能帮忙,但不知道怎么高效协作
这一节告诉你:
- Cursor 的核心功能怎么用
- 什么时候讨论方案,什么时候直接写代码
- 提示词怎么写让 AI 更懂你
- 怎么引入规则让 AI 遵守你的标准
Cursor 核心功能
Agent 模式(70% 的时间都用这个)
什么是 Agent?
- AI 自动完成多步骤任务
- 自动读文件、改代码、运行测试
- 你提需求,AI 全程搞定
适用场景:
- 实现新功能
- 修 Bug
- 重构代码
- 写测试
示例对话:
我要实现用户登录功能:
- 邮箱 + 密码
- JWT Token
- FastAPI 后端
- 数据库用 PostgreSQL
给出完整代码。2
3
4
5
6
7
AI 会:
- 创建
auth.py - 写登录 API
- 写数据库模型
- 写 JWT 生成逻辑
- 给你测试命令
你只需要:
- 看 AI 生成的代码
- 测试能不能跑
- 有问题就告诉 AI
Plan 模式(30% 的时间用)
什么是 Plan?
- 只讨论方案,不写代码
- AI 给多个方案,你选
- 确定方案后再让 AI 写代码
适用场景:
- 项目刚开始(需求分析、架构设计)
- 重构代码(评估多种方案)
- 技术选型(对比不同技术栈)
- 复杂功能(需要多步决策)
我的实战经验:
项目初期一定用 Plan 模式
比如做 WeChatRSS 的时候,我会先问:
我要做一个微信公众号文章的 RSS 订阅服务。 需求: - 用户输入公众号名称 - 抓取最新文章 - 生成 RSS 订阅链接 技术栈: Python FastAPI + PostgreSQL 给我架构设计方案,包括: 1. 数据库表结构 2. API 接口设计 3. 文章抓取策略 4. RSS 生成方案1
2
3
4
5
6
7
8
9
10
11
12
13
14AI 会给详细方案,我确认后再开始写代码。
重构代码也用 Plan:
我的用户认证模块代码很乱,想重构。
当前问题:
- auth.py 有 500 行
- 登录、注册、JWT、权限检查都混在一起
- 难以维护
给出重构方案,不要直接改代码。2
3
4
5
6
7
8
AI 会给:
- 拆分文件的建议
- 模块设计
- 重构步骤
你确认方案后:
方案 2 不错,开始重构。切换模式的技巧
默认用 Agent:
- 需求明确,直接写代码
- 修 Bug,直接改
- 小功能,直接加
切到 Plan 的信号:
- 你不确定怎么做
- 有多种方案可选
- 改动会影响多个模块
- 需要评估利弊
我的习惯:
- 项目开始 → Plan 模式讨论架构
- 功能实现 → Agent 模式写代码
- 遇到难题 → Plan 模式讨论方案
- 方案确定 → Agent 模式执行
提示词技巧
好的提示词长什么样?
核心原则:
- 明确目标 - 你要什么结果
- 提供上下文 - AI 需要什么信息
- 限定范围 - 不要让 AI 发散
坏的提示词
帮我做登录功能问题:
- 没说用什么技术
- 没说数据库
- 没说具体需求
AI 可能:
- 用你不熟悉的技术栈
- 写一堆你用不上的功能
- 生成的代码跑不起来
好的提示词
实现用户登录功能
技术栈:
- 后端: Python FastAPI
- 数据库: PostgreSQL
- 认证: JWT Token
需求:
1. 用户通过邮箱 + 密码登录
2. 登录成功返回 JWT Token
3. Token 有效期 7 天
4. 密码用 bcrypt 加密存储
输出:
- 完整的 API 代码
- 数据库表结构
- 测试命令2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
为什么好?
- 技术栈明确
- 需求具体
- 输出清晰
提示词模板
实现功能:
实现 [功能名称]
技术栈:
- 后端: [Python/Node.js/Go]
- 前端: [Vue/React]
- 数据库: [PostgreSQL/MySQL]
需求:
1. [需求 1]
2. [需求 2]
3. [需求 3]
限制:
- [如果有特殊限制]
输出:
- 完整代码
- 测试方法2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
修复 Bug:
我遇到了一个 Bug:
问题描述:
[描述问题]
错误信息:
[完整错误]
相关代码:
[贴代码]
我的系统: [Windows/Mac/Linux]
Python 版本: [版本号]
帮我定位问题并给出修复方案。2
3
4
5
6
7
8
9
10
11
12
13
14
15
代码重构:
我要重构 [模块名称]
当前问题:
1. [问题 1]
2. [问题 2]
目标:
- [目标 1]
- [目标 2]
限制:
- 不改变现有 API 接口
- 保持数据库兼容
给出重构方案(不要直接改代码)。2
3
4
5
6
7
8
9
10
11
12
13
14
15
引入开发规范
为什么需要规范?
问题: AI 生成的代码风格不统一
示例:
- 有时候变量名是
camelCase - 有时候是
snake_case - 有时候有注释,有时候没有
解决: 用 Cursor Rules 约束 AI
我的规范文件
在项目根目录创建 .cursor/rules/ 文件夹,放入规则文件:
DEV_STANDARDS.mdc(开发规范):
- Python 命名:
snake_case - 函数必须有类型提示
- 双语注释(中英)
- 数据库表用复数(users, articles)
- 时间戳字段:
created_at,updated_at - 禁止 Emoji
UI_DESIGN_GUIDE.mdc(设计规范):
- 颜色用 CSS 变量
- 间距用 8 的倍数(8px, 16px, 24px)
- 卡片用
unified-card类 - 动画不超过 400ms
效果: AI 自动遵守,不需要每次都说"用 snake_case"、"加类型提示"
怎么建立你的规则?
我的经验:
- 先做项目 - 不写规则,让 AI 自由发挥
- 发现问题 - 代码风格不统一,命名不符合习惯
- 总结规则 - 写下标准,放到
.cursor/rules/ - 迭代优化 - 做 3-4 个项目后规则才完善
建议: 第一版规则简单点(10-20 行),别想一次写完美
实战效果
没有规则:
def GetUser(userId):
# get user
return db.query(userId)2
3
有规则后:
def get_user(user_id: str) -> dict:
"""
Get user by ID.
根据 ID 获取用户。
"""
return db.query(user_id)2
3
4
5
6
AI 自动遵守:
- 函数名
snake_case - 参数类型提示
- 双语文档注释
什么时候讨论方案 vs 直接写代码?
讨论方案(Plan 模式)
项目启动时:
新项目: AI 新闻聚合器
需求:
- 抓取多个信息源
- AI 分析和评分
- 生成每日报告
讨论:
1. 数据库表结构设计
2. 信息源抓取策略
3. AI 分析用什么模型
4. 定时任务怎么实现
给出详细方案。2
3
4
5
6
7
8
9
10
11
12
13
14
代码重构时:
我的 API 代码有 1000 行,都在 main.py
问题:
- 难以维护
- 路由、逻辑、数据库都混在一起
重构目标:
- 按功能拆分文件
- 保持现有 API 不变
给出重构方案(不要直接改代码)。2
3
4
5
6
7
8
9
10
11
技术选型时:
我要给项目加缓存
候选方案:
1. Redis
2. 内存缓存(Python dict)
3. 文件缓存
场景:
- API 请求 QPS < 100
- 数据更新频率: 每小时
- 单机部署
对比方案,给建议。2
3
4
5
6
7
8
9
10
11
12
13
直接写代码(Agent 模式)
需求明确时:
给 /api/users 接口加分页
参数:
- page: 页码(从 1 开始)
- page_size: 每页数量(默认 20)
返回:
- items: 数据列表
- total: 总数
- page: 当前页
- pages: 总页数
直接改代码。2
3
4
5
6
7
8
9
10
11
12
13
小功能迭代:
给 User 表加一个 avatar 字段,
存储用户头像 URL。
更新:
1. 数据库迁移脚本
2. API 返回数据
3. 类型定义
直接改。2
3
4
5
6
7
8
9
修 Bug:
登录接口报错:
错误: KeyError: 'email'
相关代码:
[贴代码]
定位问题并修复。2
3
4
5
6
7
8
我的协作习惯
核心流程:
- 项目启动 → Plan 模式讨论架构
- 功能实现 → Agent 模式快速迭代
- 遇到难题 → Plan 模式评估方案
- 代码重构 → Plan 讨论 → Agent 执行
实战示例:
新增功能(Agent 直接搞定):
加一个"收藏文章"功能:
数据库:
- favorites 表(user_id, article_id, created_at)
API:
- POST /api/favorites - 收藏文章
- DELETE /api/favorites/{id} - 取消收藏
- GET /api/favorites - 查看收藏列表
直接实现。2
3
4
5
6
7
8
9
10
11
提示词进阶技巧
技巧 1: 分步骤,别一次性要太多
坏的提示词:
做一个完整的用户系统,
包括注册、登录、权限、邮件验证、
密码重置、OAuth、两步验证。2
3
问题: AI 可能漏掉功能,或者代码质量差
好的提示词:
实现用户系统 - 第 1 步: 基础注册和登录
功能:
- 邮箱 + 密码注册
- 登录返回 JWT Token
- 密码 bcrypt 加密
完成后告诉我,我再加其他功能。2
3
4
5
6
7
8
为什么好?
- 一次一个功能
- AI 专注做好一件事
- 你可以测试每一步
技巧 2: 提供完整错误信息
坏的提示词:
我的代码报错了,帮我看看AI 没法帮你,因为不知道:
- 什么错误?
- 什么代码?
- 什么环境?
好的提示词:
我在运行 API 时报错:
错误信息:
sqlalchemy.exc.OperationalError:
(sqlite3.OperationalError) no such table: users
相关代码(main.py):
[贴代码]
数据库文件: app.db
Python 版本: 3.11
系统: Windows 11
帮我解决。2
3
4
5
6
7
8
9
10
11
12
13
14
AI 能立刻定位: 数据库表没创建,给你建表命令
技巧 3: 让 AI 解释,不要只要代码
只要代码:
实现微信支付回调
[AI 给了代码]
你: 这是什么? 怎么用?2
3
4
5
更好的方式:
实现微信支付回调
要求:
1. 完整代码
2. 解释每个步骤在做什么
3. 如何测试(没有真实支付环境)
4. 常见坑点
我是新手,需要理解原理。2
3
4
5
6
7
8
9
AI 会:
- 给代码
- 加详细注释
- 解释回调流程
- 告诉你怎么用 ngrok 测试
技巧 4: 约束 AI 的发挥空间
问题: AI 可能给你用不上的"高级"方案
示例:
实现文章列表分页AI 可能给:
- 游标分页(Cursor Pagination)
- GraphQL 分页
- 无限滚动
但你只需要: 简单的 page + page_size
更好的方式:
实现文章列表分页
要求:
- 用传统的 page + page_size 方式
- 不要游标分页
- 不要 GraphQL
- 越简单越好
直接给代码。2
3
4
5
6
7
8
9
技巧 5: 问"为什么",不只问"怎么做"
只问怎么做:
FastAPI 怎么实现文件上传?
[AI 给代码]
你: 能跑,但不知道为什么这么写2
3
4
5
更好的方式:
FastAPI 怎么实现文件上传?
要求:
1. 完整代码
2. 解释为什么用 UploadFile
3. 文件保存在哪里
4. 怎么限制文件大小
5. 常见问题和解决方案
我想理解原理,不只是复制代码。2
3
4
5
6
7
8
9
10
效果:
- 你学到了知识
- 下次遇到类似问题能自己改
Token 消耗和成本
Token 是什么?
简单理解: AI 处理的文字量
计费方式:
- 你发给 AI 的文字: Input Token
- AI 返回的文字: Output Token
- 合起来算钱
价格(参考 Claude):
- Input: $3 / 1M tokens
- Output: $15 / 1M tokens
怎么省 Token?
不推荐省 Token,但可以优化:
- 明确提示词 - 减少 AI 猜测
- 分步骤 - 每次聚焦一个功能
- 复用代码 - 让 AI 基于现有代码修改
- 避免重复 - 不要反复问同样的问题
但我的建议:
- 前期不要省
- 把功能做出来更重要
- Token 费用能回本
核心原则
AI 是工具,你是决策者
- 明确需求 - 你知道要什么
- 分步推进 - 一个功能一个功能做
- 快速验证 - 代码生成后立刻测试
- 迭代优化 - 不追求一次完美
记住: 不是 AI 替你做项目,是你用 AI 加速开发。决策权在你手里。