我让 Cursor Agent 干了 5 个活,4 个成了,1 个差点把我项目搞崩
Cursor 真正的杀器不是 Tab 补全,是 Agent 模式。
Agent 模式是什么?它不只是补代码,而是能跨文件编辑 + 跑终端命令 + 看运行结果 + 自己修错。换句话说,它像一个坐在你旁边、能帮你操作 IDE 的实习生。
听起来很厉害。实际怎么样?我给了它 5 个真实任务,记录了每一次的成败。
对照怎么做的
| 项目 | 配置 |
|---|---|
| 工具 | Cursor v0.48,Agent 模式,模型 Claude Sonnet 4 |
| 项目 | daily-report-agent(Go, ~2000 行,7 个 .go 文件) |
| 测试日期 | 2026-05-10 ~ 2026-05-16 |
| 机器 | MacBook Pro M3 Pro, 18GB RAM |
五个任务的成绩单
| # | 任务 | 结果 | 动到文件数 | 正确文件 | 耗时 |
|---|---|---|---|---|---|
| 1 | 重构 auth 模块 | ✅ 成功 | 3 | 3/3 | 4m 12s |
| 2 | 新增 CRUD 端点 | ✅ 成功 | 4 | 4/4 | 6m 48s |
| 3 | 写测试用例 | ⚠️ 部分 | 2 | 1/2 | 5m 20s |
| 4 | 修复 lint 错误 | ✅ 成功 | 6 | 5/6 | 2m 55s |
| 5 | 更新依赖版本 | ✅ 成功 | 2 | 2/2 | 1m 30s |
汇总:涉及文件 17 个,正确编辑 15 个文件(88%),出错的 2 处都需要我手动恢复。
任务一:重构 auth 模块 ✅
指令:“把 auth.go 里的 token 验证逻辑拆成独立文件 token.go,保持所有测试通过。”
Cursor Agent 做了什么:
- 读取
auth.go,定位 token 相关的函数 - 创建
token.go,迁移了validateToken、refreshToken、parseJWT三个函数 - 更新了
auth.go的 import 和调用 - 自动跑了
go build ./...确认编译通过 - 跑了
go test ./...,2 个用例因 import 缺失失败,它自己修正了
评价:9 分。整个过程一气呵成,中间我只点了一次"Accept"。
任务二:新增 CRUD 端点 ✅
指令:“给 daily-report-agent 加一个 /api/reports 端点,支持 GET(按日期查询)和 POST(手动触发报告生成)。”
Cursor Agent 做了什么:
- 在
main.go中注册了两个路由 - 创建了
handler/report_handler.go - 在
sender.go中加了公共函数供 handler 调用 - 写了请求/响应的结构体
- 跑了编译和已有测试
评价:8 分。功能完整,但 GET 的分页逻辑只支持按天翻页——它没问我要不要支持日期范围查询。我用半天时间自己加上了。
任务三:写测试用例 ⚠️
指令:“给 collector.go 的所有导出函数写单元测试。”
这是翻车最严重的一个任务。
Cursor Agent 做了什么:
- 正确地为
CollectCommits写了测试(mock 了git命令输出) - 但同时也改了
collector.go本身——为了"更容易测试",它把一个私有函数改成了导出的
问题在哪:它改了我没让它改的文件。虽然改动本身技术上是合理的(确实更方便测试),但这不是我授权的。如果我没仔细 review diff,这个改动就悄悄合进去了。
评价:5 分。测试本身写得好(覆盖率从 12% 提到 67%),但擅自修改源文件是不可接受的。这是 Agent 模式最危险的地方——它有能动性,但缺乏判断力。
任务四:修复 lint 错误 ✅
指令:“修复 golangci-lint run 报告的所有 warning 和 error。”
这个任务是 Agent 模式的高光时刻。Lint 工具通常报一堆问题散落各文件,一个个看很烦。
Cursor Agent 做了什么:
- 运行了
golangci-lint run ./... - 解析了 14 个 lint 问题(3 个 errcheck、5 个 govet、4 个 revive、2 个 staticcheck)
- 逐个文件修复
- 有一个文件它改错了——
errcheck修复时它把_ = doSomething()改成了doSomething(),但实际上这里忽略错误是故意的(非关键路径)。我手动恢复了。
评价:7 分。省了我至少 20 分钟。但那一个不该改的地方提醒我:Agent 不理解"故意不处理"这种设计意图。
任务五:更新依赖 ✅
指令:“把 go.mod 里的所有依赖更新到最新小版本,确保测试通过。”
Cursor Agent 做了什么:
- 运行
go list -m -u all查看可用更新 - 逐个
go get更新 - 运行测试确认兼容
golang.org/x/net更新后出现了一个不兼容变更,Agent 自动修了调用处
评价:9 分。这种事以前要花半小时,现在 1 分半钟搞定。
我总结的四条 Agent 使用铁律
1. 永远不要让它自由发挥
最好的指令不是"重构这个模块",而是"把 auth.go 第 48-120 行提取到新文件 token.go,保持函数签名不变"。
精确 = 安全。模糊 = 惊喜(或惊吓)。
2. 提交前必须逐行 review diff
Agent 改的文件比你想象的多。不是它恶意——是它不知道哪些是你不希望它碰的。每次都 git diff --stat 先看涉及了哪些文件。
3. 开 Auto-Commit 之前,先关掉
Cursor Agent 默认会在完成任务后提交。关掉——你自己 commit。这样你能在提交前用 git diff 审查每一处改动。
4. 信任但验证
Agent 跑完测试说"全部通过"不代表真的没问题。你至少自己跑一遍关键路径。
Cursor Agent 模式是目前 IDE 里能用的最好 AI 助手。比 Copilot Chat 强一个档次,比 Claude Code 更"整合"。
但它不是银弹。80% 的成功率意味着 5 个任务里总有 1 个会出问题。你需要具备足够的判断力来判断它什么时候对了、什么时候在自作聪明。
我的建议:如果你能独立完成手头的任务(只是懒得写),Agent 能帮你省一半时间。如果你不会做的任务想交给 Agent——先学,再用。
更多推荐



所有评论(0)