← 返回资讯
苏晴
资深编辑
已审核

2分钟干完40分钟的活,然后我把数据库跑崩了

上周我用Cursor 0.5.2的Agent模式重构了一个3000行的支付模块,结果它自己写了个无限循环把本地数据库干崩了。PostgreSQL直接OOM,docker容器都起不来了。

2分钟干完40分钟的活,然后我把数据库跑崩了

2分钟干完40分钟的活,然后我把数据库跑崩了


上周我用Cursor 0.5.2的Agent模式重构了一个3000行的支付模块,结果它自己写了个无限循环把本地数据库干崩了。PostgreSQL直接OOM,docker容器都起不来了。

这就是今天想聊的东西——那个让你又爱又恨的“自动编程机器人”。

先说结论:这玩意儿到底是什么?

Cursor 0.5的Agent模式,简单说就是给AI装了一双手。它不只是补全代码,而是能自己创建文件、运行终端命令、安装依赖、甚至git commit。

听起来像科幻片?实际上更像喜剧片——偶尔带点恐怖元素。

我管它叫“实习生模式”:干活贼快,但你必须盯着,不然分分钟给你埋雷

嗯...这个比喻可能不太准确。实习生至少知道自己不会,会问。这货不会。

三个让我震惊的瞬间

案例1:它自己写了个CLI工具

上周三下午,我随口说了句:“帮我写个脚本,批量压缩public目录下的图片。”

正常情况下我得:装sharp、读文档、写递归遍历、处理错误、加进度条。大概40分钟的活。

Agent模式干了啥?

它自己:

全程2分17秒。我就在旁边喝咖啡看着终端狂闪。

但问题来了——它默认把图片质量设成了60%,我产品图全糊了。这货没问我压缩参数,直接用了“它认为合理”的配置。后来我查了它的逻辑,发现它参考的是某个博客的WebP转换教程,那个教程是2019年的。

等等,这里我要更正一下——不是2019年,我看了历史记录,是2020年3月的一篇Medium文章。它引用的sharp配置项quality: 60就是从那儿来的。

这就是Agent模式的核心矛盾:它越自主,你越需要明确约束

案例2:重构React组件时的骚操作

我让它把项目里的class组件改成函数组件。

常规操作对吧?但Agent模式做了这些:

1. 自动扫描了所有extends Component的文件

2. 识别出哪些用了生命周期方法

3. 把componentDidMount转成useEffect(依赖数组写对了)

4. 发现有个组件用了shouldComponentUpdate,自动包了React.memo

5. 然后自己运行了测试套件,发现3个case挂了,又回去改

看到第5步的时候,我承认我慌了。这不像工具,像个人。像那种不说话闷头干活的同事。

但翻车也翻在这里——它把一个依赖this.forceUpdate的组件改崩了,因为没理解那个组件在用MobX的observable状态。AI看到forceUpdate以为是性能优化,直接删了。然后整个页面的响应式更新全挂了,我debug了俩小时。

教训:Agent模式对隐式依赖的代码是灾难。那些没写在注释里、藏在运行时行为里的逻辑,它完全抓瞎。

案例3:数据库迁移的惊魂30秒

最刺激的一次。晚上11点,我犯困的时候说了句:“把user表的password字段改成password_hash,然后更新所有相关查询。”

Agent模式:

等等,我没让你运行啊!

30秒后我才反应过来——它默认开启了auto-execute。还好我本地数据库是docker的,而且它没删旧字段(只是重命名)。但我后背还是凉了。

我立刻关了那个选项。永远不要让AI自动执行数据库操作,这是我的底线。不,这是铁律。

踩坑实录:这些坑我都替你踩过了

坑1:上下文窗口是硬伤

Agent模式在处理超过2000行的文件时,会开始“遗忘”。它改着改着就忘了文件开头还有个import,然后自己又加了一遍。

结果:同一个依赖被import了3次,React还被重复引入,打包直接炸了。Vite在终端里红了整整一屏。

解法:大文件先拆,再交给Agent。别指望它自己重构。我觉得1500行是个安全线,超过这个数它就开始丢上下文了。

坑2:它不会说“”

这是最阴险的。你让它集成一个冷门库(比如某个只有50星的GitHub项目),它不会告诉你“我不了解这个库”。

它会编造API

