周复盘:把 AI 当实习生,还是当工程搭档?

开篇

这两周,我们已经做了不少事情:

  • 盘点自己的开发工作流。
  • 搭建 AI 编程工作台。
  • 学习如何写高质量 Prompt。
  • 让 AI 补全需求、拆解任务和先写方案。
  • 用 AI 导览陌生项目。
  • 审查 AI 生成的代码。

看起来,我们已经掌握了很多技巧。

但技巧越多,越容易出现一个新的问题:

text 复制代码
我到底应该把 AI 当成什么?

有人把 AI 当作一个"高级搜索框"。

遇到问题就问一句,得到答案就结束。

有人把 AI 当作"自动写代码工具"。

需求粘贴进去,代码复制出来,出了问题再继续修补。

还有人把 AI 当作一名"不会犯错的高级工程师"。

只要模型给出了完整方案,就默认它已经理解了项目和业务。

我更愿意把这几种使用方式概括成两个比喻:

text 复制代码
把 AI 当实习生
        VS
把 AI 当工程搭档

这两个比喻不是为了给 AI 分级,而是为了帮助我们看清自己的协作方式。

如果你把 AI 当实习生,重点是:

text 复制代码
给任务
  ↓
给上下文
  ↓
检查结果
  ↓
指出问题
  ↓
让它继续修改

如果你把 AI 当工程搭档,重点则会进一步升级:

text 复制代码
共同澄清目标
  ↓
共同拆解问题
  ↓
共同比较方案
  ↓
共同验证结果
  ↓
共同沉淀知识

今天做一次阶段复盘,看看这两种方式到底有什么区别,以及中级开发者应该怎样逐步建立更成熟的 AI 协作模式。

本文不会讨论什么

本文不是要给 AI 赋予人格,也不是要把开发者和模型放在完全平等的位置上。

本文不会:

  • 认为 AI 可以替代开发者承担最终责任。
  • 建议把所有任务都交给 AI 处理。
  • 认为只要 Prompt 足够好,就不需要测试和评审。
  • 把"工程搭档"理解成无条件相信 AI 的输出。
  • 讨论某个具体模型的排名或工具选择。

本文只讨论一个工程问题:

我们应该如何组织和管理与 AI 的协作,才能让它从一次性工具变成稳定的生产力系统?

一、把 AI 当实习生,通常是什么样

"实习生"这个比喻不代表能力低,而是强调:

  • 它需要明确任务。
  • 它缺少完整上下文。
  • 它可能误解隐含规则。
  • 它的结果必须经过检查。
  • 它需要根据反馈迭代。

很多 AI 编程场景,其实都适合先采用这种工作方式。

1. 任务必须足够具体

不要只说:

text 复制代码
帮我实现用户管理。

可以改成:

text 复制代码
请在现有用户模块中新增"修改手机号"能力。

范围:
- 只允许当前用户修改自己的手机号。
- 修改前需要验证旧手机号。
- 修改成功后记录安全日志。

不在范围内:
- 不修改登录流程。
- 不修改找回密码流程。
- 不新增短信供应商。

请先输出实现方案和待确认问题,暂时不要写代码。

任务越清楚,AI 越容易产出可检查的结果。

2. 上下文不能只靠猜

实习生不知道项目约定时,需要我们主动提供信息:

text 复制代码
项目使用 Java + Spring Boot。
业务异常统一使用 DomainException。
用户数据由 UserService 管理。
手机号修改需要经过 AuthService 验证。
修改后需要补充 Service 层单元测试。

如果上下文不完整,就应该允许 AI 先提问,而不是要求它直接补全。

3. 结果必须有验收标准

一个好的任务交付,不是"代码看起来完整",而是能够回答:

  • 哪些场景应该成功?
  • 哪些场景应该失败?
  • 失败后数据是否保持不变?
  • 是否需要日志、通知或审计?
  • 如何通过测试证明实现正确?

把这些标准写清楚,AI 才知道什么叫完成。

二、把 AI 当实习生的优点和局限

优点:边界清晰,风险可控

