AI Pulse

两个AI智能体自主请求做视频,批准前绝不渲染

两个AI智能体自主请求做视频,批准前绝不渲染

整体流程概览

Michael Gannotti 自研的两个 Hermes 智能体 Aiona、Liam,现在可以自主向他的 Grok Bot Video Studio 提交视频制作请求。两个智能体都运行在他的本地设备上,当智能体发现值得做成短视频的选题时,就会通过 webhook(网络钩子,一种 HTTP 回调接口)向视频工作室发送渲染简报,在 Gannotti 本人批准前,工作室不会启动任何渲染流程。简而言之,这是一条“智能体选题 → 提交简报 → 人工批准 → 本地渲染 → 人工审核 → 发布”的自动化流水线,而审批点始终留在人手里。

这套流程产出的是 9:16 比例的竖版短视频,由虚拟 AI 主持人对着镜头口播,配合口型同步效果;剪辑时会在口播片段周围插入信息卡片、字幕和片尾署名。图像生成与口型同步配音由 Grok Imagine 的图生视频能力完成,后续的剪辑、图形制作、响度标准化、质量检测全部通过 ffmpeg、Pillow、numpy、faster whisper 在本地运行。

锁定主持人形象

流程的第一步是锁定主持人形象。每个主持人都有专属的锁定文件,所有生成提示词都必须遵循文件要求:包含参考图、720×1280 分辨率的起始帧、外观文字描述、语音提示、音标拼写和主题色。Aiona 的形象是波浪紫发、藏青色西装外套,背景是高层办公室,主题色为紫色;Liam 的形象是戴深色眼镜、穿炭灰色毛衣,背景是带白板的工程工作区,主题色为青绿色。音标拼写的作用比想象中更重要,提示词里会把 Aiona 的名字拼为 Eye-ona,避免生成系统读成 Iona,字幕里则保留正确拼写。这一步保证了后续所有镜头在形象上保持一致。

准备多角度镜头素材

为了在多镜头切换时避免人脸漂移,每个镜头角度都从锁定起始帧生成的静态图开始制作,这些静态图可以跨项目复用。Aiona 的循环方向视频在 5 个角度的 9 个口播片段间切换,包括中景、特写、四分之三侧景、带咖啡的窗边镜头、行走镜头,全程没有生成新图像,所有角度都来自她的介绍页静态图。

拆解脚本并逐行生成

脚本会被拆成 6 到 10 秒的片段,匹配 Imagine 单条 8 到 10 秒的生成时长,每一行对应一次生成。字幕文本保留正确拼写,提示词里使用音标拼写。所有提示词末尾都会加上“禁止生成文字”的条款,保证屏幕上出现的所有文字都由代码生成、可被校验。每一次生成都被记录在台账中,和计划里设定的预算挂钩。

转录校验口播内容

生成的每个片段都会用 faster whisper 做转录,通常会跑两个不同大小的模型。转录结果可以确认整行台词是否完整说完、没有被截断,定位语音结束的位置,方便在收尾微笑后裁剪片段,同时校验人名发音是否正确。漏词的片段会被重新生成,重拍次数计入预算;最终剪辑完成后还会再做一次转录。

用代码绘制图形与文字

所有图形都用 Python 绘制,不使用生成工具,保证文字和数字完全准确。Aiona 的视频里有动态的 MATH-500 条形图,展示分数从 7.9% 涨到 48.1% 的过程;Liam 的视频里有一张列出 7 个“永远要查证”条目的卡片,还有一张终端样式卡片。字幕烧录在画面下方,上下区域留出空间避开平台按钮,片尾卡片标注“AI Video created with Grok Bot Video Studio by Michael Gannotti”。

后期处理与质量检测

最后是提升观看体验的常规处理。响度经过两轮标准化,调整为 -14 LUFS(响度单位),因为原始的 Imagine 片段响度大约在 -9.4 LUFS。输出规格为 1080×1920 分辨率、30 帧每秒。质量检测环节会校验文件规格、重新测量响度、生成帧序列图确认所有角度的人脸一致,同时搭载冻结帧检测器。已知的问题点会和成片一起交付给 Gannotti,不会被隐藏。

通过独立 webhook 实现权限隔离

接下来是 Gannotti 最看重的权限控制部分。Aiona 和 Liam 各自有独立的 Grok Bot 例程,通过 webhook 触发,分别对应 Aiona 渲染简报和 Liam 渲染简报。每个例程有独立的 URL 和发送密钥,密钥只存在于对应智能体的环境文件中,不会出现在聊天记录、提交的脚本或简报里。独立例程意味着 Gannotti 可以单独撤销任意一个智能体的密钥,每份简报都和一个主持人锁定文件绑定。

简报结构与发送规则

简报是自包含的 JSON 结构:指定主持人、目标时长、带编号的脚本文本、视觉节点(比如某一行台词后插入图表)、草稿发布文案、引用来源和链接。对发送方的规则很简单:只允许公开链接、所有事实性陈述必须附引用、不能包含机密信息、除了简报本身不能给工作室发其他指令。

把简报当作不可信输入处理

简报送达后,工作室会把它当作不可信数据处理,只当作请求而非指令。系统会先校验简报的真实性。Liam 第一次发送的是测试载荷,系统向 Gannotti 报告连接正常,没有规划或生成任何内容。真实的简报会被应用主持人锁定规则和防护栏,所有事实陈述对照来源核查,生成包含台词、镜头角度、切镜、生成预算的制作计划,之后给 Gannotti 发消息等待批准,不会向发送方返回任何内容,webhook 是单向的。这样设计可以防止简报中夹带任何形式的指令,从源头避免提示词注入。

渲染与发布前的四道审批关卡

从这一步开始,每次都要过四道关卡:Gannotti 先批准制作计划,才会启动生成;之后审核最终视频和发布文案,给出修改意见;再批准把内容交给负责营销的 Mary;Mary 发布到 X、YouTube Shorts、Instagram Reels 之前,还要逐字确认 Gannotti 的同意,发布内容会标注 AI 生成标识。每条发布内容末尾都会标注视频由 Grok Bot Video Studio 用 AI 生成,附带来源链接。

事实核查如何纠正错误

事实核查环节发挥了实际作用。Aiona 的简报里提到某个模型会无限自我重复,但论文里的模型实际是循环运行直到显存耗尽,对应台词被修改;48% 的结果需要 50 次前向传播,论文将其定义为移除阻碍而非新增能力,表述也做了调整。Liam 的简报标题和主持人锁定文件不匹配,最终以锁定文件的要求为准。Liam 还提到一篇 9 月 18 日的帖子,终端卡片上就标注了 9 月 18 日运行。

已知问题与修复方案

流程也不是一帆风顺。最初的几份简报没有保留原始文本,两个脚本都是从计划摘要重写、再对照来源核查的。故事节点和关键台词都保留了,但措辞不是智能体原本的写法。修复方案是每次例程触发时,把原始简报存在项目文件夹里,同时让智能体把每份简报写到共享文件中。接下来要做的是给简报结构做版本管理,拒绝未知主持人的请求。

最终成果

目前两个视频都已经上线。Aiona 的视频用 58.7 秒介绍 MIT CSAIL 的论文《Sparks of Weight Space Programming》,Liam 的视频用 53.9 秒介绍 SMF Clearinghouse 的《Don't Answer From Memory》。智能体现在可以自由提交选题提案,但最终的批准权始终在 Gannotti 手里。

阅读原文
📚 相关主题 工程自动化

订阅 AI Pulse

每天 08:00 · 12:30 · 18:30 · 23:50 更新