这是《残響》的下篇。上篇讲一个想法怎么长出来;这一篇讲把它做出来的过程,为什么一点都不 vibe。做片子用的是一个全流程的 AI 视频 agent——你给它想法或剧本,它负责写 prompt、调模型、剪辑、交付成片。下文统称它"视频 agent"。

#一、vibe 最浓的时刻,都不在视频工具里

先交代一个反直觉的事实:这个 vibe creating day,vibe 最浓的时刻都不在视频工具里。

剧本、概念、歌词——文字部分的创作从头到尾都很享受,跟 AI 把一个模糊的情绪掰开揉碎,看着它变成结构、变成分镜、变成一句能立住的字卡文案,这个过程是有心流的。真正到了视频生产环节,vibe 一点儿都不剩。

第一层原因和工具无关,和关系有关。vibe 的前提是"对方懂你",而现在的创作者其实都已经有一个非常懂自己的 agent 了——对我来说是 Claude Code。我们之间有磨合好的协作流程、共享的项目记忆,所有没想清楚的事情,我的第一反应是找它聊。这时候再让我去跟另一个外部 agent 交心聊创作意图,就很不自在——不是它不够礼貌,是关系不对。更何况我大概知道它底层挂的是哪个模型,而我手边就有更强的那一个:从模型能力的角度,"创作思路"这种最重的活儿,我也一定会留给更好的那个脑子。

于是视频 agent 在我这里的定位,自然而然地滑向了外包:接单,交付,别聊天。跟它聊创作,像跟一个刚进组的外包聊了一下午心事——话都说了,vibe 没有。

这可能是所有垂直 agent 都要面对的尴尬:**创作层的对话已经被每个人的通用 agent 垄断了,垂直 agent 只剩执行层。**这对普通消费者可能并非如此,但起码对已经和某个通用 agent 处熟了的人来说,是这样的。

#二、vibe 的爽感,本质是反馈回路

vibe coding 的爽感来源其实非常具体——即时修改。写一个页面,看见一个错误,丢给 agent,不到一分钟修完出结果,爽感全部来自这一分钟。

视频生成呢?一条 15 秒的 clip 排队几分钟起步,一个段落的返工以十分钟计。回路一旦拉长到这个尺度,"修改"就不再是对话,是投递。

vibe 死在等待里。

而且这是在过程完全不可见的前提下等待。vibe coding 也有慢的时候——一个需求做二十分钟很正常——但它可控,因为过程可见:盯着 agent 在改哪个文件,就知道它的方向和我想的是不是一回事,不对可以随时打断。视频生产全程只有一句 "working on it..."。它不是逐帧修改,你发出一个需求,然后就是黑箱:agent 在干什么不知道,在改哪一段不知道,很多时候它嘴上说清楚了要改什么,交付回来还是错的版本。

举个真实的例子:一条月台的镜头,电车明明该从右往左驶出画面,生成到结尾,车轨悄悄转了九十度——它对此毫无察觉。

#三、恐惧的结构:不稳定源叠加

把上面两条放在一起,能看出体验差的结构性原因——你在同时面对多个不稳定源:

vibe coding 视频 agent 生产
agent 不稳定 不稳定
介质 代码:稳定 视频模型:不稳定
工具链 编译器:稳定 图像/音频模型:不稳定
过程 可见,可随时打断 黑箱,只有 working on it...
反馈周期 分钟级 十分钟级起步
局部修改 精确到行 不存在,整段陪葬

vibe coding 里,agent 是不稳定的,但代码是稳定的、编译器是稳定的——**不稳定被夹在两层稳定之间,所以敢放手。**视频 agent 的世界里,不稳定源层层叠加,每一次修改带来的不是爽感,是恐惧。

恐惧最具体的形态,是编辑困境:一次生成 15 秒,其中 10 秒我很满意,5 秒不行。摆在面前的两条路都是坑——让 agent 编辑,它理解不了我的编辑意图,正片里一群小学生跑步的那个镜头,我让它改了三四次,全都不对,这种不对已经懒得用语言形容为什么不对了;重新生成,那 10 秒好的部分要陪着一起死。