在这种模式下,开发者始终掌握:

  • 任务范围。
  • 技术方案。
  • 修改权限。
  • 验收标准。
  • 最终合并决定。

适合以下场景:

  • 第一次接触 AI 编程。
  • 修改生产代码。
  • 处理高风险业务。
  • 项目上下文还没有整理好。
  • 团队需要逐步建立信任。

局限:容易陷入"你写我改"

如果每轮协作都只是:

text 复制代码
你写代码
  ↓
我发现问题
  ↓
你再修代码
  ↓
我继续发现问题

AI 就会变成一个被动执行器。

它可能完成很多局部动作,但无法帮助你发现更高层次的问题:

  • 当前任务是否值得做?
  • 有没有更小的修改范围?
  • 方案是否会增加未来维护成本?
  • 这个问题是不是应该通过流程或数据约束解决?

所以,"实习生模式"适合控制风险,但不应该是协作的终点。

三、把 AI 当工程搭档,意味着什么

工程搭档不是"让 AI 自己做决定"。

它意味着我们把 AI 提前放进工程思考过程,而不是只在最后让它生成代码。

1. 从交付任务升级为共同理解问题

可以先这样开始:

text 复制代码
这是当前需求和项目上下文。

请先不要给实现代码。
请帮助我确认:
1. 这个问题真正要解决的是什么?
2. 当前描述中有哪些隐含假设?
3. 可能影响哪些模块和用户行为?
4. 有哪些不做的事情?
5. 怎样定义本次任务完成?

这一步不是让 AI 替我们做产品决策,而是借助它扩大问题观察范围。

2. 从"给出答案"升级为"比较选择"

当任务存在多个方案时,不要直接问:

text 复制代码
哪个方案最好?

可以要求它展示取舍:

text 复制代码
请比较以下三个方案:
1. 在现有 Service 中增加逻辑。
2. 新增独立领域服务。
3. 通过异步事件处理。

请从以下角度分析:
- 实现复杂度
- 对现有代码的影响
- 数据一致性
- 性能
- 测试难度
- 后续扩展成本

最后给出推荐方案,但说明推荐依赖哪些前提。

工程判断的价值不只是选择一个答案,而是知道这个答案在什么前提下成立。

3. 从"写完代码"升级为"共同验证"

搭档关系必须包含反馈闭环:

text 复制代码
方案
  ↓
实现
  ↓
测试
  ↓
运行结果
  ↓
问题反馈
  ↓
修复和复盘

没有真实测试、日志和运行结果,AI 只能根据静态上下文推测。

因此可以把结果反馈给它:

text 复制代码
这是测试输出和运行日志。

请不要直接修改代码。
请先判断:
1. 失败发生在哪个阶段?
2. 当前现象与预期有什么差异?
3. 哪些原因可以从日志直接确认?
4. 哪些只是可能原因?
5. 下一步最小验证动作是什么?

这比直接说"帮我修复这个报错"更接近工程排障。

四、两种模式的核心区别

对比维度 AI 实习生 AI 工程搭档
参与时间 需求明确后 需求澄清阶段就参与
主要任务 执行具体工作 共同分析和执行
上下文方式 开发者主动提供 AI 协助发现上下文缺口
输出重点 代码和局部结果 方案、取舍、代码和验证
反馈方式 指出错误并修改 用证据共同定位问题
风险控制 依靠人工检查 依靠流程、证据和检查
知识沉淀 结果用完即丢 形成 Prompt、文档和检查卡
最终责任 开发者承担 仍由开发者承担

需要特别强调:

工程搭档模式不是减少人工审查,而是把人工判断前移,并且让 AI 参与更多有价值的思考环节。

五、中级开发者最适合采用的协作分层

我不建议一开始就把所有决策交给 AI。

更稳妥的方式,是根据任务风险分层。

第一层:执行型任务

AI 可以直接协助完成:

  • 生成样板代码。
  • 补充字段映射。
  • 编写简单查询。
  • 生成基础测试。
  • 整理注释和文档。
  • 做格式化和局部重命名。

这类任务的共同特点是:

  • 规则明确。
  • 修改范围小。
  • 结果容易验证。
  • 失败成本较低。

