首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >状态机在 LLM 应用中的价值:以糖糖写作 8 环节写作流程为例,聊聊AI写作工具"失控"是怎么发生的

状态机在 LLM 应用中的价值:以糖糖写作 8 环节写作流程为例,聊聊AI写作工具"失控"是怎么发生的

原创
作者头像
用户12865354
发布于 2026-11-02 20:02:52
发布于 2026-11-02 20:02:52
331
举报

一、AI写作中常见的问题:LLM 应用的四类"失控"

一个不带显式流程的 LLM 应用,出问题时通常落在四类里:

失控类型

现象

根因

跳步

该先做规划,模型直接开始写正文

没有"当前步骤"这个概念,只有"下一句话"

隐式状态

用户改了前面的设定,后面还在按旧设定走

状态只存在对话历史里,不可寻址

不可回滚

改坏了只能重开一个对话

没有检查点

不可观测

出了问题不知道是哪一步错的

没有环节边界,日志是一整条流水

这四类问题的共同点:它们都不是模型能力问题,是控制平面缺失。

一个很自然的反例是"那就让模型自己规划步骤"。实践里这条路的失败率很高,因为步骤的合法性是流程知识,不是语义知识——模型知道"接下来该写什么"(语义),但不知道"现在允不允许写"(流程)。

二、为什么状态机能解决,以及它到底换来了什么

2.1 状态机的三个动作

一个够用的流程状态机只需要三件事:

  1. 状态定义:有哪些环节、每个环节的产出是什么;
  2. 准入校验:进入下一环节前,检查上一环节的必需产出是否齐全;
  3. 闸门:不齐就不放行,并把"缺什么"告诉调用方(人或上层程序)。

三件事里,只有第三件有难度。 前两件是列表,第三件是产品设计——因为它决定了失败的时候,人是能修,还是只能重试。

注意闸门的返回值。 它必须返回"缺哪个字段",而不是一句"校验未通过"。前者可修,后者只能重试——重试是 LLM 应用里最贵的动作:一次重试是钱,十次重试是人的耐心。

2.2 换来的四样东西

收益

具体含义

可回滚

每个环节有检查点,退回上一环节不等于重跑全书

可观测

日志按环节切分,能定位"是哪一步产生的错"

可审计

每个环节有明确产出字段,可以逐条比对

可分工

不同环节可以换模型、换参数、换人,接口不变

一本书写到第 80 章才发现第 5 章的人设没定,返工量是 75 章;如果在第 5 章卡住 3 分钟,返工量是 0。

2.3 一个 8 环节写作流程作为例子

环节

产出(这一步要交出什么)

闸门检查什么

1

构思

题材方向、核心设定

是否给了"这本书为什么值得读"

2

深化构思

故事核四问、因果骨架

四问是否各自有答案(不是标签齐全)

3

人物种子

人物卡(含能力边界、别名)

主配角是否都有能力边界

4

全书规划

分卷架构、逐章目录

目录是否连续、无缺行

5

章节框架

单章结构、场景、戏眼

本章是否指向主线

6

初稿

章节正文(2400–3000 字)

字数区间、禁忌扫描

7

审查

一致性核查结论

是否逐条比对过台账

8

定稿

入库 + 摘要回写

摘要字段是否齐全

这个表就是状态机的全部。 它的价值不在"分了 8 步",而在每一步都有一个"不满足就不许往下走"的条件。

三、实测条件与判据

项

值

测试时间

2026 年 9 月 – 2026 年 10 月

模型

DeepSeek V4.1 Flash(全流程同一模型)

流程

8 环节状态机,每环节等待确认

单章目标字数

2400–5000 字

连续推进

260 章 / 70 多万字

记录方式

每环节落库一次,记录状态、字段、耗时

判据(什么算"状态机失效"):

  1. 越权推进:必需字段缺失但流程仍进入下一环节;
  2. 状态丢失:进程重启后无法恢复"当前在第几环节";
  3. 死锁:某环节反复不通过且无人工通道,流程永久卡住。

四、数据

指标

值

说明

连续推进

260 章 / 70 多万字

单部作品

越权推进

0 次

闸门拦截

状态丢失

0 次(进程重启可恢复)

状态持久化

返修率

约 8%

主要为薄章与场景重复,属质量波动非崩坏

单章上下文

6–7 万字符

不随章数增长

人工介入点

每环节一次确认;跨卷由系统自动拉起

设计如此,不是缺陷

免责:以上为内部实测记录,不代表他人复现同样结果。

五、失败案例

案例 1:深化构思环节"语义写对了、字面判缺"

现象:深化构思要求产出故事核四问(谁被困在两难中 / 被什么逼 / 不得不做什么 / 不做会失去什么)。模型连续 3 次没按字面标签输出,闸门一直拦。

