Floniks
返回博客
产品更新9 分钟阅读

一个 Agent 搭出并发布了三条工作流:完整日志

我们把 Floniks 通过 MCP 交给一个 AI agent,让它去补模板库的缺口。它设计了三条流水线、撞上两个真实 bug、自己诊断、重新设计绕过去,最后发布成公开模板——全程没打开过编辑器。

作者: Marcus Reed
一个 Agent 搭出并发布了三条工作流:完整日志

我们通过 MCP 服务把 Floniks 交给一个 AI agent,让它去补上模板库里的一个缺口。接下来的一个小时里,它查了我们的节点目录,设计了三条多步流水线,跑通它们,撞上两个真实的 bug,把两个都诊断清楚,重新设计绕过去,最后把成果发布成了公开模板。全程没有人打开过编辑器。这是那份日志。

我们把它写出来,是因为有意思的地方不是"agent 生成了一张图"——现在很多工具都能做到。有意思的地方是它调试的过程。

这个任务,以及它为什么是真的

我们的模板库有个洞。我们有一批落地页在争取商业前期制作类的流量——分镜、TVC 预演、短剧策划——而在大约 400 个工作流模板里,真正服务这些场景的是零个。用户从搜索点进来,无处可去。

所以任务很具体:找到缺口,设计能填上它的流水线,证明它能跑,发布出去。

第一步:先摸清情况

Agent 的第一个动作不是生成任何东西。它调了 list_node_types,把目录读了一遍——输入、处理、AI 模型、输出四类共 33 种节点。然后调 list_model_aliases,看哪些模型是启用的、每次运行各自多少积分。

接着它做了一件我们没料到的事:用 get_workflow 拉了一个现成的、能跑通的模板,把它的节点与连线 JSON 研究了一遍,然后才开始写自己的。照抄一个已经成立的形状,而不是猜。

第二步:第一个坏掉的东西

第一条流水线用了我们的 storyboardSplit 节点——一个把剧本拆成镜头表的 LLM 步骤。Agent 接好线,跑起来,任务停在第 1 步、百分之六,然后再也没动过。

没有报错。没有失败状态。就是一个永远不会结束的任务。

Agent 对自己刚存的图调了 get_workflow,把发出去的和存下来的做了比对。差异只有一行:storyboardSplit 节点回来时带着 "model": []——一个必须要模型的节点,模型数组是空的。这是我们这边的 bug,而且是很阴的一种,因为它不暴露自己。类型检查过得去,保存成功,运行就是不结束。

Agent 没有等我们修,而是重新设计。它去掉了 LLM 拆分器,改用四条显式的、可编辑的镜头提示词——结果这反而是个更好的模板。用户现在能直接看见并修改每一个镜头,而不是把结果托付给一次看不见的拆分。

第三步:第二个坏掉的东西,以及那个把产品变好的修法

重新设计的流水线跑起来了。但它只返回了一张图,不是四张。

最顺手的判断是"某个节点抽风了"。Agent 没有接受这个判断,而是去验证它:把这张图又跑了一遍。第二次同样只回一张——但是不同的那一张。第一次回的是第 2 帧,第二次回的是第 1 帧。

这就排除了"某个节点坏了",把矛头指向执行器。Agent 那张图是四条互不相干的链——四个提示词、四个生成器、四个输出,彼此不接触,也就是四个互不连通的子图。而它早先研究过的那个能跑通的参考模板,所有分支共享同一个根节点。结论:多输出的运行要求整张图是单一连通分量。

修法才是精彩的地方。Agent 没有硬塞一个假的共享根节点,而是把帧串了起来——每一帧都拿上一帧当视觉参考来生成:

提示词 1 → 帧 1 ─┬→ 输出 1
                 └→ 帧 2 ─┬→ 输出 2
                          └→ 帧 3 → …

单一连通分量,执行器就会把所有输出都返回。而且因为每一帧都参照了前一帧,同一个人物贯穿了四个镜头——这恰恰是这个模板要解决的问题本身。运行时的一个限制,变成了一个功能。

一次运行产出的四帧分镜:同一位女演员、同一件奶白色针织衫、同一套色调,从黎明前的冷蓝一路走到金色时刻的街头。
一次运行产出的四帧分镜:同一位女演员、同一件奶白色针织衫、同一套色调,从黎明前的冷蓝一路走到金色时刻的街头。

第四步:只有看成品才会发现的细节

第一次成功的运行回来的是 2048×2048——正方形——尽管提示词里用大白话写着要 16:9 的画幅。

画幅比例是模型参数,不是你在散文里提的一个建议。Agent 调了 get_model_params,发现 aspect_ratio 默认是 1:1,而 16:9 在可选值里,于是把它写进节点配置重跑。第二次:2560×1440。

这是件小事,但很重要。一个只读自己提示词的 agent 会把正方形的分镜发出去,而且永远不会知道。这一个去核对了成品。

最后发布了什么

三个模板,每个都带四张真实生成的帧作为预览图:

  • Script → 4-Shot Cinematic Storyboard——16:9,用于 TVC 预演和广告片提案。
  • Short Drama: Script → 4 Vertical Key Scenes——9:16,色调刻意随剧情从冷蓝走到暖金。
  • Character Sheet: One Description → 4 Consistent Views——正面、四分之三侧、全身,外加一张实景镜头。