第二层:分析型任务

AI 可以参与:

  • 需求拆解。
  • 代码库导览。
  • 调用链分析。
  • 方案比较。
  • 风险识别。
  • 测试矩阵设计。

但输出必须经过开发者确认。

第三层:决策型任务

以下事项不应该直接交给 AI 决定:

  • 核心业务规则。
  • 权限模型。
  • 数据迁移策略。
  • 资金和支付流程。
  • 安全边界。
  • 生产事故处置。
  • 跨团队架构取舍。

AI 可以提供选项和风险分析,但最终决策需要由有业务和系统上下文的人完成。

可以用这张表快速判断:

任务类型 AI 可以做什么 开发者必须负责什么
执行型 生成和修改 验证范围和结果
分析型 提问、归纳和比较 确认事实和取舍
决策型 提供备选方案和风险 做最终判断和承担责任

六、真正高效的 AI 协作,不是少说话

很多人以为 AI 提效就是减少输入。

实际上,真正高效的协作往往需要更多高质量交流:

text 复制代码
说明目标
  ↓
补充上下文
  ↓
确认理解
  ↓
限定范围
  ↓
请求最小实现
  ↓
执行验证
  ↓
反馈证据

表面上看,Prompt 变长了。

但总耗时通常会下降,因为它减少了:

  • 反复返工。
  • 错误方向的代码。
  • 跨模块误修改。
  • 测试阶段才发现的需求遗漏。
  • 线上才暴露的边界问题。

可以把一次任务的总成本理解为:

text 复制代码
总成本
=
前期澄清成本
+
实现成本
+
返工成本
+
验证成本
+
事故成本

适当增加前期澄清,往往可以降低后面的返工和事故成本。

七、我会固定保留的 7 条 AI 协作原则

原则 1:先让 AI 复述,再让它实现

如果目标都没有对齐,代码越多,返工越多。

原则 2:先给最小上下文,再按需补充

不要一开始把整个仓库丢给 AI,也不要只给一句需求。

原则 3:事实、推测和建议必须分开

AI 的"应该""通常""可能"都需要进一步验证。

原则 4:复杂任务先要方案,简单任务至少要范围

不是所有修改都需要完整设计,但所有修改都应该有边界。

原则 5:让 AI 提前暴露风险,而不是等报错后再修

边界、权限、并发、异常和测试都应该在代码生成前被讨论。

原则 6:用测试和运行结果反馈,不用情绪描述反馈

"还是不对"不如提供输入、日志、堆栈和实际结果。

原则 7:把有效对话沉淀成团队资产

好的 Prompt、检查清单、调用链和排障流程,不应该只停留在一次聊天里。

八、从"会用 AI"升级到"会管理 AI 协作"

前 14 天的学习重点,不是记住多少 Prompt,而是建立一套稳定的协作节奏。

我会把它整理成 5 个步骤:

第一步:定义目标

text 复制代码
这次任务要改变什么?
用户能观察到什么结果?
哪些事情明确不做?

第二步:准备上下文

text 复制代码
相关代码在哪里?
项目约定是什么?
已有测试和限制是什么?

第三步:设计交互

text 复制代码
这次需要 AI 执行、分析,还是比较方案?
需要一次完成,还是分阶段完成?

第四步:建立验证

text 复制代码
什么现象说明完成?
哪些边界和风险必须覆盖?
用什么测试、日志或运行结果证明?

第五步:沉淀资产

text 复制代码
这次协作中,哪些 Prompt、检查项和结论可以复用?

当这 5 步逐渐固定下来,AI 才真正进入你的开发系统。

九、一个可以直接复用的协作启动 Prompt

以后接到一个中等复杂度的开发任务,我会先使用下面这段 Prompt:

text 复制代码
请作为我的工程协作助手,协助我完成下面的开发任务。

任务:
<填写需求>

项目上下文:
<填写技术栈、相关模块、已有约定和限制>

