三天后,爬虫跑崩了。不是代码 bug,是把对方网站打挂了——并发 100,单 IP 没限速,被对方风控拉黑,连带公司整个出口 IP 被封。
复盘的时候,我们看他的 .cursorrules 文件,里面只写了一句:
"你是一个 Python 专家。"
没有并发限制、没有重试机制、没有日志规范、没有异常处理——什么都没写。
AI 按它的"默认理解"写了一版能跑的代码,语法对、逻辑通,但工程上一塌糊涂。
他崩溃的不是 AI 写得不好。
崩溃的是,他不知道 AI 编程的"宪法"是 .cursorrules,而不是 Prompt。
这是这个系列的最后一篇——把前面所有理论(P0 原理 / P1 Prompt / P2 Agent / P3 多模态)全部收口到真刀真枪的代码上。
不讲怎么写 hello world,讲怎么用 Cursor / Trae / CodeBuddy 干工程活。

一、什么是 Cursor Rules:AI 编程的"宪法"
Cursor 是什么
Cursor 是一个 AI 原生 IDE(基于 VS Code 内核),核心能力:
Tab 补全:写一行,它猜下一行 Cmd+K:选中代码,AI 改写 Cmd+L:打开侧栏,对话式编程 Composer / Agent:跨文件修改,自主执行命令
但真正让 Cursor 区别于"会聊天的编辑器"的,是 .cursorrules 文件。
.cursorrules 是什么
一个放在项目根目录的 Markdown 文件。AI 在每一次对话、每一次生成代码前,都会读它。
类比:
.cursorrules= 项目宪法Prompt = 临时法令 AI 行为 = 在宪法框架内执行法令
没有 .cursorrules,AI 的每一次输出都是从零开始"猜你想要什么"。有了 .cursorrules,AI 的每一次输出都在已知的工程规范内收敛。
一个生产级 .cursorrules 模板
# 项目宪法## 角色你是一名资深 Python 后端工程师,专注于数据处理和 API 开发。## 技术栈- Python 3.11+- Pandas / Openpyxl(Excel 处理)- Requests / Aiohttp(HTTP 请求)- FastAPI(API 服务)- SQLite / PostgreSQL(数据存储)## 代码规范- 遵循 PEP 8- 函数必须有 type hints- 关键函数必须有 docstring(Google 风格)- 复杂逻辑必须有行内注释(中文)- 异常必须显式捕获,不允许裸 except## 性能约束- HTTP 请求必须有超时(connect=5s, read=10s)- 并发请求数不超过 10,使用 asyncio.Semaphore- 单次请求失败最多重试 3 次,指数退避- 大文件(>100MB)必须分块处理## 安全红线- 禁止硬编码密钥、Token、密码- 所有外部输入必须验证- SQL 必须参数化,禁止字符串拼接## 输出格式- 默认输出完整可运行代码,不要只输出片段- 代码前用一句话说明思路- 代码后用 bullet list 说明关键设计决策## 测试要求- 每个核心函数必须有对应单元测试- 测试用例覆盖正常 + 边界 + 异常这就是"宪法"的力量。
有了这份文件,AI 写出来的代码不是"能跑",是"按你的工程标准能跑"。
这是 AI 编程和非 AI 编程的根本区别——你不是在"写代码",你是在"定规矩,让 AI 写代码"。
<img src="images/ai-coding-02-cursorrules.png" alt="图位2:Cursor Rules 层级图——金字塔:底部"项目宪法 .cursorrules"(最重),中部"任务 Prompt",顶部"AI 生成代码"" title="图位2:Cursor Rules 层级图——金字塔:底部"项目宪法 .cursorrules"(最重),中部"任务 Prompt",顶部"AI 生成代码"">
二、Cursor 的三大核心功能
光会写 .cursorrules 不够,还得会用 Cursor 的三件武器。
武器 1:Tab 补全(单行/多行预测)
用法:写一行注释,Tab 接受建议;再 Tab,扩展多行。
适用:
写重复性代码(for 循环、try-except) 写样板代码(DTO、CRUD 接口) 写熟悉的库调用(pd.read_excel、requests.get)
技巧:
注释要具体——"读取 sales_2024.xlsx 的 A 列"比"读文件"准 10 倍 不确定时按 Esc,别盲目接受 多行建议按一次 Tab 接受一段,别贪
武器 2:Cmd+K(局部改写)
用法:选中一段代码,Cmd+K,输入"把这段改成异步"。
适用:
重构(同步改异步、加 type hints、抽函数) 加日志、加异常处理 翻译(Python → Go、TypeScript → Python)
技巧:
选中范围精确——选整函数和选半函数,结果差很多 改写指令具体——"加超时"模糊,"加 connect=5s, read=10s 超时"清晰
武器 3:Composer / Agent(跨文件自主执行)
用法:Cmd+I,打开 Composer,描述整个任务,AI 自主跨文件修改 + 跑命令 + 看结果。
适用:
新建功能模块(数据库 + API + 前端三件套) 跨文件重构(改一个接口名,自动改所有调用方) 跑测试 + 修 bug 循环
这是 Cursor 最强大、也最危险的功能。
危险在哪? AI 可能自主:
删你没让它删的文件 跑你没让它跑的迁移脚本 提交你没让它提交的 commit
应对:所有"写"操作默认开启 review;所有"删"和"执行"操作必须二次确认。