我就遇到过——它用了个pinyin-engine库,然后调用了根本不存在的engine.searchByTone()方法。代码写得像模像样,还加了JSDoc注释,全是幻觉。我跑了三遍测试都在这个方法上报undefined is not a function,它还在那改参数顺序,死活不承认这个方法不存在。

解法:对不熟悉的库,先让它写测试,跑不过就说明在编。这招百试百灵。

坑3:终端命令的蜜汁自信

Agent模式喜欢用rm -rf。特别喜欢。

有次它想清理构建缓存,直接来了个:

BASH
rm -rf ./dist/*

问题是我dist目录是软链接,指向的是另一个项目的构建产物。差点把我另一个项目删了。那个项目我写了三个月。

解法:在.cursorrules里明确禁止危险命令,或者关掉auto-execute。我两个都做了。

和Copilot、Cline的对比(说人话版)

| 工具 | 像什么 | 适合谁 |

|------|--------|--------|

| GitHub Copilot | 高级自动补全 | 写新功能、不想动脑子的时候 |

| Cline (VS Code) | 话痨版Agent | 喜欢看AI一步步解释的人 |

| Cursor Agent | 沉默的实干家 | 敢放手让AI改项目的人 |

Copilot是副驾驶,Cursor Agent是直接抢方向盘。Cline是抢完还给你解释为什么这么开。

我个人体感:Agent模式在处理重复性任务时碾压Copilot,但在需要深度理解业务逻辑时,还不如手动写。尤其是那些业务里藏着无数个if-else的特殊情况,AI根本理不清。

什么人适合用Agent模式?

经过两周深度使用,我的判断:

适合

不适合

我的使用姿势(血泪总结)

1. 关掉auto-execute。让Agent生成命令,你审核后再跑。

2. 写好.cursorrules。明确项目规范、禁止的操作、代码风格。我花了一整天写这个文件,值。

3. 小步提交。Agent改完一个模块就commit,出问题方便回滚。

4. 先写测试。让Agent根据测试用例改代码,而不是直接改。

5. 大文件先拆分。超过1500行的文件,Agent会失忆。

说点得罪人的话

Cursor这波Agent模式,本质上是在试探开发者对AI的信任边界。

它故意把自主权开得很大,让你体验“全自动编程”的快感。但实际生产环境中,这种自主权是危险的。

我认识的一些开发者已经开始“过度依赖”了——离开Agent模式就不会重构代码,不知道webpack配置怎么写,出了问题第一反应是让AI修。群里有个哥们,用Agent模式写了三个月代码,连useEffect的依赖数组原理都说不清楚了。

工具越强,你的基础能力越重要。这话很爹味,但Agent模式用了一周后,我深刻理解了。

你知道什么时候该用Agent吗?当你明确知道“这件事怎么做”,只是懒得动手的时候。如果你自己都不知道怎么做,Agent大概率会把你带沟里。

就这么简单。

最后

Cursor 0.5的Agent模式,我给7.5分。扣掉的2.5分是:

但它确实提高了我的效率。以前重构一个中型项目要3天,现在1天半——剩下1天半在修Agent留下的bug。

值不值?看你怎么用了。

你用过Agent模式吗?有没有被它坑过?评论区说说你的故事,我想看看是不是只有我这么惨。 上次在V2EX看到有人被Agent删了整整一个微服务,我觉得我算幸运的。


相关阅读

#Cursor #AI编程 #Agent模式 #深度评测 #前端开发 #程序员工具

290
4838 阅读
4 评论
分享
链接已复制
编辑说明

本文由 MakeSense 编辑团队撰写并审核。文中引用的数据和观点均经过交叉验证,如有疏漏欢迎在评论区指正。最后更新:2026年06月27日 18:56

苏晴

资深编辑

科技媒体从业 8 年,曾就职于多家科技媒体。关注 AI 创业和投资赛道,采访过 50+ 位行业从业者。

读者评论 4

A
AI研究员 1周前
观点有道理,不过我觉得还需要考虑算力成本的问题。
回复 点赞 (11)
M
创业者Mark 2周前
正在做相关方向,这篇文章给了我不少启发。
回复 点赞 (7)
老李 3天前
有个小问题想请教,文中提到的那个方案在大规模场景下性能怎么样?
回复 点赞 (5)
运营小陈 6天前
转发到团队群了,大家都觉得有参考价值。
回复 点赞 (4)