WorkBuddy 进行多 Agent 系统设计
单 Agent 和多 Agent 的真正差别
#rNGfTqdtteKe text { white-space: pre; }#rNGfTqdtteKe .fb0 { stroke: var(--N900-FG, 0.15); }#rNGfTqdtteKe .fb0 {stroke: rgba(31,35,41, 0.15)}#rNGfTqdtteKe .fx0 { stroke-miterlimit: 10; }#rNGfTqdtteKe .fx0 {stroke-miterlimit: 10}#rNGfTqdtteKe .fa1 { fill: rgb(187, 191, 196); }#rNGfTqdtteKe .fa1 {fill: rgb(187, 191, 196)}#rNGfTqdtteKe .fx1 { font: 400 12px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#rNGfTqdtteKe .fx1 {font-style: normal}#rNGfTqdtteKe .fx2 { text-anchor: middle; }#rNGfTqdtteKe .fx2 {text-anchor: middle}#rNGfTqdtteKe .fx3 { dominant-baseline: central; }#rNGfTqdtteKe .fx3 {dominant-baseline: central}#rNGfTqdtteKe .fx4 { stroke: none; }#rNGfTqdtteKe .fx4 {stroke: none}#rNGfTqdtteKe .fc0 { fill: var(--text-caption); }#rNGfTqdtteKe .fc0 {fill: #646a73}#rNGfTqdtteKe .fa2 { fill: var(--text-link-disabled); }#rNGfTqdtteKe .fa2 {fill: rgb(187, 191, 196)}#rNGfTqdtteKe .fa3 { fill: rgb(21, 24, 18); }#rNGfTqdtteKe .fa3 {fill: rgb(21, 24, 18)}#rNGfTqdtteKe .fx5 { font: 400 14px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#rNGfTqdtteKe .fx5 {font-style: normal}#rNGfTqdtteKe .fx6 { text-anchor: start; }#rNGfTqdtteKe .fx6 {text-anchor: start}#rNGfTqdtteKe .fx7 { dominant-baseline: alphabetic; }#rNGfTqdtteKe .fx7 {dominant-baseline: alphabetic}#rNGfTqdtteKe .fc1 { fill: rgb(255, 255, 255); }#rNGfTqdtteKe .fc1 {fill: rgb(255, 255, 255)}#rNGfTqdtteKe .fc2 { fill: rgb(17, 19, 14); }#rNGfTqdtteKe .fc2 {fill: rgb(17, 19, 14)}#rNGfTqdtteKe .fb1 { fill: var(--N900-FG, 0.15); }#rNGfTqdtteKe .fb1 {fill: rgba(31,35,41, 0.15)}#rNGfTqdtteKe .fb2 { fill: rgb(51, 56, 47); }#rNGfTqdtteKe .fb2 {fill: rgb(51, 56, 47)}#rNGfTqdtteKe .fb3 { fill: rgb(215, 219, 208); }#rNGfTqdtteKe .fb3 {fill: rgb(215, 219, 208)}#rNGfTqdtteKe .fa4 { fill: var(--bg-body); }#rNGfTqdtteKe .fa4 {fill: #fff}ABC1234567维度单 Agent多 Agent上下文分工工具质量成本风险所有信息在一个任务一个执行体串行完成同一组权限自己生成、自己检查较低一处错误影响整体角色只接收必要上下文多角色并行或接力可按角色隔离工具和权限可设置独立评审者协调、模型和工具调用更多错误可能在角色间传播
63%

37%
多 Agent 的价值来自专业分工、并行、权限隔离或独立评审,不来自角色数量。
案例:产品宣传片专家团
任务背景
HyperFrames 是 HeyGen 开源的视频渲染框架(截至案例时 GitHub 17.7K Star),核心特点是对 AI Agent 友好:Agent 可以自动生成基于 HTML 的视频帧并渲染输出。产品宣传片具有相对固定的套路——无需口播和演员,主要由产品展示、概念字幕和 BGM 构成。这类任务适合 Agent 团队分工处理。

41%

59%
工序设计
产品宣传片专家团的完整工序如下:

50%

