第 6 章 · AI 协作 5 条黄金规则

0 阅读1分钟

本章你将学到

[

](github.com/jiji262/ai-…)

  • 🎯 与 AI 协作的 5 条黄金规则(可直接背)
  • 🎯 6 组坏 Prompt → 好 Prompt 对照(可照抄)
  • 🎯 AI 擅长什么、不擅长什么(2 列清单
  • 🎯 识别 AI "confabulation"(胡编)的 6 个信号
  • 🎯 60 分钟的开场 5 分钟 + 中段 45 分钟标准脚本

这是本课程最重要的一章。 评分标准告诉你面试官在打什么分;这一章告诉你 60 分钟里该怎样表现才能赚到那些分。

6.1 规则 1:自己主导逻辑

[

](github.com/jiji262/ai-…)

在碰 AI 面板之前,先把思路告诉面试官。如果你不能用两句话说清楚思路,你就还没准备好提问。

  • ❌ 差:(沉默。把题目粘给 AI。复制回复。)

  • ✅ 好:

    "这是一个带更丰富状态的 BFS。状态是 (row, col, keys_bitmask),因为每拿一把钥匙都会改变能过哪些门。我先写 BFS 骨架,然后加钥匙逻辑。"

评分奖励工程判断,而判断发生在前 30 秒。

📌 第 5 分钟自检:问自己

"我能不用 AI、慢一点自己写出来吗?"

答不能 —— 你就没法评估 AI 给你的东西。暂停,重读题。

6.2 规则 2:细粒度提问

[

](github.com/jiji262/ai-…)

好提问命中一件具体的事。差提问描述整个问题。

6 组对照(可照抄的模板)

[

](github.com/jiji262/ai-…)

对照 1 · 要一个算法

[

](github.com/jiji262/ai-…)

  • ❌ "这道迷宫题最好的解法是什么?"
  • ✅ "我用 BFS。状态 (row, col, keys)。写一个 bfs(grid, start, target) 返回最短步数或 -1。用 deque 和 (row, col, keys) 的 visited 集合。先只要 baseline,不要闸门/传送门。"

对照 2 · 让它修 Bug

[

](github.com/jiji262/ai-…)

  • ❌ "测试失败,请修 Bug。"
  • ✅ "测试 test_directional_gate 失败,报 expected 7 got 9。我怀疑 Bug 在 can_move_through_gate(current, next) —— < 闸门比较可能 currentnext 搞反了。能审查那个函数吗?"

对照 3 · 让它重构

[

](github.com/jiji262/ai-…)

  • ❌ "把这段代码整理一下。"
  • ✅ "process_cell 函数 50 行。请把闸门检查抽成 is_gate_passable(cell, direction) 返回 bool,把钥匙收集抽成 collect_keys(cell, keys_state) 返回新钥匙状态。BFS 主循环不变。"

对照 4 · 要优化

[

](github.com/jiji262/ai-…)

  • ❌ "让它更快。"
  • ✅ "当前 O(H × W × 2^K),K 最多 10;阶段 3 K 最多 20。两个思路:(a) keys_mask == all_keys_mask 提前终止;(b) 预计算钥匙之间可达性。哪个更好,为什么?"

对照 5 · 写测试

[

](github.com/jiji262/ai-…)

  • ❌ "写测试。"
  • ✅ "写 3 个 unittest:(1) 空网格返回 -1;(2) 5×5 无钥匙清晰路径,返回曼哈顿距离;(3) 必须先拿 3 把钥匙才能出去。每个用 ASCII 字符串描述网格,在辅助函数里解析。"

对照 6 · 卡住时

[

](github.com/jiji262/ai-…)

  • ❌ "我不知道怎么办。"
  • ✅ "我用 (row, col, keys) 状态实现了 BFS。小网格对,50×50 超时。不确定瓶颈是状态爆炸(2^K)还是 Python 元组哈希开销。重构前,能加计时插桩让我确认时间花哪了吗?"

模式:好 Prompt 永远包含「你知道的 + 你怀疑的 + 你想要的具体输出」。

📌 发送前自检:问

"我期望什么具体输出?"

如果一句话描述不出来,重写 Prompt。

6.3 规则 3:小块验证后才粘贴

[

](github.com/jiji262/ai-…)

每条 AI 回复是不可信输入。粘进编辑器前:

  1. 逐行读
  2. 重命名:AI 的 tmp 改成你的 current_node
  3. 删注释:AI 的投机性注释不要
  4. 写测试:能抓 AI 错误的一个小测试

AI 给你 30 行代码你一次性集成 → 你放弃了 30 个发现错误的机会。

对比

[

](github.com/jiji262/ai-…)

  • ❌ 差:AI 产出 40 行 BFS,你粘贴、保存、测试通过、继续。
  • ✅ 好:AI 产出 40 行 BFS,你读一遍,发现 visited 没含 keys bitmask,说出声 "这在多钥匙时不对",改、粘、保、测、过。

6.4 规则 4:AI 是初级 pair,不是神谕

[

](github.com/jiji262/ai-…)

AI 既有用也会错。心态:

  • 质疑建议:"这里为什么用堆而不是 deque?"
  • 带理由拒绝:"不,这不保留顺序;改 X。"
  • 给它缺失上下文:"看 maze.pyMaze 类 —— 用同一个 Direction 枚举。"
  • 让它做枯燥的事:样板、测试脚手架、字典转 JSON、堆原语。
  • 不让它决定算法:那是你的工作。

Meta 内部说法:

"表现好的候选人用自己的思路引导 AI,不是请 AI 给整体方案。"

6.5 规则 5:流水线化工作

[

](github.com/jiji262/ai-…)

AI 生成时(5-15 秒),不要闲着。做:

  • 回顾之前的 AI 输出(还没重读的 40 行)
  • 向面试官叙述下一步
  • 写下一个测试用例
  • 查看文件树 —— 有什么辅助函数可复用?

60 分钟里这能省下 5-10 分钟死等时间。

6.6 AI 擅长什么 vs 不擅长什么

[

](github.com/jiji262/ai-…)

✅ AI 擅长

❌ AI 不擅长

写已知数据结构样板(字典树、堆、LRU)

找到你这道题的核心算法洞察

等价转换(循环转递归、Python 转 JS)

调试它没完整看过的你的代码

解释某个函数做什么

可靠地抓你的 off-by-one

生成测试脚手架

推理你数据模型特有的边缘情况

计算已知算法 Big-O

发现状态定义里的细微正确性问题

写地道语言构造

理解你大声说了但没写下来的约束

机械重构(提取、重命名)

在 tradeoff 之间做判断

这张表告诉你什么该委派、什么不该委派

6.7 如何识别 AI 在"胡编"(Confabulation)

[

](github.com/jiji262/ai-…)

6 个信号:

  1. 引用你代码里不存在的函数或变量
  2. 复杂度分析的项与你的状态对不上
  3. "修复"改了和失败测试无关的代码
  4. 编造起始代码里没有的 import
  5. 断言"这应该能跑"不解释为什么
  6. 回复比需要的长 —— 啰嗦意味着不确定

看到任一种,停下、重读,要么重写 Prompt,要么自己写。

6.8 开场 5 分钟标准脚本

[

](github.com/jiji262/ai-…)

可复用脚本(照抄):

"让我花一会儿读题。"

(30 秒静读)

"好,这是带方向符号的迷宫,找从 S 到 E 的最短路径。"

(大声复述)

"一个问题 —— <> 可以是起点或终点,还是只能穿过?"

(澄清)

"看一下起始代码。"

(打开每个文件)

"好。maze.py 有带 Bug 的 BFS。tests.py 测路径长度。utils.py 有方向元组。我觉得 can_move 有边界 off-by-one。先跑测试确认。"

(假设)

(跑测试,确认)

"就是这里 —— <= 应该是 <。改一下。"

(叙述修复)

5 分钟开场,4 个维度都拿分,没写一行 AI 代码

6.9 中段 45 分钟节奏循环

[

](github.com/jiji262/ai-…)

好的阶段 2 是重复的 5 分钟循环

  1. 叙述下一块要写的(30 秒)
  2. 提问 AI 用细粒度请求(30 秒)
  3. 回复(30-60 秒)
  4. 编辑 AI 代码到文件,重命名、清理(1 分钟)
  5. 一个测试跑这段(1 分钟)
  6. 运行并观察(30 秒)
  7. 叙述结果(30 秒)

循环 6-8 次。你会代码干净、全程叙述、持续测试地完成阶段 2

6.10 心智模型 · 你是机长

[

](github.com/jiji262/ai-…)

你是机长。AI 是非常快的副驾驶,有超人手册但无判断力。

你决定去哪里。你决定检查什么。你读每一个仪表。

副驾驶打字更快,但你让他往山上飞他就往山上飞。

6.11 另一个心智模型 · 你是资深评审

[

](github.com/jiji262/ai-…)

想象 AI 每天写 100 个 PR,你是资深评审。

  • 不读就 merge 吗?当然不会。
  • 不读就拒绝吗?当然不会。
  • 你读、问、提改进、偶尔带理由拒绝。

每一条 AI 回复 = 一个等你评审的 PR

6.12 本章小结

[

](github.com/jiji262/ai-…)

  1. 5 条黄金规则:主导 / 细粒度 / 小验证 / 初级 pair / 流水线
  2. 6 组 Prompt 对照是可照抄的模板 —— 背它们
  3. AI 擅长清晰任务,不擅长判断性任务 —— 分清楚
  4. 识别 confabulation 有 6 个信号
  5. 开场 5 分钟 + 中段 45 分钟 节奏有标准脚本

6.13 思考题

[

](github.com/jiji262/ai-…)

  1. 把 5 条规则按你个人的"最容易忘"排序。你最需要盯的是哪条?
  2. 从 6 组 Prompt 对照里挑你最容易写差版本的那组。重写 3 个你的变体。
  3. 写一个你自己的"开场 5 分钟脚本" —— 针对一道你刚刷过的题。