Codex 第 38 课:我把自己使用codex自媒体生产的工作流开源了

从零开始掌握 OpenAI Codex——AI 编程工程 Agent。14 章覆盖认识 Codex、四种入口安装、核心功能(自动化/插件/Skill/MCP/Git/记忆)、标准工作流、实战案例和第三方模型接入。

图片

我最近在整理自己的自媒体工作流时,碰到一个很尴尬的问题。

一条视频已经有脚本、配音、素材,甚至已经渲染出成片。但只要隔几天再打开项目,很多问题就答不上来了:

模型能写脚本、整理素材,也能调用配音和渲染工具。生产过程却经常只活在一次对话里。对话一断,状态也断;文件越来越多,没人说得清哪一个才是当前版本。

图片

它从选题开始,一直走到脚本、配音、素材、成片和发布包。每个阶段都要把状态和证据写回项目。下次换一个 Agent、换一个会话,先读项目状态,再接着做。

这篇文章不演示“一句话生成爆款视频”。我想讲的是另一个更基础的问题:当 AI 开始接管生产链,我们怎样知道它做到了哪一步,哪里可以继续,哪里必须停下来让人判断。

一条视频,为什么要拆成 6 个阶段

CreatorFlow 的完整链路有十个动作:

选题 → 评分 → 脚本 → 素材 → visual plan → 组装 → 渲染 → QA → 发布包 → 收尾

实际运行时,我把它们压进六个阶段:

阶段 主要工作 必须留下的证据 Topic 选题、评分、否决理由 选题决定与来源证据 Script TTS 录音稿、声音、字幕、画幅 锁定脚本、实际音频和 SRT Material 素材来源、逐句视觉任务 来源候选表、素材节拍表 Assembly 工程组装与渲染 可检查工程、候选成片 QA 自动检测、人工关键帧复核 QA 报告、人工复核记录 Publish Wrap Up 封面、文案、发布包 publish/、最终状态与同步记录

图片

六个阶段并不神秘,它们只是给生产过程划了六条清楚的停止线。

Agent 每做完一段,都要更新 project-state.json。里面会记录:

下一个会话不需要重新听我讲一遍项目历史。它先读这几个字段,再去找对应产物。

这个设计解决了一个很常见的问题:文件存在,不代表任务完成。

目录里出现了 script.md,只能说明有人写过一份脚本;出现了 output.mp4,也只能说明渲染器吐出了一个视频。脚本有没有锁定,画面有没有错位,字幕会不会挡脸,素材是否允许使用,都要经过各自的验收门。

自动 QA 通过,为什么仍然不能发

这是 CreatorFlow 里我最不愿意让步的一条规则:

自动 QA PASS,只允许项目进入人工复核,不能直接进入发布收尾。

图片

机器适合检查分辨率、时长、编码、音轨、字幕文件和必需产物。它也能抽取关键帧,帮人缩小检查范围。

但机器检测不到很多观感问题。

它不知道一张图虽然和文案有关,看起来却像硬塞进去的素材;不知道字幕位置刚好挡住人物的脸;也不知道某个转场技术上没报错,节奏却让人出戏。

人工复核还必须绑定当前成片的 SHA256。

假设我检查过 render-v1.mp4,随后又改字幕、重新渲染出 render-v2.mp4。两个文件看起来可能只差一个字,但它们已经不是同一份成片。旧的人审记录立即失效,必须重新抽帧、重新确认。

这条规则听起来有点死板,却能拦住最危险的一种“假完成”:Agent 看到旧报告写着 PASS,就顺手把新文件也判成通过。

状态不是验收。旧验收也不能借给新成片使用。

公开的是流程,私人内容留在本地

我不希望大家克隆仓库以后,得到一套带着作者个人账号、声音和知识库的半成品。

CreatorFlow 公开的是 Skill、脚本、规则、测试和空模板。使用者需要自己填写四份本地输入:

图片

这四个文件决定最后做出来的是谁的内容。

仓库不会替你发明账号定位,也不会附带我的 Cookie、Token、API Key、声音样本、历史工程或私人知识库。公开配置只提供 *.example.json,复制出来的 *.local.json 留在本机。

如果以后要换账号,只换这层输入。六阶段生产规则不用重写。

我重新跑了公开门禁和三个最小入口

写介绍很容易,跑一遍比较诚实。我用当前公开 main 分支先跑了 Core 发布门禁,再重新执行三个最小入口。

图片

