Cursor 对话的 5 个坏习惯
每个坏习惯我都踩过坑,有些坑花了我半天才发现
坏习惯一:一次要求太多
最常犯的错。一句话里塞了 3 个需求:"帮我加个用户注册接口,要邮箱验证,还要微信登录。"
结果:AI 生成的代码把邮箱验证和微信登录的逻辑混在一起,注册接口的参数校验也不完整。改起来比从头写还麻烦。
正确做法
一次只提一个需求。先让 AI 写注册接口 + 基础校验,review 通过后再加邮箱验证,最后加微信登录。每一步都能确认正确性,而不是最后面对一团乱麻。
这和 驱动 AI 干活的技巧 里说的一样——任务拆解是第一位的。你不会让一个实习生同时做三件事,AI 也一样。
坏习惯二:不提供上下文
"帮我写个分页查询"——然后 AI 给你生成了一个用 Django ORM 的分页,但你的项目用的是 SQLAlchemy 2.0 async。
我踩过最典型的一次:让 Cursor 写 FinBuddy 的数据源适配器,没告诉它项目用了 DatabaseMiddleware 模式(所有 DB 操作必须通过中间件),结果 AI 直接在适配器里 from sqlalchemy import create_engine,绕过了中间件。部署后才发现数据没走统一的连接池管理。
正确做法
对话开头先交代三件事:1)项目技术栈(FastAPI + SQLAlchemy 2.0 async + MySQL);2)架构约束(DB 操作必须通过 DatabaseMiddleware);3)相关文件路径(@db_middleware.py)。这三行字能省掉 80% 的返工。
坏习惯三:盲目接受建议
Cursor 给出的代码看起来能跑,你就直接 Accept All。这是最危险的坏习惯。
真实案例:FinBuddy_Web 的 LLM 代理服务,Cursor 建议在流式响应结束后更新用户余额。代码逻辑看起来没问题,但它在 async for chunk 循环外面做 DB 更新——如果客户端中途断开连接,循环异常退出,余额就不更新了,用户白用了 token。
# Cursor 建议的版本(有 bug)
async for chunk in llm_stream:
yield chunk
# 如果客户端断开,这里不会执行
await billing.deduct_balance(user.id, tokens_used)
# 修正:用 try/finally 确保扣费
try:
async for chunk in llm_stream:
yield chunk
tokens_used += count_tokens(chunk)
finally:
await billing.deduct_balance(user.id, tokens_used)
注意
AI 生成的代码 80% 能跑,但那 20% 的边界情况——客户端断开、网络超时、并发冲突——才是真正出问题的地方。这些场景 AI 不会主动考虑,因为它的训练数据里 happy path 占绝大多数。
坏习惯四:不迭代直接用
AI 给了第一版代码,看起来差不多,就直接用到项目里了。然后发现不对,又让 AI 重写,重写后又有新问题……来回 5 轮,比一开始自己写还慢。
我的经验:AI 的第一版几乎一定不完美,但第二版通常比第一版好很多。关键是你要给具体的反馈,而不是说"不对,重写"。
| 差的反馈 | 好的反馈 |
|---|---|
| 不对,重写 | 意图解析的路由逻辑漏了 SKILL_INVOKE 和 EXPERT_INVOKE 两种模式的互斥关系 |
| 这个不好用 | fetch_daily_kline 的 open 字段读的是 close_df,应该读 open_df |
| 性能太差 | 每条记录都创建新的 KlineResult 对象,改成批量创建或复用对象 |
反馈越具体,AI 修正的效率越高。这和管理实习生一个道理——你说"做得不好",他不知道哪里不好;你说"第三行的变量名和第七行的类型不匹配",他马上能改。
坏习惯五:忽略错误信息
代码跑报错了,直接把报错信息扔给 AI:"这个报错怎么修?"——AI 给了个修法,你照做了,报错没了,但根本原因没解决。
典型案例:FinBuddy 启动时报 ImportError: cannot import name 'SwarmEngine'。AI 建议加个 __init__.py 的 import。报错确实没了,但真正的问题是循环导入——SwarmEngine import 了 IntentParser,IntentParser 又 import 了 SwarmEngine。加 import 只是绕过了报错,循环依赖还在,只是变成了运行时的 AttributeError,更难排查。
这其实是 确认偏误的一种表现——你看到报错没了就以为问题解决了,大脑自动忽略"根因可能没找到"这个信号。投资里也一样:回测跑出年化 40% 就以为策略有效,不去检查有没有过拟合。我在 投资日志里详细记录过这个教训。
正确做法
报错信息是线索,不是答案。先自己读报错,理解根因,再让 AI 帮你修。如果自己看不懂报错,让 AI 解释报错原因,而不是直接让它修。理解了根因,你才能判断 AI 的修法对不对。
一句话总结
把 AI 当成一个聪明但粗心的实习生——它干活快,但你需要明确需求、提供上下文、检查输出、迭代反馈、理解报错。你越认真对待这个过程,AI 的产出质量越高。
更多关于怎么驱动 AI 干活的方法论,看我的 驱动 AI 干活的技巧。关于怎么 review AI 生成的代码,看 AI 生成的代码怎么 review。