三、实战 CASE 1:多张 Excel 报表合并(Cursor)
场景
运营每月给你 30 个分公司的 Excel 销售报表,结构相同,要合并成一张总表。
手工复制粘贴要 2 小时。用 Cursor,10 分钟搞定。
Step 1:建项目,写 rules
mkdir monthly_sales && cd monthly_salestouch .cursorrules # 把上面的模板贴进去,修改技术栈部分Step 2:丢样本数据,让 AI 探索
在 Composer 里说:
"我有一个文件夹
./reports/,里面有 30 个 Excel,列结构相同。读取前 3 个,分析字段类型和数据质量,输出报告。"
AI 会写一个 explore.py,自己跑,输出报告:
字段类型推断 缺失值统计 异常值检测 列名不一致警告
这一步的价值:让你先搞清楚数据,再写合并逻辑。
Step 3:写合并脚本
"基于探索结果,写一个
merge.py,要求:
自动识别 Excel(即使文件名混乱) 统一列名(处理分公司命名差异:北京 vs 北京分公司) 添加来源文件名和读取时间字段 输出 merged.xlsx,含数据校验报告 异常文件单独记录到 errors.log"
AI 会输出完整脚本 + 关键决策说明。
Step 4:跑测试
"写
test_merge.py,覆盖:
正常 30 个文件合并 1 个文件损坏(空文件) 1 个文件列名异常 1 个文件数据有重复 跑测试,修复直到全过。"
AI 自动循环:写测试 → 跑 → 看错误 → 修代码 → 再跑。
最终交付物
monthly_sales/├── .cursorrules # 项目宪法├── reports/ # 原始数据├── merge.py # 合并脚本├── test_merge.py # 单元测试├── merged.xlsx # 输出结果├── errors.log # 异常记录└── README.md # 使用说明整个过程,你的工作量 = 写 rules + 描述需求 + review 代码。 AI 完成 80% 的实际编码。
四、实战 CASE 2:疫情实时监控大屏(Cursor + 多模态 + RAG)
这是整个系列理论的全应用——P0 原理(API 调用)、P1 Prompt(结构化指令)、P2 Agent(自主循环)、P3 多模态(图表理解)一次用齐。
场景
做一个疫情实时监控大屏:
实时数据从公开 API 拉 历史数据存数据库 大屏显示全国地图 + 趋势图 + Top10 城市 支持自然语言提问:"上周上海新增多少?"
技术架构
数据层 公开 API → 定时任务 → SQLite ↓查询层 自然语言问题 → RAG(数据 schema + 历史问答) → SQL 生成 → 查询 → 自然语言回答 ↓展示层 FastAPI 后端 → 前端大屏(地图 + 图表 + 问答框)Cursor 工作流
阶段 1:搭骨架(Agent 模式)
"我有一个疫情数据 schema:[提供数据库结构]。帮我生成:
数据拉取脚本(定时任务) FastAPI 后端(提供 /stats、/trend、/qa 三个接口) 前端 HTML(地图 + 图表 + 问答框) README(部署步骤)"
AI 一次性输出整套骨架。这正是第二篇 Agent 讲的"自主反思循环"——AI 自己写代码、自己跑、自己看错误、自己修。
阶段 2:自然语言问答(RAG 增强)
光有 SQL 生成不行,模型不知道你的数据库 schema。
用 RAG 补:
# 检索内容- 数据库表结构文档- 历史问答对("上海"对应哪个字段、怎么过滤"上周")- 常用业务术语词典# Prompt 模板system = """你是数据分析师,可以查询疫情数据库。表结构:{schema}业务词典:{glossary}历史问答参考:{examples}要求:1. 只用提供的字段名,不要瞎猜2. 时间用 SQL 标准函数(DATE_SUB 等)3. 输出 SQL + 中文解释"""这就是第一篇 Prompt + 第二篇 RAG 的实战。
阶段 3:异常处理(Agent 反思)
用户问"上海上个月怎么样",AI 生成 SQL,查询报错(字段名拼错)。
让 Agent 自动反思:
# 执行 SQL 失败时error_msg = str(e)revision_prompt = f"""刚才的 SQL 执行失败:{error_msg}请检查:1. 字段名是否在提供的 schema 内2. 时间函数语法是否正确3. 是否需要 JOIN 多个表重新生成 SQL。"""循环直到成功,最多 3 轮,超出转人工。 这就是第二篇 ReAct 框架的实战。
最终交付
一个能跑、能查、能自然语言问答的疫情大屏。全栈代码量 1500+ 行,你写的代码量 < 200 行。