截至 2026 年 8 月 15 日,这次门禁核对了 104 个清单文件、103 份 SHA256、隐私扫描和 Core 测试,最终返回 22 PASS,进程退出码为 0。这个数字只证明公开包通过了当前仓库定义的门禁,不等于完整视频已经通过人工验收。

第一个是 Core 能力检查。

powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\test-workflow-capabilities.ps1 -Profile Core ` -AsJson

这次返回 ready: true。PowerShell、Python、FFmpeg 和 ffprobe 都可用。Node、HyperFrames、IndexTTS2 等能力会按照实际路线决定是否启用,不会因为它们缺失就假装整个环境不可用。

第二个是离线选题评分。

仓库自带 5 个固定候选和一份公开评分表。脚本会计算新鲜度、受众匹配和制作成本,同时给落选项写出原因。这次第一名是 AI meeting notes with a human acceptance gate,得到 90/100;第二名 68 分,并留下了 22 分差距来自哪里的解释。

这个示例不联网,也不读取个人知识库。它只能证明 Topic 阶段的评分、排序和证据文件可以复现,不能证明完整视频链路已经跑通。

第三个是最小项目初始化。

脚本实际生成了 8 个文件,包括四份个人输入、project-state.json、项目说明,以及两份素材规划占位文件。

图片

初始化后的状态是:

{ “currentStage”: “Topic”, “stageStatus”: “topic_ready”, “qa”: { “automated”: “not_run”, “humanStatus”: “not_run” }, “published”: null }

这里有意保留了三个空白:没有自动 QA,没有人工复核,也没有发布成功。

模板只负责把项目放到起跑线上。它不会预填一张 PASS 证明自己已经跑完全程。

缺少依赖时,先停下来说明白

AI 工作流很容易滑向另一个坑:为了完成任务,Agent 自己下载软件、安装依赖、登录账号,甚至把凭据写进配置文件。

CreatorFlow 的能力探测只负责报告。发现依赖缺失时,执行者要先说明五件事:

得到明确同意后才能继续。

比如第一次进入 Assembly,项目还没有渲染器,初始化命令只生成方案,不直接下载。使用者确认以后,再显式加入 -AcceptDownload。

同样,工作流默认生成发布包,不会自动上传平台。把视频做完和代表用户对外发布,是两件权限完全不同的事。

第一次怎么跑

最简单的方式,是把下面这段直接交给 Codex:

请帮我使用 CreatorFlow:https://github.com/Damonhhh/creator-flow

先克隆仓库并只做 Core 能力检查。把缺失项、用途、官方下载来源、 准备执行的命令和风险列给我;未经我明确同意,不要下载、安装、 登录或写入凭据。

检查通过后,用仓库模板创建一个新视频项目,停在 Topic 阶段, 告诉我需要填写哪些个人输入。

如果想手动开始:

git clone https://github.com/Damonhhh/creator-flow.git cd .\creator-flow

powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\test-workflow-capabilities.ps1 -Profile Core ` -AsJson

看到 ready: true 后,再初始化项目:

powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\new-video-project.ps1 -Name ‘my-first-video’ ` -Destination .\videos

先不要急着把六个阶段全部跑完。

图片

打开新项目,填好四份个人输入,确认 project-state.json 停在 Topic / topic_ready。然后拿一个真实选题跑完 Topic,检查有没有评分、来源证据、入选理由和淘汰理由。

这一小段跑通了,再进入 Script TTS。

这套工作流目前还没有证明什么

CreatorFlow V1 面向 Windows。公开仓库提供了离线 Topic 示例和最小项目模板,但还没有一位陌生使用者公开展示从 Script TTS 一路跑到 Publish Wrap Up 的完整案例。

所以我现在能确认的是:流程入口能运行,状态会落盘,选题示例可以复现,最小项目不会伪造验收结果。

我暂时不能确认跨机器完整兼容性,也不会拿这个仓库承诺流量、账号定位或效率提升。

后续我想补上的证据很具体:一份脱敏的真实视频项目,一份绑定最终成片 SHA256 的人工复核记录,以及一位没有参与开发的人完成首次运行时留下的阻塞清单。

到了那一步,我们再谈“从选题到发布包跑通了”。

现在,先把第一段路走实。

仓库地址:github.com/Damonhhh/creator-flow

如果你愿意试,不用研究所有脚本。克隆仓库,跑一次 Core 检查,建一个最小项目,停在 Topic。

只看一件事:下一次打开项目时,你和 Agent 能不能准确回答——现在做到哪了,凭什么算做到,下一步该干什么。

原文信息

作者:@mujunchengcs 原文地址:https://x.com/mujunchengcs/status/2089947320582586399