CHAPTER 5 · EP 23

AI 生图 · Agent Loop

第 5 章 · 第 23 讲 · 16:16

时长 16:16音色 云健 · 男声章节 5

同步字幕

章节导航(点击跳转)

0:00开场0:58
0:58文生图、垫图和那层翻译2:58
3:56角色一致性1:37
5:33模型会挂,然后呢1:30
7:04调通接口只是百分之十1:49
8:53教科书三步,以及它卡死的样子2:55
11:48防呆是三层网1:44
13:33别让用户干等1:12
14:46可带走的判断清单1:29
解读全文

ep23 · AI 生图 · Agent Loop

  • 模块:M5 工程可行性
  • 课节:9 节(文生图 vs 垫图 / 用 AI 给 AI 写 Prompt / 角色一致性 / 模型会挂,然后呢 / 生图的产品化清单 / 教科书的 3 步 vs 真实的 N 步 / 为什么 Agent 会卡死 / 防呆设计 / 流式体验)
  • 来源:xueai.miyang.cn(小山学堂 · 洛小山《学 AI 产品,从入门到精通》)
  • 配套音频:pm23-m5-播客.mp3

这一集解决什么问题

两个最容易出现「演示惊艳、上线翻车」的领域:

  • AI 生图:为什么同一个角色每次画出来都不一样?调通接口之后,到用户真能用之间还差什么?
  • Agent 循环:教科书的三步,为什么到生产环境变成几十步?它卡死时用户到底看到什么?
核心论点:演示里跑通一次,和每天几万次都稳定跑通,中间隔着的是产品化,不是技术。

能力地图

主题关键判断可落地动作
文生图 vs 垫图涉及角色 → 必须垫图按场景选模式的决策表
Prompt 翻译用户语言 ≠ 生图模型语言LLM 翻译层是必要架构
角色一致性设计问题,不是参数问题角色参考表(Character Sheet)
降级链用户不关心哪个模型挂了优先级 + 探活 + 垫图降级
产品化清单调通 API = 10%体验 / 质量 / 工程 / 安全四维
Agent 真实循环教科书 3 步 ≠ 生产 N 步六类隐藏逻辑
卡死模式用户只会说「慢/蠢」四种典型模式的识别
防呆三层网,不是一道墙硬限制 / 检测 / 降级
进度感≠ 进度条三原则 + 五种手段

一、文生图 vs 垫图:两种完全不同的事

文生图(Text-to-Image)垫图(Image-to-Image)
输入只有文字参考图 + 文字
机制模型凭想象力生成模型以参考图为锚生成
角色外貌每次靠运气每次都长一样

场景决策表

场景推荐模式原因
纯背景 / 环境图文生图不涉及角色
食物、物品特写文生图无需人物一致性约束
角色出镜垫图必须保证还是同一个角色
角色换装垫图脸不变衣服变,必须有脸部参考
多场景系列图垫图一组图里角色外貌需一致
创意发散 / 概念探索文生图不需要锁定形象,越多变越好
在有固定形象的产品里,绝大多数出图都走垫图——用户不能接受「每次角色长得不一样」。

二、用 AI 给 AI 写 Prompt

用户说「Alice 在阳台发呆」,但生图模型需要的是一长段精确的视觉描述。中间有一个翻译步骤:用 LLM 把人话翻译成生图语言。

翻译前:Alice 在阳台发呆

翻译后:一位年轻女性站在洒满阳光的阳台上,靠着栏杆,望着远方,表情有些出神。齐肩深色头发,白衬衫,小星星项链。柔和午后光线,阳台有盆栽,背景虚化城市天际线。插画风格,暖色调,安静氛围,半身到全身构图。

为什么需要这一层

  1. 用户不会写生图 Prompt——他不知道要指定「golden hour lighting」还是「illustration style」。
  2. 生图模型无法理解模糊意图——「发呆」不是一个视觉描述。
  3. 每个模型的方言不同——不同生图模型偏好的 Prompt 风格各异。
这不是锦上添花,这是必要架构——每一次出图背后都有一个 LLM 在做翻译,把一句话扩展成几百 token 的详细视觉描述。

三、角色一致性:最难的产品问题

问题有多严重

用同一句文字描述连续生成四次:

  • 脸型每次都不同
  • 发型和长度在变
  • 体态比例不一致
  • 画风也有偏差
结论:纯靠文字无法锁定一个角色的视觉身份。

有参考图之后

同样的角色在四个场景(书房、厨房、阳台、办公)中:脸型始终一致、发型颜色稳定、身材比例不变,只有场景和动作在变。

关键武器:角色参考表(Character Reference Sheet)

一张标准化的角色参考图,每次生图都作为参考一起发给模型。它锚定三样东西:

锚定项说明
脸型 & 体型锁定五官比例、身材轮廓、发型长度
表情风格多种表情变体,让模型理解这个角色的表情范围
穿搭风格标志性服装,换装时只换衣服不换脸
角色一致性是产品设计问题,调参数解决不了。 解法是参考图锚定策略,不是把 Prompt 写得更长。

四、模型会挂,然后呢?

用户说「帮我画一张图」,背后可能是主力模型超时、备选限流、第三备选也出错。用户不关心哪个模型挂了,他只关心图能不能出来。

降级链如何工作


模型 A 超时 15 秒 → 超时熔断 → 降级
切换到模型 B     → 接管,用户无感知
模型 B 限流错误  → 继续降级
切换到模型 C     → 第三备选顶上
模型 C 成功出图  → 用户拿到图片,全程感知不到切换

全部失败 → 友好降级:「抱歉服务繁忙,已加入队列稍后通知您」。

用户最差也只是多等几秒或收到一句友好提示,永远不会撞上冷冰冰的错误页面。

三个产品思路

  1. 优先级排序 + 白名单——不同场景指定不同模型组合(角色出镜用效果最好的,纯背景用便宜快速的)。
  2. 探活机制——定时检测健康状态,已宕机的直接跳过,恢复后自动上线。不把用户等待时间浪费在已死的模型上。
  3. 垫图降级——备选模型不支持垫图时,退化为纯文生图,质量降低但至少能出图。

五、生图的产品化清单:调通 API 只是 10%

调通生图 API 只花了一天;从那一天到用户真正能用,还做了三个月的产品化工作。

体验层

项说明
生成进度反馈「正在画…」状态动画 + 预计时间,不让用户面对空白屏幕
失败重试机制一键重试,不用重新描述需求
结果预览与选择一次出多张供选择,支持放大预览
历史记录回看、重用、对比

质量层

  • 参考图 + Prompt 优化 = 稳定高质量(一致性 + 最佳输入格式,双重保障)
  • 尺寸适配:头像 / 聊天配图 / 宽图自动适配
  • 质量兜底:检测并过滤模糊、变形等明显劣质结果

工程层

  • 模型降级链(可用性)+ 超时与重试(体验)+ 成本控制(不亏钱)——缺一不可
  • 结果持久化:图片存对象存储,不丢失、能溯源、支持回看

安全层

  • 输入内容审核:过滤违规 Prompt
  • 输出内容审核:即使 Prompt 没问题,结果也要过审
  • 版权风险控制:避免与已有作品高度相似
  • 隐私保护:用户参考图不泄露、不训练,存储策略透明
这张清单不只适用于生图。 任何 AI 功能从 Demo 走向 Production,都需要在体验、质量、工程、安全四个维度做到位。

六、教科书的 3 步 vs 真实的 N 步

教科书版 ReAct:Think(思考)→ Act(调用工具)→ Observe(拿到结果)→ 循环。

真实生产版:每一轮循环里,教科书省略的部分恰恰是让 Agent 稳定、安全、可用的关键:

隐藏步骤解决什么
上下文压缩对话越来越长,不裁剪就会超出窗口
权限校验这个工具用户有没有权限调?参数合不合法?
并发调度多个工具能同时跑吗?怎么协调?
错误处理工具超时了怎么办?返回格式错了怎么办?
结果回写写回上下文、更新状态、触发通知
安全审计记录每一步,出问题可追溯
真实的 Agent 每转一圈,要做的事比你想的多 5 倍。

七、为什么 Agent 会卡死

实验室里的死循环很好发现;生产环境的卡死更隐蔽——用户不会说「你的 Agent 死循环了」,他只会说「你的 AI 怎么这么慢」或者「它是不是傻了」。

四种生产环境特有的卡死模式

模式表现用户看到典型场景
同参数死循环连续 3 次用完全相同参数调同一工具「它转了好久都没反应」反复读同一文件、搜同一关键词
收益递减跑 50 轮但几乎没产出有价值内容「等了两分钟,结果就给我这?」只做整理格式、反复确认等边缘操作
文本复读开始重复自己说过的话「它在说车轱辘话」长对话后期、上下文接近上限、任务模糊
工具雪崩一个工具挂了,疯狂重试拖垮整条链路「它好像卡住了」「等好久突然说失败」外部 API 限流、连接池耗尽、第三方宕机

关键提醒:第三种模式里模型并没有卡住,它已经迷路了。识别这些模式,是做防护的前提。


八、防呆设计:三层网,不是一道墙

层策略具体手段
硬限制(无条件刹车)最后兜底迭代上限(如 50 轮)· 总超时(如 3 分钟)· 单工具次数上限(如同一接口最多 5 次)
检测类(发现异常预警)及时发现同参数检测 · 同工具名检测 · 收益递减检测(10 轮新内容 < 50 字判定空转)
降级类(优雅续命)先不直接停注入纠错提示「你已经重复了 3 次,请换一种方法」· 禁用故障工具 · 强制总结当前进度