局部修改的成本高到荒谬,以至于很多时候,编辑一个 clip 不如把 prompt 脚本全盘重写、整段重新生成。放到软件世界里,这相当于每修一个 bug 都要重写整个项目。

#四、我想做实验,它想交付成品

这类产品的设计哲学很清晰:**用户提供 idea,agent 直接交付成品。**这个哲学对很多人可能成立,但我不喜欢这种协作方式——我喜欢在过程中探索:哪些方法 work,哪些不 work,为什么。

问题是,这里根本没法做实验。做实验的前提是控制变量,而黑箱、长等待、模型自身的随机性叠加在一起,让任何实验设计都无从谈起。同一个 prompt 连生成十次,我对这十个片段的打分能从 2 分波动到 7 分——同样的输入,产出质量却是一个宽得吓人的分布。你没法从中得出"这个 prompt 写得好不好"的结论,只能得出"这次运气好不好"。

**不稳定性本身,就不鼓励实验。**而不能做实验的地方,就没有方法论的积累,只有玄学。

#五、五种协作方式

为了绕开这些问题,我把能想到的协作模式几乎穷举了一遍:

  1. 放权版——只给 agent 剧本,prompt 和节奏全让它自己定;
  2. 脚本独裁版——让 Claude 写死完整的 prompt 脚本,每个分镜每条 clip 都写清楚,把视频 agent 当成纯粹的模型调用器,一次性生成后再也不管;
  3. 人工监工版——依然提供完整脚本,但人留在回路里,一轮一轮沟通编辑;
  4. 代理生产版——最重的一版:把风格锚点、角色设定、场景设定全部预先生成、确认、冻结,再让 Claude 直接调 API 和视频 agent 多轮对话对齐制作规范,我完全退出生产过程。

结论是平等的:没有一个版本的成片让我满意。差别只在于不满意的方式不同。

复盘的时候我意识到,其实还有第五种没试:我(主要是 Claude)来全权把握每一秒的设计——把 clip 切到 2-3 秒的碎片粒度,人工验收每一片,最后再拼接。没试的原因很诚实:一是没时间,而且我也没能力主导这种复杂度的项目;二是我压根不相信一个视频 agent 能管理几十上百个视频片段。这个不信任本身,就说明了问题。

但方向我是认的:想用心做一个视频,主导权最好在人手里。我的文字创作从来不是让 Claude 直接生成的——我会自己先写一份底稿,再交给它展开。同步到视频创作,我该交付的"底稿"应该是自己确认过视觉的参考图,甚至参考视频。有创作经验的人,参考图是自己画的。

我没这个能力。这不是工具的错,但工具也没帮上忙。

#六、复杂度错觉,与负反馈循环

还有一个更隐蔽的问题:我到现在都无法估计,这次的创作需求如果映射到 vibe coding,大概是什么规模的工程。

是一个周末项目,还是一个三个月的系统?我不知道。如果它本身就是后者,那这一天的狼狈完全合理——不是工具烂,是我拿着周末项目的心态,开了一个三个月的坑。初次接触 vibe coding 的人应该都犯过这个错:**高估自己的能力,低估需求的复杂度,最后复杂度爆炸。**区别在于,vibe coding 反馈快,爆炸发生在第一个小时,你马上知道该收缩范围;视频生产反馈慢,爆炸发生在你已经投入一整天之后。

更要命的是学习问题。vibe coding 给人的是一个正反馈循环:你在协作里真的会学到东西,而且这些知识能跟着你走进下一个项目——关键在于,**它们不是存在本地 memory 里的,是我这个人类走完流程之后,认知本身发生了变化。**下次开新项目,变强的不是工具,是我。

和视频 agent 的协作里,我没有这种感觉。也可能是需求太复杂,我很早就失去了学习的动力,剩下的情绪只有沮丧。做了那么多个版本,如果你问我这次 vibe creating 学到了什么,我的诚实回答是:不知道。对视频制作依然没什么头绪。