三个都已经上线在模板库里,而且三个都是通过 MCP 服务完成编写、执行、校验与发布的,编辑器一次都没被打开过。

真正的收益在哪:资产,而不是提示词

上面三个模板是流水线。它们底下更大的那个想法是:当你不再把被拍的对象当成每次都要重新描述一遍的东西时,会发生什么。

Floniks 存两类持久化资产。create_character 生成一张参考表——正面、侧面、背面三视图——作为这个角色的标准长相保存下来。create_location 一次生成两样东西:一张电影感定场镜头,和一张同一地点不同机位的六格网格。场景还带 persistent_props——每次在这里拍都必须出现的物件——以及 time_of_day

最后这个细节才是关键。道具清单挂在地点上而不是挂在提示词里,才使得那面裂开的镜子能在第一集和第四十集都待在同一个角落。

一旦对象成了资产,经济账就反过来了。用提示词描述一个人,每次都是重新掷一次骰子。引用一个资产几乎不花什么,而且随着素材积累会越来越稳

它能解锁的一部分:

  • 签约模特。 铸一个人,然后让她穿每日穿搭、换发型、走季节 lookbook、换旅行背景。周一到周五脸不会漂,整条内容流看起来是同一个人,而不是一串图库素材。
  • 常驻场景。 一家咖啡馆、一间展厅、一套公寓——用 persistent_props 锁死连续性,再用 time_of_day 重新打光,同一个空间给出黎明、白天、黄昏、夜晚四个版本。
  • 连续剧集。 角色资产 + 场景资产一起用。第十二集直接复用第一集的演员和布景,不需要任何人重新描述其中任何一样。
  • 品牌吉祥物 / 虚拟主播。 一个角色资产,然后无限量的活动、节日、公告变体——全都明确是同一个形象。
  • 数字代言人。 把角色和数字人、语音能力接起来,同一个主持人出现在每一条讲解视频里,音色任选,不用开机器。
  • 一次拍摄的多语言版本。 同一个角色、同一个场景,按市场换配音和烧录字幕。
  • 音乐与 MV。 跨专辑保持同一个艺人形象,同一张图里用 textToMusicaudioBeatDetecttempoMatchedCut 把画面剪到卡点上。
  • 制作圣经。 做漫画、游戏、动画时,角色参考表本身就是交付物——正/侧/背三视图正是美术团队要的东西。

需要坦白的一个缺口:目前没有商品 / SKU 资产类型。 角色和场景是一等公民,商品不是。做电商时,你需要把商品图作为参考图传进工作流——这条路走得通,我们的商品摄影模板就是这么运作的,但它和"一个存下来、可寻址的 SKU"不是一回事。这是显而易见的下一个资产类型,我们心里有数。

把三样东西拼起来——一个存下来的资产、一条存下来的流水线、一个能同时调用两者的 agent——常规产出就不再需要人在环里。Agent 列出你的角色,挑一个,跑流水线,发布。这个闭环才是所有这些东西值得做的理由。

这和"一个会生成图片的 agent"差在哪

大多数创意类 MCP 服务暴露的是生成端点。你指定模型要一张图,它回你一个 URL。Agent 是个遥控器。

这次 agent 做的事在性质上不同。它读了可用的积木,拼出一张多步的图,跑起来,检查的是成品而不是运行状态,找出两个缺陷,对每一个都形成了假设,用一次受控的第二轮运行验证了其中一个,然后据此重新设计了架构。最后把成果发布成了别人可以复用的资产。

那不是遥控器。那是"调用一个模型"和"拥有一条流水线"的区别——而这只有在工作流图本身可以通过 API 寻址、而不只是渲染结果可寻址时,才可能发生。

顺带一提,这两个 bug 我们收下了。用这种方式发现它们,比没发现要好。

常见问题

用 MCP 服务需要写代码吗? 不需要。你在支持 MCP 的客户端(比如 Claude Desktop)里把 Floniks 接为 MCP 服务,然后用大白话提要求即可。工具调用会代你完成。

Agent 运行会消耗我的积分吗? 会。Agent 发起的运行和你自己发起的运行使用同一份余额,每个模型每次运行的成本在执行前可以通过 list_model_aliases 看到。Agent 也可以先调 get_credit_balance 确认。积分永不过期——一旦进了你的账户,就一直留到你花掉为止。

工作流中途失败了会怎样? 失败运行的积分会自动退回,get_task 会连同失败状态一起返回错误信息,agent 可以据此决定重试、改参数还是重新设计。在上面那次运行里,卡死的任务没有产出可用结果,agent 直接换了方案而不是盲目重试。

Agent 能发布模板给别人用吗? 能——create_template 会把一个工作流发布成带预览图的公开模板。本文里的三个模板就是这么发出去的。

为什么要把帧串起来,而不是并行生成? 串起来能让每一帧拿上一帧当视觉参考,这正是让同一个人物贯穿各镜头的原因。并行更快,但人会漂——换张脸、换身衣服——而这恰恰是这些模板存在的意义。

去试试

三条流水线都在模板库里——打开一个,把镜头提示词换成你自己的故事,跑一遍。如果你更想用 agent 来驱动,MCP 服务把同样的图暴露成了可调用的工具,而工作流编辑器是你查看 agent 究竟搭了什么的地方。

标签

#product-update#mcp#ai-agents#workflows#character-consistency#storyboard

相关文章

Agent 搭出并发布三条 AI 工作流:完整日志 | Floniks