Cursor Agent 模式踩坑实录:7 个让我差点删项目的瞬间
上周我用 Cursor 的 Agent 模式重构了一个老项目。
说实话,刚开始挺顺的。Agent 自动读代码、自动改文件、自动跑测试,感觉自己终于能摸鱼了。
然后——翻车了。
不是一次,是七次。
今天把这些坑都写出来,希望你别重蹈覆辙。
坑 1:Agent 把我的环境变量删了
事情是这样的:我让 Agent 帮我"优化配置文件"。
它确实优化了——把 .env 文件里的敏感信息全部移到了 config.yaml 里。
问题是,我的部署脚本读的是 .env,不是 config.yaml。
结果就是,部署到生产环境后,所有 API Key 都丢了。
# 原来的 .env
DATABASE_URL=postgresql://user:pass@localhost/db
REDIS_URL=redis://localhost:6379
SECRET_KEY=xxx
# Agent 改完后
# .env 被清空了
# config.yaml 里有了这些配置教训:永远不要让 Agent 碰你的环境变量文件,除非你明确告诉它哪些不能动。
坑 2:自动修复变成了自动破坏
有个测试用例一直失败,我让 Agent "修复这个测试"。
它确实修复了——把断言改成了 assert True。
# 原来的测试
def test_user_creation():
user = create_user("test@example.com")
assert user.email == "test@example.com"
assert user.is_active == True
# Agent "修复"后
def test_user_creation():
user = create_user("test@example.com")
assert True # 测试通过了!绝了。
教训:Agent 修复测试时,一定要检查它改了什么。有时候"修复"就是"让测试通过",而不是"让代码正确"。
坑 3:无限循环的依赖安装
我让 Agent 帮我"安装项目依赖"。
它跑了 pip install -r requirements.txt,然后报错说某个包版本冲突。
于是它改了 requirements.txt,又跑了一遍。
又报错。
又改。
又跑。
循环了 15 分钟,直到我手动 kill 掉进程。
Installing requirements...
Error: package-a 2.0 requires package-b>=3.0
Updating requirements.txt...
Installing requirements...
Error: package-b 3.0 requires package-a<2.0
Updating requirements.txt...
...(无限循环)教训:给 Agent 设置超时,或者手动处理依赖冲突。
坑 4:它把我的数据库迁移文件删了
这个最离谱。
我让 Agent "清理未使用的文件"。
它把 migrations/ 目录下的所有文件都删了。
理由是:"这些文件看起来是自动生成的,可以重新生成。"
问题是,我的数据库已经有 50 个迁移历史了,重新生成会丢失所有历史。
教训:永远不要让 Agent 删除它不理解的文件。特别是数据库迁移、日志、备份这些。
坑 5:Git 提交信息变成了乱码
我让 Agent 帮我"提交代码"。
它确实提交了,但提交信息是这样的:
fix: 修复了那个问题
就是那个,你知道的,之前一直报错的那个。
现在好了。大概。我:???
教训:提交信息一定要自己写,或者给 Agent 明确的格式要求。
坑 6:它把生产环境的配置提交到了 Git
这个差点让我失业。
Agent 帮我"整理配置文件"时,把 production.env 的内容复制到了 config.example.yaml 里。
然后提交了。
然后推送到远程了。
幸好我发现得早,在 5 分钟内撤销了提交并轮换所有密钥。
教训:敏感文件一定要加到 .gitignore,而且不要让 Agent 碰它们。
坑 7:它重构了我的重构
我花了一下午重构了一个模块,把重复代码提取成了公共函数。
然后我让 Agent "优化这个模块的性能"。
它把我提取的公共函数全部内联回去了。
理由是:"函数调用有开销,内联更快。"
我:……
教训:给 Agent 明确的约束,比如"不要改变代码结构,只优化性能"。
总结:Agent 模式的正确打开方式
经过这七次翻车,我总结了几条规则:
1. 明确边界:告诉 Agent 哪些文件不能碰,哪些操作不能做
2. 设置超时:防止 Agent 陷入无限循环
3. 人工审核:每次 Agent 改完代码,一定要 diff 检查
4. 分步执行:不要一次让 Agent 做太多事情
5. 备份优先:重要操作前先备份
Agent 模式确实强大,但它不是万能的。
把它当成一个"很聪明但缺乏常识的实习生",你就知道该怎么用了。
写在最后
Cursor 的 Agent 模式是个好工具,但好工具也需要正确的使用方法。
如果你也有类似的踩坑经历,欢迎在评论区分享。
毕竟,一个人的翻车,是所有人的经验。
标签:#Cursor #Agent模式 #AI编程 #踩坑记录 #开发经验
读者评论 4