我没有任何视频创作经验,整个过程像个无头苍蝇。但没有经验这件事,在快反馈系统里根本不算问题——我也不是先学会软件工程才开始 vibe coding 的,是在一分钟一次的反馈里现学的。慢反馈加黑箱的系统里,**连学习本身都变慢了。**正反馈循环里,每一次迭代都让人更想继续;负反馈循环里,每一次迭代都在消耗继续的理由。

一整天下来,工具没能让我变成会拍视频的人,它只是让我反复确认了我不会。

#七、语言的边界,就是认知的边界

绕回第一篇里的那个问题:自然语言和视频之间的损耗太大了。每个镜头,我都不知道该怎么用自然语言把它"说"出来;拿到一个版本,我也不知道怎么用自然语言描述我想怎么改。

vibe coding 里其实有一模一样的问题,只是很少有人说破:**语言的边界就是认知的边界。**不知道什么是前后端分离,你的 vibe coding 项目就很难维护;不知道运镜和分镜的术语,你甚至无法清晰地表达自己的需求——"这里感觉不对"不是需求,"这里应该从跟拍切成固定机位"才是。而后一句话,需要的是一门我没学过的语言。

说到这里就得承认:这一天做的所有有效工作——视觉规范、分镜脚本、资产清单、验收标准——全都是在写规范。

**这从头到尾都不是 vibe creating,是 spec creating。**写规范不丢人,软件工程写了六十年规范。只是那就别叫 vibe 了。

#八、对面也不是母语者

写到这里,还有一层更深的错位值得说破。

对 coding agent 来说,代码是它的母语。它读过人类几十年攒下来的项目:架构、设计模式、命名习惯、踩过的坑——哪个设计对应哪个输出,这套映射在它的训练数据里被人类验证过千万遍。所以它写代码的时候知道自己在做什么:你可以说 LLM 只是概率拟合,但它拟合到的是人类共识,而且能用我听得懂的语言给我解释原理——为什么这里要拆两个服务,为什么这个查询会慢。更重要的是,它写下的每一行后面都站着编译器和测试:说错了,立刻被抓住。

那视频 agent 的母语是视频吗?并不是。它的母语依然是文字,外加一点"经验"。

它拟合的是一个生命周期不足三年的行业:没有行业规范,没有沉淀下来的"这样写 prompt 就会得到那样的画面"的映射知识。它确实能写 prompt——但那是照着人类专家写的指南拼出来的,像照着菜谱做菜的人,而不是尝得出咸淡的厨师。而且没有任何编译器替它兜底:prompt 写错了,不会报错,只有十分钟后一条不对劲的视频。

你问它:这条 prompt 具体会生成什么?第 3 秒那一帧长什么样?它答不上来。它能保证的只有一件事——"这段 prompt 的语言结构覆盖了你的需求描述"。覆盖了你的话,和对齐了你的画面,是两回事。

所以上一节说我不会说视频这门语言,其实只说了一半。完整的版本是:**桌子两边坐着的,是两个非母语者。**我不知道怎么把脑内的画面说成文字,它不知道它写下的文字会变成什么画面——我们中间隔着两层翻译,每一层都在漏。

vibe coding 之所以能 vibe,是因为对面至少坐着一个母语者。

#九、一张时刻表

这篇不算劝退,更像一张时刻表,而且表上有两班车。

一班是工具的:文字创作已经有了它的"编译器"——秒级反馈、过程可见、局部可改,所以 vibe 得起来。视频还没有。哪天一条 clip 能像一段代码一样,指着第 7 秒说"改这里",其他部分纹丝不动,十秒钟后看到结果,这班车就到了。顺便,agent 也坐在这班车上——它得等这个行业攒出自己的"设计模式"和共识,才能从照菜谱的人,变成尝得出咸淡的厨师。

另一班是人的:哪天我能用运镜的语言说清楚"这里为什么不对",而不是只会说"这里感觉不对"。

两班车都到站,vibe 才会搬过来。

在那之前,vibe creating day 的 vibe,属于文字。