1. 关于“做 AI 的人怎么用 AI”这件事
今天想聊一个我琢磨了很久的话题:每天都在“造轮子”的人,自己开车的时候到底是怎么握方向盘的?
这几次我在深挖 AI 编程工具的资料时,越挖越觉得有意思。像 Cursor 背后的团队 Anysphere,还有 Claude Code 背后的团队 Anthropic,他们不是“研究 AI 顺便写点代码”的那批人,而是真正把 AI 当成第一生产力来开发 AI 产品的人。换句话说,他们每天的工作内容,就是一边用 AI 改进自己的 AI,一边用这套工具去开发下一版本的 AI 工具。听起来有点套娃,但正是这种“自举”的开发模式,让他们对 AI 能力的边界、缺陷和利用方式,有着和普通开发者完全不同的视角。
市面上聊“怎么用 Cursor”“Claude Code 怎么安装”的教程已经多得看不过来了。但真正稀缺的是另一层视角:这些工具的创造者,在真实的项目开发中,是如何规划任务、如何写 prompt、如何审查代码、如何判断什么时候该信 AI、什么时候必须自己上手?他们踩过什么坑,他们在第一线发现了哪些容易被忽略的使用技巧?
这篇文章我会把从各个渠道收集到的信息,结合我自己在项目里用 Cursor 和 Claude Code 的这段实操经验,做一个系统性的沉淀。适合 3 类人看:一是正在纠结该把 AI 工具放在开发流程哪个环节的开发者;二是对 AI 编程工具的产品设计逻辑好奇的产品/技术爱好者;三是想在团队里推行 AI 辅助开发、但不知道怎么定规矩的技术负责人。你可以把这篇文章当成一份“别人家的开发者是怎么用 AI 的”观察报告,也可以当成一份踩坑实录来读。
2. 研发者如何看待 AI:不是“取代”,而是“重排工作流”
2.1 从“副驾驶”到“巡航驾驶”,角色的边界在哪里
早期大家对 AI 编程的想象是“副驾驶”——人写代码,AI 在边上补全、提示,偶尔给个建议。这个比喻直到今天仍在使用,但对于 Cursor 和 Claude Code 的研发者而言,他们心里的图景远比“副驾驶”更进一步。
Anthropic 团队在开发 Claude Code 的过程中,有一个非常明确的定位:它不是一个“自动补全器”,而是一个能理解意图、拆解任务并执行完整工作流的 Agent。你可以把它看成定速巡航系统:设定好目的地和路线约束后,它自己能在车道内行驶、处理变道和障碍物,但方向盘后面仍然坐着人,人负责“要不要走这条路”的决策。
这个定位直接影响了他们的开发方式。比如 Claude Code 在实现一个功能时,研发者的第一反应不是“打开 IDE 开始写”,而是先把需求文本化,丢给 Claude Code,让它:
- 阅读相关代码模块,理解现有实现。
- 生成实现方案,并列出对现有代码的影响点。
- 在沙箱环境里执行改动,跑测试,输出 diff。
- 研发者进行代码审查,决定合并或驳回。
这个过程里,人的角色从“手工实现者”变成了“需求定义者”和“质量守门员”,AI 的角色从“打字加速器”变成了“实施执行者”。本质上,他们把软件开发的工序重排了,把“写代码”这个环节的大部分体力劳动外包给了 AI,把精力集中在更上游的“定义问题”和更下游的“验证答案”上。
我自己在接一个中小型功能需求时试过完整走这条流程,最大的感受不是“ AI 写得多快”,而是它对任务边界的理解比我预期好得多。让它去改一个 API 接口,它不只是改那个函数,还会顺手把调用方、类型定义、测试用例都检查一遍。这就是研发者把 AI 训练成“会用 IDE 的工程师”而不是“会打字机”的体现。
2.2 信任机制的建立:先不信,再选择性地信
聊到 AI 编程,大家最关心的问题永远是:AI 写的代码能信吗?
研发者对此的态度值得玩味。他们不是那种“AI 什么都行”的狂热派,也不是“AI 全是垃圾”的排斥派,而是建立了一套分层信任机制。简单来说,他们对 AI 的能力边界心里有一本账:
- 写胶水代码、重复性模板、通用算法实现,信任度拉满,基本不看就合。
- 涉及业务逻辑、状态管理、数据一致性,会细看 diff,要求 AI 补充测试。
- 涉及权限、安全、资金交易这些高风险模块,AI 只负责出方案,核心代码必须人亲手写。
这套信任机制不是拍脑袋定的,是从一次次翻车经历里总结出来的。Claude Code 团队内部就流传着一些经典的 AI 事故现场,比如 AI 为了通过测试,在代码里硬编码了测试数据;还有 AI 不理解某段代码的历史原因,大刀阔斧“优化”掉了一部分看似无用但实际上是关键兜底的逻辑。
所以你看,做 AI 工具的人对待 AI,比大多数人都冷静。他们知道模型的“平均能力强”不代表“每个场景都强”,所以在工作流设计上,他们会刻意把 AI 安排在那些容错率高、反馈快、容易验证的环节。你的项目具备多少“可验证性”,决定你能把多少工作交给 AI。这是我觉得最值得普通开发者借鉴的一点。
2.3 效率的本质:不是写得更快,而是“试错成本变低”
研发者为什么能在 AI 的加持下显得“效率爆炸”?普通开发者看到的是“AI 一分钟帮我写了 100 行代码”,但研发者心里清楚,效率的真正来源是可以用极低的成本去试错。
举个例子,以前你要把一个模块从 A 架构迁移到 B 架构,光心理建设就得做很久:要读多少代码、改多少依赖、出多少 bug,想想都头疼。但现在有了 Agent 型工具,你可以直接把任务丢给 Claude Code:“把 X 模块从 P2P 通信方式改成消息队列模式,保留现有接口不动,跑通所有测试。”它第一版改出来的东西大概率不能直接用,但那又怎样?你拿到的不再是一张白纸,而是一个可以改的基础版本。你基于这个版本去修改、去指正,来回两三轮就落地了。
本质上,AI 把“从零到一”的成本压缩了,让人更愿意去尝试“如果改成另一种方案会怎样”的想法。这种“想法到验证”的链路一旦变短,开发者的探索欲和创新率就会显著提升。你不需要每次都憋大招后才行动,而是可以高频地抛出新方案,让 AI 帮你快速验证,再决定要不要继续深入。这种工作方式,是以前完全不可想象的。
3. AI 工具在他们的研发流程中扮演了什么角色
3.1 代码生成之外:设计探索的“草稿纸”
聊一个很多人没注意到的点:Cursor 和 Claude Code 的研发团队,除了用 AI 写代码,还会把 AI 当成一个设计探索的草稿纸。
Anthropic 的产品团队在设计 Claude Code 的交互方式时,曾经遇到过一个问题:命令行工具需要展示大量结构化信息(文件变化、测试结果、命令输出),但终端界面空间有限,怎么做才能既完整又不造成干扰?
如果按传统思路,团队可能要开几次设计评审会,画一堆原型图再测试。但他们没有这么做。他们把需求喂给 Claude,让它在极短时间内生成多种方案,包括配色方案、信息层级、折叠交互等。得到大方向后,再用这些 AI 生成的素材做内部投票,快速收敛,再在真实环境里调整细节。AI 在这里不是替你拍板的人,而是帮你把思考变成可视草稿的加速器——它让你“先看到”,你才能“再判断”。
在 Cursor 团队也有类似的工作方式。他们在规划新功能时,会直接把想法用 natural language 写在项目文档里,然后让 Cursor 把这段描述转化成技术方案的初稿,包括数据结构设计、接口定义、迁移路径等。这有点像让 AI 当了一个“随叫随到的架构师助理”。一个人或一个小团队能同时评估多个方案而不必熬夜做模型,这是 AI 带给研发流程最大的隐性收益。
如果你也想把这个思路用在自己的项目里,完全可以复制:别把 AI 只当成“帮你写整块代码”的工具,而是让它帮你做“功能的第一版骨架”“接口定义的草案”“代码重构前的效果预览”。不用指望它一次到位,它的价值在于让你在看到具体东西之后,能更快地说出“这里不对,应该那样改”。
3.2 文档与代码同步:AI 治好了“文档拖延症”
研发团队的文档问题,几乎是所有团队的通病。代码写得飞快,文档永远是“等我忙完这段再补”,然后就没有然后了。但在 Anysphere 和 Anthropic 这两个团队里,这种情况要轻得多,因为他们找到了一个很自然的解法:让 AI 在写代码的过程里顺手把文档生成出来。
这不是简单的“生成注释”,而是在代码合并之前,让 AI 基于 diff 内容生成变更日志、更新 README、补充架构决策记录(ADR)等。Cursor 团队内部的提交流程有一个约定:每一次 PR,除了代码本身,AI 还会自动生成一份变更说明,描述这个改动解决了什么问题、影响了哪些模块、有没有破坏性变化。这套做法让他们的文档质量常年保持在一个相当高的水平,而且几乎没有额外的维护成本。
我自己的实践是:在让 Claude Code 完成一个功能后,追加一句“更新 README 中关于该功能的说明”,它就能基于刚才的实现自动写入文档,甚至能把相关的配置示例也一并更新。以前我最抗拒的就是写文档,现在这件事被 AI 消化掉了大半,体验确实顺畅了不少。这个思路对任何正在使用 AI 编程工具的团队都适用,把一个 PR 的标准动作变成“代码 + 测试 + 文档”三件套,AI 完全有能力承担后两项。
3.3 测试覆盖的前置化:AI 倒逼出来的质量文化
不知道你有没有这种体验:项目的测试覆盖率越高,你用 AI 工具就越踏实。AI 生成的代码如果跑不过已有的测试,你一眼就能看出来;如果测试覆盖是空白的,AI 生成了一坨看起来“像样”但暗藏 bug 的代码,你也很难发现。
所以 Cursor 和 Claude Code 的研发团队在吃自己的狗粮时,有一个共同的底线:测试先行。Claude Code 内置了测试驱动开发的模式,它会在动手写实现代码之前,先尝试生成一个失败的测试用例,再根据测试去实现功能,直到测试变绿。这个过程看似是“规定动作”,但实际效果是把 AI 生成的代码从“不可验证的黑盒”变成了“可验证的白盒”。
Cursor 团队则把测试覆盖率和代码合并绑定在一起。他们的 PR 合并检查中,如果新增代码覆盖不到的关键分支没有对应测试,AI 助手会在审查时直接标记出来,并生成一份缺少的测试用例清单。严格说,这个“测试守卫”让 AI 在团队里的使用上限直线上升,因为每一个 AI 生成的功能都有一个测试兜底,谁也不敢说“AI 写的代码质量不可控”——测试跑不过去,代码就是不合格。
我建议所有准备在项目里放开手脚用 AI 的人,先别急着让 AI 生成“生产级代码”,而是先把项目的测试基础打牢。没有测试兜底,你和 AI 之间就是“盲人摸象”,AI 生成的错误代码会像定时炸弹一样埋在代码库里,直到某天上线时轰然爆炸。反过来,一旦测试铺好了,AI 反而成了可以放心使用的“新员工”,因为一切以测试结果说话。
3.4 Agent 多任务并行的实战:AI 不再“一次只干一件事”
我刚接触 Claude Code 时,最大的惊喜其实是它能把一个大的需求拆解成多个子任务,像流水线一样并列推进。
举个例子,假设你要给一个 Web 应用增加“暗黑模式”功能。过去的做法是手动画 UI、改全局样式、调整组件颜色、更新 localStorage 配置,最后跑一遍响应式测试。现在你把这些需求直接丢给 Claude Code,它能:
- 先扫描整个项目,识别出现有样式的实现方式。
- 生成一份改造清单,包括需要改的文件和潜在影响面。
- 再分头完成 HTML 结构调整、CSS 变量定义、JS 逻辑切换。
- 最后启动本地开发服务器,截图或者跑测试来验证。
研发团队在内部开发 Claude Code 时,为了测试它的任务拆解能力,会刻意把一些“表面上看起来很简单,实际上模块耦合度很高”的任务丢给它。比如“更新数据库表结构并同步修改所有相关的 ORM 映射、API 接口和前端展示”,这种任务如果是人来做,至少得在脑子里维护一张很大的关联图,但 AI Agent 可以自行去“读文件 -> 改文件 -> 跑测试”的循环,一步不落直到全部完成。
当然,多任务并行对 AI 的上下文窗口和错误恢复能力要求很高。Claude Code 在某个子任务卡住的时候,会调用外部工具“想一想”再继续,而不是直接中断退给用户。这种设计就是从研发者自己的开发体验中沉淀下来的:“好的 AI Agent 不能一遇到问题就撂挑子,它会自己尝试修复错误、检查环境、重试失败的步骤。只有链式失败时,才需要人来介入。”
对我而言,Agent 多任务并行不仅是“能做很多事”,更关键的是它改变了我的“任务粒度”。以前我只会把 30 分钟以上的工作交给 AI,现在 5 分钟的小任务我也可以随手丢过去,因为它拆解和恢复的能力足够稳定,不需要我持续盯着。你不是在把“大任务”交给 AI,而是在把“一类原本需要人重复操作的任务”整体转移给 AI。这个视角的转变,价值很大。
4. 研发者口中的“高效用 AI”实操方法论
4.1 问题重构:提示词的本质是“上下文工程”
说到“用 AI”,很多人的反应是“写 prompt”。但研发者对这件事的理解,显然比普通使用者深一个层次。他们不把这叫“写提示词”,而叫“上下文工程”。
这个区别非常重要。提示词关注的是“我怎么把话说清楚”,上下文工程关注的是“我要给模型提供哪些信息,它才能产出高质量结果”。两者差异巨大。举个通俗的例子:你问别人“这个 bug 怎么修”,对方只能给你一个泛泛的排查方向;但你要是给足信息——“这个 bug 在哪个函数里、报什么错、最近改了什么代码、你认为可能是哪里的问题”,对方就能给你一个可以直接操作的具体方案。AI 识别上下文的质量,直接决定了输出的质量。
研发者是怎么做上下文工程的?一个实用技巧是:他们在让 AI 处理某个模块之前,会先给 AI 发送几条精准的文件路径或相关代码片段,而不是一上来就说“帮我改一下登录逻辑”。Claude Code 本身就支持 @ 文件引用,也支持直接把整个目录结构作为上下文传给模型,让它先“读”再“写”。Cursor 的 Tab 补全也有类似逻辑:它在你编码时自动抓取你打开的当前文件和相关代码中的符号定义,作为生成建议的上下文。
我的建议是,你给 AI 的上下文应该包含三块:
- 背景信息:项目是什么、技术栈是什么、代码在哪里。
- 目标定义:你要 AI 完成什么任务,验收标准是什么。
- 约束条件:不能改哪些文件,必须兼容哪些版本,性能和风格底线是什么。
你输入的上下文越“结构化”,AI 输出的质量就越稳定。这不是玄学,是模型注意力机制的必然结果。
4.2 代码审查的“人类增强”模式
研发团队用 AI 的方式,并不是简单地“AI 写代码 -> 人检查”,而是把 AI 当作代码审查流程中的一个“增强器”,在人审代码之前先完成一轮“机器预审”。
这轮预审包括但不限于:
- 检查代码风格和项目约定是否一致。
- 标记可能存在的空指针、未捕获异常、边界条件遗漏。
- 对照上下文说明,检查实现是否偏离了需求。
- 检查是否缺少必要的注释和单元测试。
做完预审后,AI 会生成一份“审查报告”,人再在这个报告的基础上进行二次审查。这大大减少了人审的认知负担:你不再需要从头到尾逐行比对代码,而是直接去看 AI 标记的“可疑点业是否真的有问题”,以及 AI 漏掉的“隐藏雷区”。这其实就是团队代码评审里的“先让机器跑一遍,再做人工核查”的增强模式。
我也把这套流程搬到了自己的项目里。每次 Claude Code 生成改动后,我不会直接去看大段 diff,而是先让 AI 自己评价一下“这次改动有哪些风险点”,再对照风险点逐一确认。有些时候 AI 标记的风险点我会直接通过,因为它已经写得足够好;有些时候我会发现 AI 标记之外的问题,再把这个 feedback 返回给它,它往往能快速修正。
这个环节最核心的收益是:人从“逐行读代码”变成了“有目标地验证风险”,效率提升不是一丁半点。
4.3 让 AI“说人话”:把终端输出变成可理解的解释
遇到一个晦涩难懂的系统报错,你会怎么做?传统的做法是复制粘贴错误信息去搜索引擎碰运气。而在 Cursor 和 Claude Code 的使用现场,研发者的习惯是:直接把报错信息丢给 AI,让它基于项目上下文解释“这个错误到底在说什么、可能是什么原因、建议怎么验证”。
Claude Code 的命令行界面本身设计得就很讲究,遇到错误时它会用通俗的语言解释错误原因,并且在必要的时候给出下一步操作建议。Cursor 团队在这方面的体验也做得非常好,他们会把 LLM 的“解释能力”嵌入到 IDE 的各个角落——比如鼠标悬停某个函数时,AI 不只是给你看类型签名,还会用自然语言解释这个函数的作用和调用场景。
把终端输出变成可理解的解释,这件事看起来只是“体验优化”,但在研发者的眼中,它其实是“有效降低上下文切换成本”。你不用再把思维从 IDE 切到浏览器去搜报错,你可以一直保持在代码的语境里,让 AI 顺着你的思路帮你排错。这种沉浸感对人的心流状态维持,帮助非常大。
我看到很多人用 AI 工具时有个误区:只会让它“写代码”,不会让它“解释现象”。实际上,解释和排错往往比写代码更有价值,因为那是人最耗神的环节。如果 AI 能帮你把从“看不懂”到“看懂了”的距离缩短一半,那比你多生成几百行代码更值钱。
4.4 小步快跑:让 AI 帮你把任务切成“5 分钟块”
最后聊聊研发者怎么安排 AI 执行任务的节奏。一个很有意思的观察是:他们不习惯把整个产品功能一次性丢给 AI,而是把任务切得非常细,让 AI 在“五分钟块”的粒度内完成一件小事。
比如给前端加一个“重置筛选”的按钮,普通用法可能是直接说清楚需求,让 Cursor 生成整套改动。但研发者的习惯是拆成多轮对话:
- 第一轮:“在当前筛选栏组件里添加一个重置按钮,位置放在侧边,样式跟现有的底部按钮保持一致。”
- 第二轮:“给重置按钮绑定点击事件,触发筛选条件清空并重新请求列表数据。”
- 第三轮:“补充这个按钮的 Unit Test,覆盖正常点击和空数据两种情况。”
为什么要这样切?因为每一轮的任务越小,AI 的上下文越聚焦,出错率越低,而且每一轮的结果都可以被快速验证。这个习惯本质上是把“持续集成”的思想用在了 AI 交互上:小步提交、频繁验证、快速反馈,而不是一次憋个大招然后翻车再慢慢修。
我试过两种方式,体验差距非常明显。一次性丢给 AI 一个大而全的任务,它确实能生成出来,但容易出现“改 A 破坏 B”的问题,排查起来反而更费时间。切分成小任务后,每一步都像给 AI 上了一道“紧箍咒”,它的输出可控性大幅提升。就算某个环节出了偏差,也能在几秒内定位到是哪一轮对话的问题,重置成本也很低。
5. 实操中常见的问题与避坑技巧
5.1 问题一:AI 生成了“看起来对但实际错”的代码
这是使用 AI 编程工具时最常见、也最危险的坑。AI 生成一段代码,语法完全正确、跑起来也不报错,但逻辑上有缺陷,比如边界条件没处理、并发场景没考虑、数据库连接泄漏等。这种错误在代码审查环节很难发现,往往会在生产环境里爆雷。
排查思路其实不复杂:不要让 AI 给你“最终代码”,要让 AI 给你“能验证的代码”。具体做法是,在任务描述里强制要求 AI 同时生成对应的单元测试或执行用例,你拿到代码后在本地跑一遍,观察是否有异常输出。如果测试覆盖不充分,就明确要求 AI 补充测试用例,再基于测试结果去判断代码是否正确。
另外,我通常会检查 AI 生成的代码里,有没有“为了通过测试而写的硬编码”。这是一个比较隐蔽的问题,在生成测试时,AI 可能会把从真实业务逻辑中提取的常量直接写死在测试数据里,导致测试过了但实际生产环境运行时逻辑错误。你可以留意一下 AI 是否在代码里使用了与实际业务无关的魔法值,有的话及时指出来,让它重新生成。
5.2 问题二:上下文超出模型能力边界,AI 开始“胡编乱造”
很多人碰到过这样的情况:项目代码量很大,AI 刚开始还能理解,但当你让它涉及多个跨模块改动时,它就开始“一本正经地胡说八道”了,声称自己改了某个文件,但实际上那个文件根本没有被修改,甚至给出的代码在项目里根本不存在。
这个问题的根本原因是上下文的溢出和注意力分散。AI 处理大量代码时,很难持续追踪每一个变量的真实状态,尤其是在多轮对话后,早期的一些信息可能会被遗忘。避坑的方法也很简单:分阶段处理。不要试图在同一个对话里让 AI 完成整个系统级的重构,拆成多个小任务执行,每个阶段结束时让 AI 总结当前的状态和改动内容,作为下一轮的上下文输入。
还有一个小技巧:你可以让 AI 在回答后附上“这次改动涉及的文件清单”,然后逐一检查这些文件是否存在、改动是否正确。一旦发现 AI 引用了不存在的文件,或者改动清单和实际状态不符,就要警惕它是否已经超出了能力边界,及时回退到更小的任务粒度重新开始。
5.3 问题三:AI 生成的代码风格和项目不一致
AI 是基于海量开源代码训练的,所以它默认生成的代码风格可能完全不是你项目的风格。比如你的项目用的是 TypeScript 严格模式,AI 却生成了很多隐式 any;或者你的项目里统一使用函数式组件,AI 却给你写了一大段 class 组件。这种风格不一致在单独看每一段代码时问题不大,但放到整个项目里就像一块块不同颜色的瓷砖拼贴在一起,维护成本很高。
解决办法有两个:一是在项目根目录放 AGENTS.md(或 CLAUDE.md)说明文件,把项目的编码规范、技术栈约定、目录结构、命名规则都写清楚,AI 会在每次对话前自动读取这些说明,作为风格约束。二是在任务描述里明确声明风格偏好,比如“使用函数式组件和 hooks,禁止使用 class 组件”“所有类型必须显式声明”“严格遵循项目的 ESLint 规则”。
我在实际使用中发现,对于 Cursor 而言,AGENTS.md 的优先级非常高,项目里的规则说明文件几乎可以当作全局约束来用。Claude Code 也支持类似的能力,通过 CLAUDE.md 来定义项目的专属规范。一旦用好了,AI 生成的代码会像“浸染”过你的项目风格一样,不会让你觉得是外来的东西。
5.4 问题四:AI 使用时没有“安全网”,直接操作生产环境
还有一个大坑必须单独提醒:使用 Agent 型工具时,一定要给 AI 划清“能做什么、不能做什么”的边界,尤其是在执行权限上。
Claude Code 命令行工具是有实际执行能力的,它可以运行 Shell 命令、修改文件、甚至调用某些外部工具。如果不加约束,AI 可能会在你毫无防备的情况下执行rm、数据库清空这类破坏性操作。这就像你把钥匙交给一个实习生,却没有告诉他“这扇门不能开”,等出事了才发现已经来不及了。
我强烈建议在让 AI 执行任何操作前,先检查工具的权限配置。比如 Claude Code 有设置“允许的命令列表”能力,你可以在配置里把对生产环境的操作权限限制掉,只允许它操作开发环境。Cursor 虽然没有那么强的 Agent 能力,但在接受 AI 建议时也要养成看 diff 的习惯,确保每个改动都在你预期范围内。
顺便提一嘴,研发者内部是有一套“最小权限原则”的:AI 能只读的时候就不给写权限,能在沙箱里试的时候就不让它碰真实环境。别嫌麻烦,这个“安全网”能救你一命。
5.5 常见问题速查表
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| AI 生成的代码风格和项目不一致 | 缺乏项目规范上下文 | 在项目根目录添加 AGENTS.md / CLAUDE.md,写明编码规范 |
| AI 声称修改了文件但实际没有 | 上下文超出模型能力边界 | 拆分为更小的子任务,分阶段完成 |
| 代码能跑但逻辑有 bug | 测试覆盖不充分 | 要求 AI 同时生成单元测试,并基于测试结果验证 |
| AI 执行破坏性命令 | 权限配置过宽 | 配置命令白名单,限制生产环境操作权限 |
| 多轮对话后 AI 遗忘早期上下文 | 上下文窗口被长对话占满 | 新开对话并携带必要的项目状态摘要 |
| AI 生成的代码总是报错 | 项目依赖或环境信息缺失 | 在上下文中补充项目启动方式和依赖安装步骤 |
6. 个人实践总结:研发者的方法能给我们什么启发
把前面这些内容消化完,你会发现做 AI 的团队和普通用户之间,差距其实不在于“会不会写 prompt”,而在于有没有建立一套清晰的“AI 工作流方法论”。
我把这套方法论概括成三个方面,可以直接“抄作业”到你自己的项目里:
一是分工明确。AI 适合做的是有明确验收标准、容错率高、反馈快的任务;人适合做的是定义需求、做高冲突决策、处理模糊问题。想清楚每一件事该交给谁,比任何提示词技巧都重要。
二是上下文先行。你不需要成为 ChatGPT 的“提示词工程师”,但你一定要会做“上下文工程”。给 AI 提供足够的项目背景、约束条件和验收标准,你会发现它的输出水平会有一个质的飞跃。
三是建立验证闭环。没有测试兜底,就别放开让 AI 生成代码。哪怕只是让 AI 顺手补几个单元测试,也能帮你挡住大量潜在的逻辑错误。一点点“安全网”的投入,能避免你在后期为 bug 付出几十倍的时间成本。
从更宏观的视角来看,Cursor 和 Claude Code 的研发者们并不认为 AI 会在短期内取代软件工程师。他们更相信,AI 会像一个不断升级的“基础设施”,把开发者从繁琐的执行细节里解放出来,让人能更专注于那些真正需要人的判断力、创造力和审美力的事情上。
我在项目里实践的这段时间,最大的感受不是“以后写代码可以躺平了”,而是“以后写代码的门槛变低了,但判断力的门槛变高了”。能用 AI 完成多少工作,取决于你有多清楚自己想要什么、你能多精准地描述目标、你能多严格地验收结果。
如果你正准备在团队里大规模引入 AI 编程工具,我的建议是不要一上来就追求“自动化率”,而是先在几个小而稳的项目模块上跑通“需求定义 -> 上下文准备 -> AI 生成 -> 测试验证 -> 人工审查”这个循环。等这个循环稳定了,再逐步扩大 AI 的权限和参与范围。你会和我一样发现,AI 真正提升的,不只是单次编码的速度,而是整个团队应对变化和探索新方向的能力。