内容提要
Prompt仅改变语义概率,无法保证系统可靠。复杂任务存在语义、状态、环境、目标、执行、安全六类不确定性,需通过工作流构建结构、状态、执行、数据、安全、认知六层防线。Prompt负责理解生成,工作流负责边界与恢复。复杂任务应采用混合架构,硬约束外置,不能只依赖Prompt。
延伸解读
Prompt 与工作流的本质区别
文章指出,Prompt 改变的是语义概率分布,即模型“更可能说什么”,而工作流划定的是行为边界,即系统“必须做什么”。两者作用机制不同:Prompt 负责理解与生成,工作流负责结构、状态、执行、数据、安全与认知六层防线。将 Prompt 当作万能工具,会导致系统在复杂任务中必然失效。
六类不确定性及对应防线
复杂任务中存在语义、状态、环境、目标、执行、安全六类不确定性。文章强调,每类问题需用不同机制解决:语义歧义用确认与验证,状态丢失用持久化与检查点,环境故障用容错与降级,目标模糊用澄清与确认,执行副作用用事务与补偿,安全边界用权限与审计。仅靠 Prompt 只能缓解语义问题,无法覆盖其余五类。
何时需要引入工作流
文章给出判断标准:若错误代价低(如润色文案),Prompt 足够;若错误代价高(如退款金额错误、合规泄露),则需工作流。具体信号包括多步骤依赖、对外部世界产生副作用、要求可重复可审计可恢复、强合规要求、跨会话异步执行、质量门禁、多角色协作、成本延迟硬性要求等。反之,单轮短链开放生成任务可仅用 Prompt 加 Few-shot 和 CoT。
混合架构与硬约束外置
复杂任务的最佳实践是混合架构:工作流负责状态、路由、重试、权限、审计等,Prompt 负责理解、抽取、分类、生成等。硬约束应外置到 JSON Schema、验证器、规则引擎或数据库约束中,而非依赖 Prompt 中的自然语言指令。文章强调,可靠性不是靠“说清楚”实现,而是靠“不允许出错”的机制设计。
Q&A
为什么写了很长的Prompt,系统还是不可靠?
因为Prompt只改变语义概率分布,不能保证系统必须做什么。复杂任务存在语义、状态、环境、目标、执行、安全六类不确定性,Prompt只能处理语义部分,其他五类需要工作流通过结构、状态、执行、数据、安全、认知六层防线来约束。
工作流和Prompt在系统中分别起什么作用?
Prompt负责语义理解与生成,即“说什么”;工作流负责划定行为边界,包括状态、路由、循环、重试、超时、权限、审计、人审、回滚等,即“何时、由谁、按什么规则、失败怎么办、如何审计、如何恢复”。
复杂任务中的六类不确定性具体指什么?
六类不确定性包括:语义不确定性(用户意图模糊)、状态不确定性(状态丢失或不一致)、环境不确定性(外部API超时、限流等)、目标不确定性(用户目标不明确)、执行不确定性(副作用操作不原子、不幂等)、安全不确定性(对抗攻击、权限越界)。
工作流的六层防线分别解决什么问题?
六层防线:结构层保证流程正确;状态层保证可恢复;执行层保证副作用可控;数据层保证接口可信;安全层保证边界不可破;认知层保证长期不退化。每层回答不同问题,共同构建可靠系统。
什么情况下应该使用工作流而不是只靠Prompt?
当任务错误代价高、多步骤依赖、需要对外部世界产生副作用(写库、支付等)、要求可重复可审计可恢复、有强合规或高风险、需要跨会话异步执行、需要质量门禁或多角色协作、对成本延迟有硬性要求时,应该使用工作流。反之,单轮短链开放生成容错高的任务,Prompt加Few-shot加CoT就够了。
复杂任务的混合架构应该如何设计?
混合架构中,工作流负责状态、路由、循环、重试、超时、权限、审计、人审、回滚;Prompt负责理解、抽取、分类、生成、总结、决策建议;硬约束外置,如JSON Schema、函数调用、验证器、规则引擎、数据库约束。即Prompt解决“说什么”,工作流解决“何时、由谁、按什么规则、失败怎么办、如何审计、如何恢复”。