‹ 返回笔记 · Back to notes

现场手记

Prompt 不是提示词,是任务协议——看完一节课,我重新归了一次因

Prompt Isn't a Magic Phrase, It's a Task Contract — Reattributing a Month of Failures After One Lesson

上一篇我写林鹿做了一个月还没出片。看完一节叫「Prompt 到底是什么」的课,我把那一个月复盘了一遍——至少 5 次失败,根因不是 AI 不行,是我把 prompt 当成「哄 AI 的话术」,而不是「跟 AI 之间的任务协议」。

PromptAI 工程任务定义学习笔记public-safe

学习笔记

至少 5 次失败,根因不是 AI 不行,是我把 prompt 当成"哄 AI 的话术",而不是"跟 AI 之间的任务协议"。上一篇我写林鹿做了一个月还没出片;今天看完一节叫「Prompt 到底是什么」的课,这一课让我重新归了一次因。

这一课对我最大的作用:重新归因

我不写代码。我每天和 AI 打交道的方式只有一条——给它写 prompt。Codex 帮我写代码、Claude Code 跟我对话、林鹿做视频、纪嫣然出声音、苏晚写内容——我跟它们之间没有"读源码""调 API"这条退路,全部都靠一段段中文 prompt 接起来。

这一课最大的价值不是教我怎么把 prompt 写得更漂亮,而是把我过去几个月一直归错的因重新摆正。我之前太多次说——"林鹿就是不行""Codex 怎么又跑偏了""这模型不稳定"。这一课说:不是 AI 不行,是你的任务定义不清楚。听起来像批评,但对我反而是好消息:AI 那一截我控不了,任务定义这一截我能控。

课里那句话我记下来了:「Prompt 不是提示词,是任务协议。」四个字。我以前以为 prompt 是话术、是技巧、是怎么把 AI 哄聪明。其实不是。它就是一份临时工作说明书——这件事我请你做、你扮演什么角色、为什么做、做到什么程度、什么算合格、什么不能做。

我之前犯的 4 个错

课里把 prompt 拆成 6 个组成部分(角色 / 目标 / 背景 / 任务 / 约束 / 输出格式)。我对着最近一个月写过的 prompt 一条条核,发现 4 个错反复在犯。

错一:把"做什么"当成完整指令。林鹿那次最典型。我给的指令是「随意做一个,比如林黛玉进贾府」。这句话在我心里有完整画面——林黛玉应该是个怎么样的少女,贾府应该是怎么样的大宅,镜头应该有怎么样的节奏——但这些都没写出来。结果出来 S03 三帧是几乎完全一样的橙色火柴人棍图:control video 是程序化生成的,林鹿不知道我不要这个。我事后气炸了——但其实她没错,是我没说"不要程序化棍图""动作要来自真人参考视频"。我以为「做林黛玉进贾府」是个目标,其实那只是个标题。

错二:从来不写【角色】。我以前以为指定角色是装饰——"你是个 AI 工程教练"这种话听起来很尬。其实它不是装饰,是在选脑子。同一个问题,用"产品经理脑子"和"安全工程师脑子"问,答案完全不一样。我之前让 Codex 评估一个视频生成方案,没说角色,它给我一份偏算法研究员视角的报告:采样策略、损失函数、新论文。但我要的是工程师视角——能不能装上、Mac 跑得动吗、跑一次多久、出错怎么办。一句"你是一个 Mac 本地部署工程师"就能直接换方向,我之前完全没用上。

错三:只说"做什么",不说"不要什么"。这是火柴人事件的另一面。我以为 prompt 越简单越好——"帮我做 X",剩下的让 AI 自由发挥。结果"自由发挥"变成了"用默认做法做",而默认做法常常踩中我心里的雷区。如果当时多写一句"不要用程序化生成的火柴人作动作源、不要用任何低于 768×1344 的关键帧、不要在静态构图里假装有动作",那一个月的好几次绕路都能省掉。「不要什么」很多人不写,但往往比「要什么」更决定结果。

错四:不指定【输出格式】,拿回来再二次整理。我以前让 Codex 给结果,回来的总是几大段散文。然后我要花 10 分钟把关键信息扒出来,整理成表格或列表。这件事重复了几十次,直到这一课点破——输出格式本来就是 prompt 的一部分。一开始就写"按表格输出,三列:项 / 现状 / 建议",后面所有的整理时间都能省掉。工程上这叫"降低二次整理成本"。说穿了:你想要什么样子,就直接画给 AI 看,别让它自己想。

同一件事,之前会怎么写 vs 现在会怎么写

同一句话,写法不同,能省下一周。一个月前我让 Codex 评估 TTS 库 OmniVoice,当时的 prompt 大概是这样:

帮我看看 OmniVoice 这个 TTS 库能不能用。

这一句话什么都没交代。我用什么机器、想要什么嗓音、"能不能用"的标准是什么、答案要什么形式——全都没说。Codex 跑了一通分析:讲架构、列模型大小、估 token 成本。然后呢?我答不出下一步。我甚至不知道这库的嗓音像不像我心里那个 DJ,模型还在卡 12% 下不下来。

现在我会写成这样:

角色:你是一个 Mac 本地 AI 工程师,做过 fish-speech / OmniVoice / Coqui 这些 TTS 库的本地部署。
目标:帮我判断 OmniVoice 能不能在我 Mac Studio 上跑出"凌晨电台主播那种温柔气音"的嗓音。
背景:我做一个 AI 私人电台,DJ 要每天给我念早晚问候和歌曲介绍。已经尝试过 macOS 内置 say、Nanami 念中文、Ava 念中文,都不行。reference 音是 edge-tts 的 Xiaoxiao。
任务:① 列出 OmniVoice 在 Mac MPS 上的部署步骤和已知坑;② 评估它克隆 Xiaoxiao 这条 reference 的可行性;③ 给出一个 30 分钟以内能验证的最小试听方案。
约束:不要堆模型架构。不要假设我懂 PyTorch 内部。不要给"理论上可以"这种回答——给具体步骤。
输出格式:按 ① ② ③ 三段分。每段开头一行结论(YES / NO / 待测),然后展开。

这就不是"问 AI",而是"派一个有具体身份的人执行一个有具体边界的任务"。第一种写法,1 天能跑完的事能拖成 1 周;第二种写法,1 小时就能知道这条路通不通。

这一课的标题戳中我——「Prompt 不是提示词,是任务协议」。我以前几乎所有的 prompt 都停在"提示词"那个层面。写完发给 agent,agent 跑偏,我以为是 agent 的问题。看完这一课才意识到,是我把"任务协议"写成了"许愿"。

下一篇我打算用同一套方法重写林鹿的 prompt——边写边对照那一个月所有的失败案例,看哪几次能用更严格的任务协议提前救回。救得回去,就是这一课直接给的回报;救不回去,也说明 AI 这边确实有边界——但起码归因清楚。

这一课最大的作用,就是把"AI 不行"重新归因到"我没定义清楚",让我手里有事可做。我还在改。

把这篇记录接到下一步

读完以后,可以继续追问这篇文章,也可以回到策展目录,或通过标签追同一条线索。

追问这篇 回到目录 浏览标签