层次关系


发现异常 → 降级类尝试自救
自救失败 → 检测类上报
最终     → 硬限制兜底
大多数情况下,Agent 应该被温柔地纠正,粗暴杀死是下策。 对用户来说,带着半成品回来比空手而归好得多。

九、流式体验:别让用户干等

后台跑 30 秒,用户屏幕上应该看到什么?同样是等 30 秒,有没有进度感,体验天差地别。

进度感三原则

  1. 让用户看见过程——别只给一个转圈,展示「搜索中 / 分析中 / 整理中」
  2. 让进度可感知——「找到 3 条结果」「已分析 2/5 个文件」,有数字、有变化
  3. 让输出渐进出现——逐字流出,流式输出本身就是最好的进度条

五种常见手段

手段示例
状态文案「正在搜索相关信息…」→「找到 5 条结果,正在分析…」
工具展示展示正在调用的工具名与参数
流式输出文字逐 token 显示,让等待变成阅读
阶段标记「第 1 步 / 共 3 步」——无法精确预估时,分阶段也比不分好
中间产物先给粗略结果再精化(先大纲,后细节)
用户能忍受等待,但不能忍受不知道在等什么。进度感 ≠ 进度条——核心是让用户觉得「AI 在认真干活」。

约束说明(务必读完)

  1. 垫图不是万能的。参考图解决的是视觉一致性,不解决事实正确性与版权问题。
  2. 降级链有质量代价。从垫图退化为文生图时,角色一致性会丢失——这是「出图」与「出对图」之间的取舍。
  3. 产品化清单是通用基线,不是完整清单。不同业务的安全合规要求差异很大,需按行业补充。
  4. 硬限制的数值是示例。50 轮 / 3 分钟 / 5 次需按你的任务类型实测调整,不要直接照抄。
  5. 卡死的四种模式可以叠加出现。真实事故往往是「收益递减 + 工具雪崩」同时发生。
  6. 进度感不能伪造进度。展示的步骤必须是真实发生的,虚构进度被识破后的信任损失更大。

审查清单

  • 涉及角色的出图,是不是都走了垫图?
  • 用户的话和生图模型之间,有没有翻译层?
  • 角色一致性是靠参考表解决的,还是靠调参?
  • 主力模型挂掉时,有没有降级链?全挂时有没有友好提示?
  • 有没有探活机制,避免把等待浪费在已死模型上?
  • 体验 / 质量 / 工程 / 安全四维清单是否都过了一遍?
  • Agent 每一轮里,权限、压缩、容错、审计是否都在?
  • 四类卡死模式是否都有对应检测?
  • 防呆是否是三层网(硬限制 / 检测 / 降级)?
  • 等待过程有没有真实可见的进度?

实践提示

提示1 · 用「有没有角色」决定模式

角色出镜、换装、系列图一律垫图;纯背景和创意发散才用文生图。这条分界线能解决八成的生图选型争论。

提示2 · 把翻译层写进架构图

用户说人话,模型要视觉描述。这一层不是优化项,是必要架构——缺了它,用户永远觉得「出图质量不稳定」。

提示3 · 一致性靠资产,不靠参数

做一张标准化的角色参考表,把脸型、体型、表情范围、标志性穿搭都定下来。这比调一百次提示词都管用。

提示4 · 防呆要能「带伤返回」

不要一发现异常就杀死 Agent。先注入纠错提示,再禁故障工具,最后强制总结进度——带着半成品回来,远好过空手而归。

提示5 · 进度感必须真实

展示「第 2 步 / 共 5 步」之前,先确认你的链路真的有五个可辨识阶段。虚构的进度被识破,代价远大于老实转圈。


常见问题

Q:垫图能保证角色百分百一致吗?

不能保证百分百,但能把脸型、发型、体型稳定下来。它解决的是「视觉身份」,不是像素级复刻。

Q:降级到不支持垫图的模型怎么办?

退化为纯文生图,明确告知质量会下降。能出图优先于出对图,但不要假装没降级。

Q:Agent 卡死时该直接终止吗?

下策。先让降级类尝试自救(纠偏、换工具、总结进度),硬限制只作最后兜底。

Q:为什么用户不直接报告死循环?

因为用户看不到日志。他只会说「慢」或「蠢」——所以要靠检测类策略主动识别,不能等反馈。

Q:流式输出能替代进度条吗?

在文字生成场景可以,它本身就是最好的进度条。但工具调用阶段仍需状态文案与阶段标记。


一句话总结

AI 产品的分水岭,从来不在演示那一刻,而在它第几万次运行的时候还能不能稳住。


来源:xueai.miyang.cn(小山学堂 · 洛小山《学 AI 产品,从入门到精通》)

本页文字与音频为基于小山学堂原课程的二次演绎版本,仅供学习交流使用。