五、Trae 与 CodeBuddy:国产 AI IDE 的差异化
Cursor 不是唯一选择。国产有 Trae 和 CodeBuddy,各有特色。
对比表
| 厂商 | |||
| 模型 | |||
| 优势 | |||
| 短板 | |||
| 适合 |
Trae 使用心得
优势:
国内访问速度快 中文 Prompt 友好 免费额度慷慨 内置字节豆包系列模型,中文理解强
坑:
Agent 模式不如 Cursor 成熟 多文件跨改经常漏改 .cursorrules没有原生支持,需要靠 system prompt
适用人群:中文为主的中小项目、个人开发者、学习用。
CodeBuddy 使用心得
优势:
微信小程序、企业微信场景深度集成 团队协作(多人共享 rules) 安全合规(数据不出企业内网)
坑:
个人开发者用不到企业功能 模型选择较少 速度相对慢
适用人群:企业内部项目、ToB 团队、需要合规的场景。
我的建议
选 Cursor,如果:
做海外项目 对规则体系、工程规范要求高 愿意付费(Pro $20/月)
选 Trae,如果:
中文项目 个人学习、轻量开发 想白嫖
选 CodeBuddy,如果:
企业内部系统 团队协作、权限管理 微信生态对接
不要纠结,先用一个跑起来再说。 IDE 是工具,不是信仰。

六、AI 编程的 6 条生死线
血泪总结的避坑清单:
.cursorrules必须从第一行代码开始写——不是"以后补",是"项目初始化第一步"Agent 模式开 review,不开 trust——AI 自主执行命令前必须人看一眼 永远在沙箱里跑——AI 写的代码可能删库、跑迁移、发邮件,先在测试环境验证 必须有测试——AI 写的代码语法对、逻辑对,但工程上不一定对。测试是唯一可靠防线 别让 AI 写安全敏感代码——加密、鉴权、支付、AI 自己也不确定,让人类专家写 定期 review .cursorrules——项目演进,rules 也要演进,否则变成僵尸文件
写在最后
这是这个系列的最后一篇。
前面所有篇——P0 原理、P1 Prompt、P2 Agent、P3 多模态——全部收口到这一篇的工具里。
工具不重要。重要的是你懂不懂规则。
Cursor / Trae / CodeBuddy 三个月换一波,.cursorrules 这种"宪法思维"永远不过时。
Prompt 是地基,RAG 是放大器,Agent 是杠杆,多模态是新维度——这些都只是零件。
真正让你成为 AI 时代工程师的,是把零件拼成产品、把产品落到代码、把代码跑在生产的能力。
AI 不会替代工程师。但懂 AI 的工程师,会替代不懂 AI 的工程师。
这不是工具的革命,是工程师的革命。

系列终章:完整导览
| P4 | AI 编程:从入门到精通 | 工地 | 理论全部收口到 Cursor/Trae/CodeBuddy 的工程实战 |
夜雨聆风