请先不要写代码,先完成以下工作:
1. 用自己的话复述任务目标。
2. 列出本次范围和明确不在范围内的内容。
3. 区分已知事实、推测和待确认项。
4. 指出需要阅读的文件和项目上下文。
5. 列出可能的边界、异常、安全和并发风险。
6. 给出可选实现方案及取舍。
7. 设计验收标准和测试矩阵。

输出要求:
- 不确定的内容单独列出。
- 不要把通用最佳实践冒充项目事实。
- 没有得到确认前,不生成完整代码。
- 最后给出进入实现阶段前的最小确认清单。

这段 Prompt 的作用不是让 AI 直接完成全部工作,而是建立一次有边界的工程协作。

十、我的第二周复盘检查卡

text 复制代码
[ ] 我没有把 AI 当成无条件正确的高级工程师
[ ] 我能明确告诉 AI 当前任务的目标和范围
[ ] 我会主动提供项目约定和验收标准
[ ] 我允许 AI 先提问,而不是强迫它立即写代码
[ ] 我能区分执行型、分析型和决策型任务
[ ] 我会要求 AI 说明依据、风险和触发条件
[ ] 我使用测试、日志和运行结果进行反馈
[ ] 我没有把最终责任交给 AI
[ ] 我把有效 Prompt 和检查清单保存下来
[ ] 我正在形成一套可重复的 AI 协作流程

如果只能做到"让 AI 写代码",说明还停留在工具使用阶段。

如果已经能够让 AI 参与澄清、分析、验证和复盘,才开始进入工程协作阶段。

十一、总结

把 AI 当实习生,强调的是:

text 复制代码
明确任务
提供上下文
检查结果
持续反馈

把 AI 当工程搭档,强调的是:

text 复制代码
共同澄清问题
共同分析方案
共同识别风险
共同验证结果
共同沉淀方法

对于中级开发者来说,最稳妥的选择不是二选一,而是根据任务复杂度进行切换:

  1. 简单、局部、易验证的任务,可以让 AI 承担更多执行工作。
  2. 中等复杂度任务,让 AI 参与分析、方案和测试设计。
  3. 高风险和决策型任务,让 AI 提供辅助判断,但由开发者掌握最终决定。

请记住:

AI 编程的进阶,不是让 AI 替你做更多决定,而是让你更有能力管理目标、上下文、风险和验证。

下一篇文章,我们进入一个更贴近真实生产环境的场景:

用 AI 调试一个线上问题:从报错到根因定位。

如果这篇文章对你有帮助,欢迎点赞、收藏、关注专栏。

也欢迎在评论区留言:你现在更常把 AI 当实习生,还是已经开始把它当工程搭档?


✍坚持原创,求关注,点赞,收藏

相关推荐
奈落241 小时前
独立的AI编程助手正在消失?从文心快码并入百度搭子、Qwen Code转向CLI,看编程工具正被吸收进更大的智能体平台
百度·agent·ai编程·ai 编程
有毒的教程1 小时前
Comfy Desktop下载安装教程-ComfyUI官方桌面版文生图模型配置与图像生成完整图文步骤
ai编程
寒狼GPT2 小时前
Codex 5小时额度是固定重置还是滚动恢复?为什么每个人Reset时间不一样
chatgpt·程序员·ai编程
libokaifa2 小时前
Claude Code Mods:给终端装一块自己的仪表盘
ai编程
空 白II2 小时前
10.11 大语言模型研究简报:OpenAI 公布 AI 数学研究新进展
人工智能·语言模型·openai
用户721746588262 小时前
默认校验只覆盖 3.18%:bl dataset validate 抽样窗与 capability 三种返回态的字段级拆解
llm·agent·ai编程
Csvn2 小时前
延迟别再看平均值了:AI 应用指标与告警实战(O03)
人工智能·aigc·agent
2603_969734503 小时前
2026最新7款企业AI编程工具深度对比实测
ai编程
程序员大狐狸3 小时前
Ultra X7 358H 笔记本电脑,寻找本地用于编码的最强大模型,实测 21.0 tok/s,上下文 256K
llm·ai编程
小虎AI生活3 小时前
三天11万星的逆天开源REA,逆向分析一切,软件开发的门槛被打到了零,最该慌的为什么不是大厂?
aigc·ai编程