跳到主要内容

Workflow-Agent混合架构

核对日期:2026-05-09。

1. 定义与边界

Workflow-Agent 混合架构把稳定、可审计、合规要求高的路径交给代码 workflow,把开放性强、需要语言理解或动态工具选择的局部步骤交给 Agent。

Anthropic 将 workflow 定义为由预定义代码路径编排 LLM 和工具的系统,将 agent 定义为由 LLM 动态控制流程和工具使用的系统。混合架构的重点是明确两者边界,而不是追求“全自动”。

2. 为什么重要

企业生产系统通常需要稳定流程:权限校验、审批、写库、通知、回滚、审计。这些不适合完全交给模型动态决定。但流程中的某些环节,如摘要、分类、证据抽取、异常解释、方案建议,适合由 Agent 完成。

适用:

  • 客服退款、理赔、采购审批、财务报销。
  • 数据管道中需要 LLM 判断的局部步骤。
  • 高风险动作必须经过确定性 gate。

不适用:

  • 任务路径完全开放且探索性极强。
  • 没有明确业务状态和审批规则。

3. 核心机制

原则:

  • workflow 控制“是否能做、何时做、做完如何记录”。
  • Agent 处理“如何理解、如何解释、如何生成候选方案”。
  • 高风险副作用由 workflow 执行,不由模型自由执行。

4. 架构模式

模式Agent 位置例子
Agent as classifier入口分类,workflow 分支工单分类、风险等级判断
Agent as extractor从文本抽取结构化字段合同条款、发票信息
Agent as recommender生成候选动作,规则审批退款建议、补偿建议
Agent as exception handlerworkflow 异常时解释和建议自动化失败诊断
Workflow as guardrailAgent 每步都经过状态机 gate生产变更助手

5. 工程实现

def refund_workflow(ticket):
user = authenticate(ticket.user_id)
order = get_order(ticket.order_id)

facts = agent_extract_refund_facts(ticket.text, order)
validate_schema(facts)

risk = rules.evaluate_refund_risk(order, facts)
if risk.requires_human:
approval = request_approval(order, facts, risk)
if not approval.approved:
return close_case("rejected")

preview = agent_draft_customer_message(order, facts)
refund_id = commit_refund(order, facts.amount, idempotency_key=ticket.id)
audit_log(ticket, facts, risk, refund_id)
return preview

状态字段:

workflow_state:
status: awaiting_approval
agent_outputs:
extracted_facts_ref: facts_123
draft_ref: draft_456
rule_decisions:
risk_level: high
reason: amount_exceeds_threshold
audit:
trace_id: trace_abc
idempotency_key: ticket_789

6. 生产实践

  • Agent 输出只作为候选事实或建议,进入 workflow 前必须 schema 校验。
  • workflow 状态是事实源,Agent memory 不能替代业务数据库。
  • 所有 commit 动作集中在确定性服务层。
  • 为每个 Agent 步骤设置重试策略和 fallback。
  • 对审批 UI 展示原文、抽取字段、风险理由和将执行的具体动作。

7. 常见反模式

  • workflow 只是薄壳,实际权限和动作由 Agent 决定。
  • Agent 输出未校验就写入业务系统。
  • 同一状态在 workflow、Agent memory、前端三处各存一份且无主从。
  • 失败后重新跑 Agent 导致重复扣款、重复发信。
  • 人工审批只显示“是否批准”,不显示具体参数和证据。

8. 评测方法

  • Workflow Completion Rate:流程是否按状态机正确完成。
  • Agent Extraction Accuracy:字段抽取是否准确。
  • Gate Effectiveness:高风险动作是否被正确拦截。
  • Human Approval Quality:审批人是否能看到足够证据。
  • Regression Tests:业务规则变更后旧案例是否保持预期。

9. 安全与治理

  • 最小权限:Agent 步骤优先只读,写操作由 workflow commit。
  • 防注入:用户文本和外部资料作为数据字段,不得修改 workflow 规则。
  • 审计:保存 Agent 输出、规则判断、审批人、commit 参数。
  • 补偿:对外部副作用定义撤销或人工处理流程。

10. 工程手册补充

10.1 控制流、状态流、工具流

Workflow-Agent 混合架构的原则是:确定性流程负责边界,Agent 负责不确定判断。

放在 Workflow放在 Agent
控制流状态转移、重试、超时、审批、补偿对模糊输入做判断或生成候选
状态流持久化 typed state、checkpoint、审计临时上下文、候选解释、草稿
工具流高风险写工具、支付、外发、生产变更只读搜索、草稿生成、摘要
观测流每个节点固定事件名和状态码LLM 输入输出、评分、拒绝原因

10.2 工程示例

nodes:
validate_request:
type: workflow
retry: none
classify_intent:
type: agent
output_schema: IntentDecision
max_tokens: 800
policy_gate:
type: workflow
deny_if:
- "risk == high and approval_id is null"
preview_action:
type: tool
side_effect: false
commit_action:
type: tool
side_effect: true
idempotency_key: "${run_id}:${action_id}"

失败恢复:

  • Agent 节点输出不合 schema:重试一次,仍失败则进入人工队列。
  • Workflow 节点失败:按确定性错误处理,不让 Agent 猜测系统状态。
  • commit 节点超时:使用 idempotency key 查询外部状态,再决定补偿或继续。
  • 用户中途修改目标:生成新 workflow run,旧 run 标记 superseded。

上线清单:

  • 每个 Agent 节点都有输入 schema、输出 schema、最大预算和 fallback。
  • 所有副作用工具都在 workflow 节点执行,并有幂等键。
  • 端到端 trace 能看出“哪个判断来自模型,哪个动作来自代码”。
  • 评测同时覆盖节点级准确率、流程完成率、人工审批命中率、补偿成功率。

11. 权威资料