50%
角色契约
#DTUsvFKzgQuu text { white-space: pre; }#DTUsvFKzgQuu .fb0 { stroke: var(--N900-FG, 0.15); }#DTUsvFKzgQuu .fb0 {stroke: rgba(31,35,41, 0.15)}#DTUsvFKzgQuu .fx0 { stroke-miterlimit: 10; }#DTUsvFKzgQuu .fx0 {stroke-miterlimit: 10}#DTUsvFKzgQuu .fa1 { fill: rgb(187, 191, 196); }#DTUsvFKzgQuu .fa1 {fill: rgb(187, 191, 196)}#DTUsvFKzgQuu .fx1 { font: 400 12px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#DTUsvFKzgQuu .fx1 {font-style: normal}#DTUsvFKzgQuu .fx2 { text-anchor: middle; }#DTUsvFKzgQuu .fx2 {text-anchor: middle}#DTUsvFKzgQuu .fx3 { dominant-baseline: central; }#DTUsvFKzgQuu .fx3 {dominant-baseline: central}#DTUsvFKzgQuu .fx4 { stroke: none; }#DTUsvFKzgQuu .fx4 {stroke: none}#DTUsvFKzgQuu .fc0 { fill: var(--text-caption); }#DTUsvFKzgQuu .fc0 {fill: #646a73}#DTUsvFKzgQuu .fa2 { fill: var(--text-link-disabled); }#DTUsvFKzgQuu .fa2 {fill: rgb(187, 191, 196)}#DTUsvFKzgQuu .fa3 { fill: rgb(21, 24, 18); }#DTUsvFKzgQuu .fa3 {fill: rgb(21, 24, 18)}#DTUsvFKzgQuu .fx5 { font: 400 14px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#DTUsvFKzgQuu .fx5 {font-style: normal}#DTUsvFKzgQuu .fx6 { text-anchor: start; }#DTUsvFKzgQuu .fx6 {text-anchor: start}#DTUsvFKzgQuu .fx7 { dominant-baseline: alphabetic; }#DTUsvFKzgQuu .fx7 {dominant-baseline: alphabetic}#DTUsvFKzgQuu .fc1 { fill: rgb(255, 255, 255); }#DTUsvFKzgQuu .fc1 {fill: rgb(255, 255, 255)}#DTUsvFKzgQuu .fc2 { fill: rgb(17, 19, 14); }#DTUsvFKzgQuu .fc2 {fill: rgb(17, 19, 14)}#DTUsvFKzgQuu .fb1 { fill: var(--N900-FG, 0.15); }#DTUsvFKzgQuu .fb1 {fill: rgba(31,35,41, 0.15)}#DTUsvFKzgQuu .fb2 { fill: rgb(51, 56, 47); }#DTUsvFKzgQuu .fb2 {fill: rgb(51, 56, 47)}#DTUsvFKzgQuu .fb3 { fill: rgb(215, 219, 208); }#DTUsvFKzgQuu .fb3 {fill: rgb(215, 219, 208)}#DTUsvFKzgQuu .fa4 { fill: var(--bg-body); }#DTUsvFKzgQuu .fa4 {fill: #fff}ABCD1234567角色输入输出禁止动作主理人Brief 角色分镜师素材师剪辑师配乐师用户任务描述、素材空间产品官网、介绍文档brief.md分镜表素材、分镜表分镜表、情绪标注任务拆解、状态追踪、成片brief.md(产品定位、核心价值、目标用户)分镜表(时间码、画面、字幕、转场、动效)产品截图、概念图、界面素材逐帧 MP4 片段BGM 候选及推荐理由不跳过子任务验收直接交付不直接写脚本不引入 Brief 未确认的信息不使用无版权来源素材不改动分镜结构不只输出一个选项
专家团演示
在做产品宣传片之前,需要先把相关素材放到工作空间内。
我希望你做一个产品宣传片,具体的话,是宣传腾讯的workbuddy最新的专家团,主打opc场景。当前空间下我放了一些素材,成片风格可以偏apple风格、真实软件界面。整个过程全自动