原因:指令只给了语义描述,校验却按字面标签匹配。内容其实写对了,只是没打标签。

处理:补全指令里的字面标签,并改成"只打回第 1 次,第 2 次起放行"。代价:单次多花 3–5 分钟。

教训:闸门的判据必须和生成的指令共用同一套字段名。 判据与指令各写一套词,闸门就会变成噪音源。

案例 2:分卷目录缺行,用户要点 3 次才通过

现象:全书规划里 330 章的目录缺了第 41–50 章。自愈指令要求"从第 1 章补到本卷末",模型每次补一大片,仍漏那几行,用户点了 3 次。

原因:自愈指令的补全范围过大——让模型"补全整卷",它就会重写整卷,而重写又可能漏别处。

处理:把"缺失行列表"直接传给自愈指令,改成"只补这几行"。兜底方案:目录类字段允许直接从结构化数据生成,不让模型自由输出。

教训:状态机的自愈动作要"最小化"。范围越大的自愈,越像重来一次。

案例 3:状态机卡死,没有逃生通道

现象:某环节因上游条件反复不满足,流程原地循环,用户没有任何办法往下走。

原因:只设计了"确认"和"重试",没设计"绕过"。状态机一旦没有 escape hatch,就会把一次可恢复的失败变成一次不可恢复的失败。

处理:加了三个键的语义——

  • 确认键:当前环节看过了,放行;
  • 修改键:只改当前环节,不跳转;
  • 自由输入键:权限最高,专门处理"突然要塞一句话进去改前一章剧情"这类非常规情况,平时用得很少。

教训:状态机不是越严越好,是越"可解释地放宽"越好。 逃生通道要写在设计里,不要等出事再临时开。

六、边界:什么时候不该上状态机

不适合:

  1. 单轮任务(翻译、摘要、单次问答)——没有环节,状态机是纯开销;
  2. 高频低价值调用(分类、抽取)——闸门与确认带来的延迟不划算;
  3. 流程本身还没稳定的——流程一天改三次时,状态机会变成维护负担;先稳定流程,再把它写成状态机;
  4. 用户不接受"停下确认"的——每个环节停下等人确认是设计的一部分,不是 bug。想"一句话出结果"的场景,状态机一定是负体验。

七、结论:三条可复制的建议

  1. 先定义"这一步算不算完成",再定义"这一步要做什么"。 大多数人反过来做:写得出一堆 prompt,说不出验收条件,于是流程永远推不动。
  2. 闸门返回"缺什么",不要返回"不通过"。 可修的报错才叫报错,不可修的报错叫随机失败。
  3. 一定要留逃生通道。 一个没有 escape hatch 的状态机,会在第一次异常时变成一堵墙。

附:常见疑问(Q&A)

Q1:状态机和 workflow 引擎(如各类编排框架)是一回事吗? A:形态上像,重点不同。编排框架管"调用顺序与重试",状态机这里管的是**"上一个环节的产出是否满足下一个环节的准入条件"**——后者是业务语义,框架本身不提供。

Q2:为什么不让模型自己判断"现在能不能进入下一步"? A:因为准入判断是确定性的规则,不是语义判断。让模型判,会出现"它觉得可以"的随机性——而这一步错了,后面全是错的。

Q3:状态机不会让整个应用变得很慢吗? A:会,而且这是明码标价的代价。我们的做法是把"慢"放在环节边界上(等人确认),把"快"放在环节内部(连续生成)。如果你的场景不能容忍任何停顿,状态机就不合适。

Q4:环节数量多少合适? A:够用就好。8 个是我们这个场景的数,不是通用答案。判断标准是:每个环节是否有一个独立的、可验收的产出。没有独立产出的环节应该合并。

Q5:状态存在哪里? A:不重要的细节。文件、数据库、对象存储都行。唯一的要求是"进程重启后能恢复当前环节 + 该环节的字段"。我们早期就是文件,够用很久。

Q6:这套东西跟"AI Agent"是什么关系? A:Agent 关注"自主决策下一步做什么",状态机关注"约束它只能做合法的那一步"。两者不冲突——越是自主的 Agent,越需要显式的准入边界,否则它会在错误的方向上高效地跑很远。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、AI写作中常见的问题:LLM 应用的四类"失控"
  • 二、为什么状态机能解决,以及它到底换来了什么
    • 2.1 状态机的三个动作
    • 2.2 换来的四样东西
    • 2.3 一个 8 环节写作流程作为例子
  • 三、实测条件与判据
  • 四、数据
  • 五、失败案例
    • 案例 1:深化构思环节"语义写对了、字面判缺"
    • 案例 2:分卷目录缺行,用户要点 3 次才通过
    • 案例 3:状态机卡死,没有逃生通道
  • 六、边界:什么时候不该上状态机
  • 七、结论:三条可复制的建议
  • 附:常见疑问(Q&A)
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档