在我之前的文章中,我论证了AI改变了约束在软件开发中的角色。
多年来,许多开发者将约束视为需要最小化的东西。动态语言比静态语言更受欢迎。无模式数据库承诺更大的灵活性。约定取代了配置。隐式行为往往优先于显式定义。
这种动机是可以理解的。约束像是摩擦。它们拖慢了我们。AI改变了这种权衡。
如今,每一条显式约束都成为宝贵的上下文,AI可以利用它更好地理解我们的系统。
数据库模式不再仅仅是验证机制。它描述了数据的结构和含义。
OpenAPI规范不再仅仅是服务间的契约。它告诉AI这些服务应如何交互。
类型定义不再仅针对编译器。它帮助AI理解API背后的意图。
约束之所以变得有价值,并非因为它们防止错误。而是因为它们传递知识。我相信同样的原则也适用于软件开发之外。它适用于业务流程。
围绕AI驱动的工作流自动化,人们抱有极大的兴奋。目前大多数方法基于自主代理。代理接收请求,分析情况,选择工具,执行动作,并决定下一步应该发生什么。
对于简单工作流,这种方法可能效果很好。但对于关键业务流程,这种架构反而引入了不必要的操作风险。
AI不仅是在执行工作。它还负责在执行过程中发现业务流程。这等于要求一个概率系统推断出本应已知的信息。
业务流程包含独立于AI的规则:
这些不是AI问题。它们是业务规则。而业务规则不应活在提示中。
当AI工作流变得更加复杂时,常见的解决方案是增加更多代理。
规划代理协调执行。
专业代理执行单个任务。
验证代理审查结果。
提示变得越来越复杂。然而工作流本身往往仍然是隐式的。工作流仅通过提示、示例和代理的涌现行为存在。
这使得过程:
难以理解。
难以测试。
难以审计。
几乎无法验证。
业务流程值得拥有更好的基础。
与其让AI推断工作流,不如显式定义工作流。
最简单且最强大的方法之一就是使用有限状态机。
有限状态机显式建模:
例如,采购审批流程可能如下:
Draft
↓
Submitted
↓
Approved
↓
Purchased
当流程处于已提交状态时,工作流可能正好暴露三个有效转换:
AI不再需要发明工作流。工作流本身定义了什么是可能的。AI只需确定哪个有效动作最合适。工作流提供边界。AI提供智能。
有限状态机的价值并不仅仅在于它约束了AI。
它使业务流程变得显式。
AI立刻知道:
它不再需要从提示、示例或先前的执行中推断工作流,而是接收到流程的精确描述。
正如OpenAPI规范帮助AI理解API一样,有限状态机帮助AI理解业务流程。
在两种情况下,显式约束都成为高质量的上下文。
这正是有限状态机变得特别有趣的地方。
与提示不同,FSM是一个形式化模型。
这意味着它不仅是显式的。
它是可验证的。
在AI代理执行工作流之前,我们就可以分析模型并回答如下问题:
这些属性可以独立于AI进行验证。这与提示驱动的工作流有根本区别。提示描述流程。有限状态机定义并约束流程。FSM成为围绕AI的可执行安全边界。
目标不是让AI变得确定。
那是不可能的。
目标是让AI运行的环境变得确定。
没有显式工作流,AI会不断问:
下一步应该发生什么?
有了FSM,对话发生了变化。
工作流说:
这些是下一步唯一有效的动作。
AI回答:
鉴于这些有效选项,哪一个最合适?
这是一个微妙但深远的架构转变。
AI不再拥有工作流。
它在工作流中导航。
当通过MCP暴露时,这个模型变得更加强大。
工作流不再暴露数十个低级工具,而是暴露其当前状态和当前可用的转换。
AI代理可以发现:
工作流变得自我描述。更改业务流程意味着更新工作流模型,而不是重写提示。AI自动将新的约束作为上下文的一部分接收。
大型语言模型是概率性的。业务流程不应如此。有限状态机并不会让AI更聪明。它让整个系统更安全。
通过将AI限制在显式定义的转换中,我们大幅降低了AI驱动工作流自动化的操作风险。
无效转换变得不可能。
每次状态变化都可验证。
每个决策都可审计。
回滚成为工作流的一部分,而非事后补救。
合规规则变得显式而非隐式。
最重要的是,AI不再决定什么是可能的。它决定如何在一个边界已定义好的流程中导航。
这正是我在之前文章中讨论过的原则。
显式模式帮助AI理解数据。
显式契约帮助AI理解API。
显式类型帮助AI理解代码。
显式工作流帮助AI理解业务流程。
价值并非来自添加更多约束。而来自让正确的约束变得显式。
随着AI越来越多地负责业务运营,我相信我们将越来越少地依赖试图推断业务流程的自主代理,而更多地依赖显式工作流模型——它们以人类和AI都能理解的方式定义这些流程。
AI工作流自动化的未来不是无限自主。而是受控自主。AI提供智能。显式、可验证的工作流模型提供正确性。AI的角色不是拥有工作流。其角色是智能地导航它。
而这就是约束从摩擦转变为业务价值的地方。
——
一个热爱技术的程序员,喜欢分享前沿AI知识和开发经验。