AgentHubAgentHub
Back to Blog

状态机驱动的确定性 Agent 架构:平衡大模型创造力与工业级可靠性

AgentHub 核心团队··4 min read·54 views
状态机驱动的确定性 Agent 架构:平衡大模型创造力与工业级可靠性

灵活性 vs 确定性的永恒矛盾

大模型的魅力在于其模糊推理与强大的通识解决能力,但工业级系统的核心底线是确定性(Determinism)与可预测性。如果一个智能体在部署上线时偶尔会跳过代码测试步骤直接上线,那它就是不可用的。


状态机边界包络架构

在我们的架构中,大模型被限制为“状态内部的执行引擎”或“转移条件的判断函数”,而不能随意决定下一步的状态跳转:

  • 状态机严格定义合法状态集:[INIT, PLAN, CODE, TEST, REVIEW, DEPLOY, ROLLBACK];
  • 每个状态定义明确的进入条件、超时策略与退出断言;
  • 只有当 TEST 状态的所有自动化检查通过后,状态机底层代码才会执行状态迁移,模型无权越级。

落地步骤:把自由循环改造成受控状态机

  1. 画转移表。从业务里真实存在的阶段出发列状态,再显式写出每个状态允许去向哪些后继状态,未写出的迁移一律非法;
  2. 收敛模型权限。模型只能出现在两类位置:状态内部产出内容(如 CODE 阶段写代码),或作为转移条件的建议者输出候选,最终由确定性代码校验并裁决;
  3. 给每个转移配断言。退出条件必须是机器可判定的(测试通过、构建成功、评审通过),不能是"模型认为完成";
  4. 持久化状态与事件日志。每次迁移先落盘再执行副作用,进程崩溃后从上一个合法状态恢复,而不是从头重跑。

粒度取舍:状态机该画多细

粒度适用场景优点代价
粗(5–8 个状态)常规研发流水线实现快、易沟通单状态内部仍有失控空间
中(阶段再分子状态)多工具协作的长任务断言覆盖更细转移表维护量上升
细(每步外部动作一状态)金融等高合规场景几乎无自由发挥余地灵活性明显下降

经验值:先从粗粒度起步,只有在某个状态里反复出事故时才向下拆分,避免一开始就建成难以演进的巨型状态图。

验证方法:回放与故障注入

两个可执行的验收动作。回放测试:同一输入集重复运行若干轮,比对状态轨迹序列,非法转移数必须为零;故障注入:分别让 TEST、REVIEW 阶段的检查失败,确认系统按转移表走向预期的回退或 ROLLBACK 状态,而不是卡死或跳过。配合 人在回路(Human-in-the-Loop)中断与恢复架构:让关键决策始终受控 处理需要人工裁决的分支,可靠性会更完整。

常见故障速查

现象原因处理
任务在两个状态之间来回抖动转移条件互相矛盾补全转移表并设最大循环次数
模型输出匹配不到任何后继状态判定函数返回了枚举外的值输出限定为合法枚举并加解析重试
超时后状态永久悬挂未配置超时策略每个状态设超时并指向显式失败态
恢复后副作用被重复执行先执行后记录迁移前先持久化意图日志

小结

这套架构是否落地成功,标准只有一条:任意一次线上运行的日志里,都能还原出一条完整、合法、可回放的状态轨迹,且没有一次"检查未通过却发生了迁移"的记录。如果模型仍偶尔绕过检查,问题不在提示词,而在转移裁决代码没有真正收回写状态的权力——先修权限,再谈优化生成质量。

延伸阅读

有限状态机驱动的确定性 AI Agent 架构 - AgentHub