第 5 章 · 第 31 讲 · 15:40
pm31-m5-播客.mp3(时长见集页)pm31-m5-播客.srt本集改编自小山学堂《学 AI 产品,从入门到精通》,音频为二次演绎配音版。音频讲主线与判断,文字稿给结构、清单和可复用的规则模板。
很多人和 AI 协作时反复遇到同一类问题,每次都靠临场叮嘱解决,聊完就忘,下次再犯。这一集给出一套把教训沉淀成规则的方法:环境事实怎么写、破坏性操作怎么设闸、长对话怎么对抗遗忘、文案怎么摆脱机器腔,以及四步协作流程怎么落地。
核心观点:「注意质量」执行不了,「删除代码前必须显式声明」才执行得了。 把模糊期望翻译成具体动作,本来就是产品经理的核心能力——只不过这一次的交付对象不是人,是一段规则。
这一课的来源只有一个:每发现一次 AI 反复犯的错误,就加一条规则。规则的价值不在于多,而在于每条背后都对应一次真实的翻车。照搬十四章,不如精选五章。规则和代码一样,没人维护就会腐烂。
| 层次 | 关键概念 | 它在回答什么 | 你该追问的问题 |
|---|---|---|---|
| 环境层 | 环境事实写进 Rule、技术栈锁定 | 它每轮该「默认知道」什么 | 模型 / 超时 / 代理 / 是否流式写死了吗 |
| 细节层 | isComposing、数据格式三分法、图标规范 | 哪些坑不写就一定踩 | 这三类的禁令写了吗 |
| 安全层 | 备份 / 回退 / 审查三道闸 | 不可逆操作怎么设防 | 三道闸是否都设在执行之前 |
| 抗遗忘层 | 锚定复述、并行编辑前重读 | 长对话怎么保住约定 | 超过阈值有没有强制复述 |
| 表达层 | 违禁模式清单、按需引用 | 怎么摆脱机器腔 | 清单可搜索吗,规则按需加载了吗 |
| 协作层 | 复述 → PRD → 确认 → 编码 | 断点设在哪 | 断点是在动手之前还是之后 |
读法两条。第一,六层共用同一个底层:把模糊期望变成可执行的具体动作。第二,安全层与协作层是同一个原则的两种用法——断点都必须设在「动手之前」:不可逆操作是执行前设闸,需求理解是编码前确认。
为什么不是 .env,也不是对话里:
| 方式 | 问题 |
|---|---|
| 写进环境变量文件让它自己读 | 它不一定每次都主动去读 |
| 写在对话里 | 对话一长就被截断遗忘 |
| 写进 Rule | 在每轮对话开始前就被加载进上下文,是最稳的注入方式 |
环境配置章节应包含的四类事实:
| 类别 | 内容 |
|---|---|
| 模型配置 | 模型 + API 服务商,一次写死,轮轮生效 |
| 超时 | 图像生成至少 120–180 秒(默认 30 秒会失败,且 AI 会反复尝试同一错误配置) |
| 代理回退 | 网络失败必须先尝试代理重试,仍失败才报告;禁止跳过代理直接报错 |
| 流式 | 前端可见的所有大模型响应必须 Streaming;后端内部调用才允许非流式 |
技术栈锁定:后端框架、前端框架 + 样式方案、数据库、向量库——一旦定了就不再讨论替代方案,AI 的职责是在确定的栈内把代码写好。选型是人的决策。
端口规则:避开 5000,从 8000–9000 随机分配,多项目同开不冲突。
环境事实的特点是几乎不变。几乎不变的东西就应该一次性写死、每轮自动带入,而不是靠对话重新传递。
写法要求:写到数值和路径,而不是描述性语言。
❌「超时设长一点」 → ✅「图像生成超时设 120 秒」
❌「记得用代理」 → ✅「失败时先尝试本地代理端口重试」
① 中文输入法(isComposing)
确认候选词时会触发 Enter,只判断 e.key === 'Enter' 的输入框会把半段内容直接发出去。
| 状态 | 含义 | 行为 |
|---|---|---|
| isComposing = true | 输入法正在组合中 | 回车只确认候选词,不触发发送 |
| isComposing = false | 普通键盘输入 | 回车正常发送 |
该标记在训练数据里覆盖率不高,不写进 Rule 就一定会忘。
② 数据格式三分法
三种格式各管一个领域,互不混用。为什么工具调用推荐标签格式:
| 键值格式 | 标签格式 | |
|---|---|---|
| 嵌套表现 | 字符串里再套一层,每层嵌套翻一倍反斜杠 | 标签闭合直观 |
| 生成风险 | LLM 逐 token 生成时极易配错括号和引号 | 出错率明显更低 |
例外:只用单一模型系列的项目可改回键值格式(其 function calling 原生就是键值)。「Agent 用标签格式」是多模型混用场景的最大公约数选择。
③ 图标与细节规范
不可逆操作的安全感来自闸门。三道闸都设在执行之前。
| 闸 | 做法 | 拦什么 |
|---|---|---|
| GATE 1 · 备份 | 数据库改动先备份;备份放项目根目录 backups/,命名带时间戳;未备份不得执行 migrate / drop / alter / delete | 拦数据损失 |
| GATE 2 · 回退 | 不可逆操作先说回退方案,回答三件事:如何恢复、需要哪些备份文件、预计恢复耗时 | 拦无法恢复 |
| GATE 3 · 审查 | 发版前做 diff 审查,把「我以为改了什么」与「我实际改了什么」拆开比对;子 Agent 独立分析 diff 与发布说明的偏差,有风险就暂停 | 拦带病发版 |
备份命名格式:{原文件名}_{YYYYMMDD_HHMMSS}.db,统一放项目根目录 backups/ 下。真要回滚时,你需要一眼找到最近的那一份。
设计意图:发布说明描述的是预期改动,实际提交里可能混入无关调整甚至误删。正规团队靠 CI/CD + PR review 拦这个问题;独立开发者往往跳过 review 直接 push——让子 Agent 充当 reviewer,就是用规则补上这个缺口。
两条配套规则:
现象:对话开头说好用某种关系型数据库,聊到 30 轮它突然建议换轻量数据库——早期约定已被上下文窗口挤掉。
成因:① 上下文窗口截断(早期内容直接掉出窗口);② 长文本尾部注意力衰减(即使 200K 词元的模型也存在)。
对策 · 设锚点:超过 10 轮后,在关键操作前强制复述当前目标和关键约束。
固定格式:当前目标:XXX | 关键约束:YYY —— 格式固定才便于扫一眼确认。
三个要点:
十轮是经验阈值不是硬规则。真正的判断标准是:当你发现它开始出现与早期约定不符的建议时,漂移已经发生,此时无论多少轮都该立刻设锚点。
核心结论:「请用自然流畅的中文」没有用——它认为的自然和你认为的自然可能完全不同。必须给出具体的违禁词和违禁句式列表。
流程:准备可搜索的违禁模式清单 → 交付前逐条搜索 → 发现一处改一处 → 完成后注明已完成自查 → System Prompt 里的违禁句式同样要改。
设计细节:写作规范应独立成文件,并把全局生效开关设为 false,只在写文案/写提示词时手动引用,避免污染编码对话的上下文。原则:规则也要按需加载,不是所有规则都适合每轮都带。
锚定对抗遗忘,清单对抗含糊。 两者共同点:把模糊期望变成可执行动作。
三步装进项目:
适配:删、换、调、补:
四步协作流程(断点前移):
| 步骤 | 动作 | 作用 |
|---|---|---|
| 1 | 复述 —— 用它自己的话讲一遍要做什么 | 理解歪了当场就能看见 |
| 2 | 写迷你 PRD —— 方案、边界、不做什么 | 白纸黑字落下来 |
| 3 | 等你确认 —— 人工闸门 | 不点头就不动手 |
| 4 | 开始编码 | 此时写出的就是确认过的那个东西 |
为什么断点必须在动手之前:一句话丢过去直接开写,第一步理解就歪了,你要到验收时才发现。它写得越快越勤奋,你要拆的违章建筑越大——这就是「AI 写得快反而容易搞砸」的机制。动手之后的纠正都叫返工。
M5 最后一格:前五格做出了能干活的东西,但判断都在你脑子里;这一格把它们写成规矩。立住之后换人、换项目、换模型照样跑——这才叫工程,不叫手艺。
验收:把规范发给一个同事,看他能否照着做出类似的东西。能提出具体问题的说明真读懂了;只回「写得挺好」的多半没读。
建立或审视一套协作规则时,按顺序过这九条:
以下约束来自本集原始素材,属于设计与承诺时的边界条件:
先别追求体系完整。挑一个你最近踩得最疼的坑,按「先写为什么(那次翻车),再写怎么做(具体指令)」的格式写成一条规则,放进新对话的开头验证。判断标准很硬:那个坑是不是真的不再出现。规则写了却不生效,说明你写的是愿望而不是指令。用这条跑通之后,再一条条累加,比一开始就铺开十四章有效得多。
把现有规则里所有描述性的表述找出来,逐个替换成数值和路径。「超时设长一点」改成「图像生成超时设 120 秒」;「记得用代理」改成「失败时先尝试本地代理端口重试」;「注意端口冲突」改成「避开 5000,从 8000 到 9000 分配」。这一步做完你会发现规则的可执行性有质的变化,因为它不需要再猜你的意图。
下次给 AI 派活,先别让它开写。要求它用自己的话复述一遍要做什么,你确认之后才放行。这个动作通常只要一两分钟,但能挡掉理解偏差导致的大返工。验收标准:复述环节至少抓到一处理解偏差——如果一个都抓不到,说明这个需求太简单,换个大一点的再试,你才能真实感受到断点前移的价值。
把你的规则用满一周,记录两件事:哪些规则被触发了、哪些从没生效。一周后做两个动作——删掉从没生效的,把新踩的坑写成新规则。规则和产品一样需要迭代,而且没人维护就会腐烂。这套动作做完,你手上就有了一份真正属于自己的、有证据支撑的协作规范,而不是一份抄来的模板。
这五条的共同点是同一句话:把模糊期望变成可执行的具体动作。它负责快,规则负责稳。规则的价值不在于多,而在于每条都解决一个真实问题。
来源:xueai.miyang.cn(小山学堂 · 洛小山《学 AI 产品,从入门到精通》)