团长先接到任务:把"做一支宣传片"拆成了一串子任务:先得搞清楚 WorkBuddy 专家团到底是什么、卖给谁、核心价值是什么;再决定叙事结构、镜头数量、节奏;然后再分头去做素材、剪辑、配乐。
brief 角色先开工:去把 WorkBuddy 官网、产品介绍、专家团列表都翻了一遍,输出一份 brief ,这是什么产品、目标用户是谁、最值得放进 60 秒的几个核心点。
分镜师接着 brief 干活:把 60 秒拆成了 7 个镜头,每个镜头都细到时间码、画面、文字、转场、动效、需要的素材类型。
然后 素材师 和 剪辑师 开始干活:一个去生成 / 抓产品截图、概念图,另一个把素材按分镜表往 HyperFrames 里塞,逐镜头渲染出每一段 MP4。
最有意思的是 配乐师:它不是简单写个"科技感 BGM"的 prompt 完事,它会先把分镜表读一遍,研究每个镜头的情绪曲线,标好哪些地方需要鼓点卡产品 reveal、哪些地方需要降下来做留白、哪些地方需要一个 hit point 推 CTA。然后再去调用音乐模型生成候选 BGM。
最后由 团长 把所有产物整合,跑最后一道剪辑,输出成片。
整个过程我基本就是个旁观者:偶尔在关键节点拍一下板,比如分镜要不要这么排、BGM 喜不喜欢、字幕文案要不要改。
共享产物层
多个 Agent 不应各自维护一份"产品事实"。建立单一产物路径:
⭕
project/
├── brief.md # 产品简报(Brief 角色产出,主理人确认)
├── storyboard.md # 分镜表(分镜师产出,主理人确认)
├── ../assets/ # 素材(素材师产出)
│ ├── screenshots/
│ └── concepts/
├── clips/ # 逐帧片段(剪辑师产出)
├── bgm/ # BGM 候选(配乐师产出)
└── output/final.mp4 # 成片(主理人整合)
并行与串行
可以并行: 素材生成与剪辑准备、不同镜头段落的渲染。
必须串行: Brief 确认后才写分镜、分镜确认后才生成素材、素材就绪后才剪辑、成片完成后才配乐合成。
并行计划必须标明汇合点。素材和剪辑可以并行准备,但最终合成必须等待所有素材就位。
主理人的职责
主理人(制片人)是工作流控制器:
•
解释用户任务并维护子任务状态;
三个必须由人确认的点
•
分发最小必要上下文给各角色;
Brief 确认:产品定位、目标用户、核心卖点是否准确;
•
检查上游产物是否满足交接格式;
分镜确认:叙事结构、镜头数量、节奏是否符合预期;
•
决定并行、等待或重试;
BGM 选择:情绪风格是否与成片调性匹配。
•
在关键节点(如分镜确认、BGM 选择)请用户拍板;
Agent 负责生成和执行,不能替代品牌方向和风格判断。
•
汇总所有产物,执行最终合成;
•
对成片做一致性检查(画面、字幕、BGM 节奏是否对齐)。
产品化路径:从自建到预置专家团
自建团队
将上述角色封装为一套 Skills,在 Agent 框架中自行编排。适用场景:开发者需要完全控制每个角色的提示词、工具权限和交接格式。门槛包括:定义角色职责、设计交接格式、调试并行与串行逻辑。
预置专家团
WorkBuddy 专家团将上述分工产品化:团长负责任务拆解和分配,团员并行执行,用户只需描述任务。
创建专家团也很简单在专家->我的专家->创建专家
就会跳转到workbuddy的对话框,根据它给定的格式即可快速创建属于自己的专家。
当前专家团覆盖的典型场景:
两种路径的选择
质量影响因素
成片质量主要受以下因素影响:
•
Agent 底座模型:Agent 模型的指令跟随和推理能力直接影响分镜质量和任务拆解准确性;
•
图像生成模型:影响产品截图的清晰度和概念图的视觉质量;
•
用户提供的素材:提前放入素材空间(图片、视频)可显著提升成片质量;
•
浏览器工具接入:若 Agent 具备浏览器操作能力,可自动抓取官网截图和产品界面,减少人工准备。
全自动方案适合快速出片(开源项目介绍视频、产品演示视频等)。对品质要求高的场景,建议以 Agent 产物为基础再做一轮人工二次剪辑。
失败传播控制
降级交付必须说明缺失内容,不伪装成完整成果。
多 Agent 任务 Brief 模板
代码块
Haskell
目标:为 [产品名称] 制作一支 [时长] 的产品宣传片。
风格:[参考风格,如 Apple 风、极简风]。
素材:[素材空间路径或已提供的图片/视频]。
角色:主理人、Brief、分镜师、素材师、剪辑师、配乐师。
确认节点:Brief 完成后、分镜完成后、BGM 选择时,需用户确认后继续。