智能体工作流引擎设计:LangGraph与状态机在企业生产中的应用

摘要

随着大语言模型(LLM)能力快速演进,企业级 AI 应用正在从简单的“问答机器人”进入“智能体(Agent)协同执行”阶段。生产环境中的 Agent 不再只是调用一次模型生成答案,而是需要完成复杂任务拆解、工具调用、上下文维护、异常恢复、人机协同以及长期运行。


然而,单纯依赖大模型自主规划(ReAct、Function Calling 等模式)在企业环境中存在明显不足:

  • 执行路径不可预测;

  • 状态难以恢复;

  • 错误难以追踪;

  • 权限控制困难;

  • 无法满足金融、制造、客服、运维等场景的可靠性要求。

因此,企业级 Agent 需要引入工作流引擎,将大模型能力限制在可控的流程框架内。


目前主流方案主要分为两类:

  1. 基于状态机(State Machine)的确定性工作流

  2. 基于 LangGraph 的图结构 Agent 工作流

两者并不是简单替代关系,而代表了企业 AI 系统设计中的两种不同理念:

  • 状态机强调确定性、可验证、强约束;

  • LangGraph 强调动态规划、智能决策、Agent 协作。

本文将深入分析两种架构特点,并设计适合生产环境的高可靠、可回溯 Agent 工作流模式。


一、企业为什么需要 Agent 工作流引擎

1. 从 ChatBot 到 Agent Workflow

传统 ChatBot 架构:


User
 |
 v
LLM
 |
 v
Answer

流程简单:


用户输入 → 模型理解 → 输出结果


但企业任务通常类似:

用户提交采购申请,系统需要验证权限,查询库存,计算价格,生成合同,提交审批,并通知供应商。

真实流程:


用户请求
    |
    v
意图识别
    |
    v
权限检查
    |
    v
业务数据查询
    |
    v
规则计算
    |
    v
生成方案
    |
    v
人工审批
    |
    v
执行操作
    |
    v
记录审计

这里已经不是一个 Prompt 可以解决的问题。


企业 Agent 必须具备:

能力

说明

状态管理

知道任务执行到哪里

流程控制

限制非法操作

失败恢复

异常后继续执行

历史记录

支持审计

人工介入

Human in the Loop

权限隔离

控制工具调用

因此需要 Workflow Engine。


二、Agent 工作流核心模型

一个生产级 Agent Workflow 通常由五层组成:


+--------------------------------+
|          User Interface         |
+--------------------------------+
               |
               v
+--------------------------------+
|       Agent Orchestrator        |
|  LangGraph / State Machine      |
+--------------------------------+
               |
               v
+--------------------------------+
|        Agent Runtime            |
| Planner | Executor | Memory     |
+--------------------------------+
               |
               v
+--------------------------------+
|        Tool Layer               |
| API | Database | Browser | MCP |
+--------------------------------+
               |
               v
+--------------------------------+
|        Infrastructure            |
| Redis | MQ | Database | Logs    |
+--------------------------------+

其中 Workflow Engine 是整个系统的大脑。


三、状态机(State Machine)设计模式

1. 什么是状态机

状态机是一种经典计算模型:


系统任何时刻处于一个确定状态:


State + Event -> New State

例如订单系统:


CREATED

   |
   | pay_success

   v

PAID

   |
   | shipping

   v

SHIPPED

状态转移明确:


订单创建
 |
付款成功
 |
发货
 |
完成

不会出现:


CREATED
 |
退款
 |
完成

这种非法路径。


2. Agent中的状态机模型

例如企业客服 Agent:


状态定义:

type AgentState string

const (
    StateInit AgentState = "INIT"

    StateAnalyze AgentState = "ANALYZE"

    StateRetrieve AgentState = "RETRIEVE"

    StateGenerate AgentState = "GENERATE"

    StateReview AgentState = "REVIEW"

    StateFinish AgentState = "FINISH"
)

状态上下文:

type WorkflowContext struct {

    RequestID string

    UserID string

    CurrentState AgentState

    Query string

    Documents []string

    Answer string

    Error error
}

状态执行:

type StateHandler interface {

    Execute(
        ctx *WorkflowContext,
    ) error

}

流程:

func RunWorkflow(ctx *WorkflowContext){

    for {

        handler :=
        stateRegistry[
            ctx.CurrentState
        ]


        err :=
        handler.Execute(ctx)


        if err != nil {

            ctx.CurrentState =
            StateReview

            continue
        }


        ctx.CurrentState =
        nextState(
            ctx.CurrentState,
        )


        if ctx.CurrentState ==
            StateFinish {

            break
        }
    }
}


3. 状态机优势

(1)确定性强

企业最关注:

同样输入是否产生一致行为?

状态机:


Input A

↓

State1

↓

State2

↓

Output

完全可预测。


(2)容易审计

例如金融 Agent:


request_id:

20260810-001


State History:

INIT
 ↓
VERIFY_PERMISSION
 ↓
CHECK_ACCOUNT
 ↓
APPROVAL
 ↓
EXECUTE

所有动作可追踪。


(3)容易权限控制

例如:


普通员工:


QUERY
GENERATE

管理员:


QUERY
GENERATE
APPROVE
EXECUTE


4. 状态机不足

但是状态机也存在明显问题。

流程复杂度爆炸

假设:


10 个状态


每个状态:


3 个分支


理论路径:


3^10 = 59049

人工维护困难。


缺少智能规划能力

例如:


用户:

帮我分析这家公司是否值得投资

状态机:


获取公司信息
分析财务
分析新闻
输出报告

但无法动态决定:


是否需要查询竞争对手?

是否需要搜索行业数据?

是否需要调用股票接口?

这类开放任务不是状态机优势。


四、LangGraph Agent 工作流架构

1. LangGraph是什么

LangGraph 是 LangChain 生态中的图结构 Agent 编排框架。


核心思想:


把 Agent 流程表示为:


Node + Edge + State

类似:


        Planner

       /      \

 Search       Tool

       \      /

       Answer


2. LangGraph核心组件

State

保存整个 Agent 上下文:


Python 示例:

from typing import TypedDict


class AgentState(TypedDict):

    messages:list

    user_query:str

    documents:list

    tool_result:str

    final_answer:str


Node

节点代表执行单元:

def planner_node(state):

    response = llm.invoke(
        state["user_query"]
    )

    return {

        "messages":
        [
            response
        ]

    }


Edge

决定下一步:

def router(state):

    if "search" in state["messages"][-1]:

        return "search"


    return "answer"


Graph

组合:

from langgraph.graph import StateGraph


graph = StateGraph(
    AgentState
)


graph.add_node(
    "planner",
    planner_node
)


graph.add_node(
    "search",
    search_node
)


graph.add_node(
    "answer",
    answer_node
)


graph.add_edge(
    "planner",
    "search"
)


graph.add_edge(
    "search",
    "answer"
)


app =
graph.compile()


五、LangGraph与状态机核心区别

1. 思维模型区别


状态机

LangGraph

核心

状态转移

图执行

流程

固定

动态

决策

规则

模型+规则

可靠性

中高

灵活性

适合

业务流程

智能任务


2. 控制能力比较

状态机

流程:


A
|
B
|
C
|
D

开发者决定:


下一步是什么


LangGraph

流程:


        A

       / \

      B   C

       \ /

        D

Agent 可以根据上下文选择:


B or C


3. 企业生产选择建议

强流程业务

例如:

  • 银行审批

  • 财务报销

  • CRM流程

  • ERP操作

推荐:


状态机 + LLM节点

架构:


State Machine

       |
       |
       v

   LLM Service


开放探索业务

例如:

  • 企业知识助手

  • 市场分析 Agent

  • 自动研究 Agent

推荐:


LangGraph


六、高可靠 Agent Workflow 生产设计模式

模式一:状态持久化

不要:


Memory Only

生产:


Agent State

     |

Redis

     |

PostgreSQL

状态表:

CREATE TABLE workflow_instance
(
 id bigint primary key,

 workflow_id varchar(64),

 state varchar(32),

 context json,

 created_at timestamp,

 updated_at timestamp
);

恢复:


服务重启

↓

读取workflow_instance

↓

继续执行


模式二:事件溯源 Event Sourcing

不要只保存最终状态。


保存:


Event Stream

例如:


AgentStarted

ToolCalled

ToolFinished

HumanApproved

AgentCompleted

数据库:

CREATE TABLE workflow_events
(

id bigint,

workflow_id varchar(64),

event_type varchar(64),

payload json,

created_at timestamp

);

优势:

  • 回放执行过程

  • Debug

  • 审计

  • 模型评估


模式三:Human In The Loop

企业 Agent 必须支持人工接管。


流程:


Agent

 |

Risk Detection

 |

Human Review

 |

Continue

例如:


合同 Agent:


生成合同

↓

金额>100万

↓

人工审批

↓

执行


模式四:工具调用隔离

不要:


LLM

|

所有API

应该:


LLM

 |

Tool Gateway

 |

Permission Check

 |

Business API

例如 MCP 架构:


Agent

 |

MCP Client

 |

MCP Server

 |

Database


模式五:幂等执行

企业环境必须考虑:


网络失败:


支付成功

↓

返回失败

↓

Agent重新执行

必须设计:

type ExecuteRequest struct {

    RequestID string

    Action string

}

数据库:

unique(request_id)

保证:


同一个任务只执行一次


七、LangGraph生产架构设计

推荐企业架构:


                 User

                  |

                  v

            API Gateway

                  |

                  v

             LangGraph

                  |

        +---------+---------+

        |                   |

     Planner             Memory


        |

        v


       Tools


        |

        v


   MCP Gateway


        |

        v


   Enterprise System



        |

        v


 PostgreSQL + Redis



八、Go企业状态机Agent架构设计

对于大量企业内部系统,Go状态机仍然具有优势。


目录:


agent-workflow/

├── cmd

│   └── main.go

├── workflow

│   ├── engine.go

│   ├── state.go

│   └── transition.go


├── agent

│   ├── llm.go

│   ├── memory.go

│   └── tools.go


├── storage

│   ├── mysql.go

│   └── redis.go


└── api

    └── handler.go


Engine:

type Engine struct {

 states map[string]State

 storage Storage

}


func(
e *Engine,
) Run(
ctx context.Context,
id string,
){

 state :=
 e.storage.Load(id)


 for {

   next,err :=
   e.states[state].Run()


   if err != nil {

      e.storage.SaveError(
          id,
          err,
      )

      break
   }


   state = next

 }

}


九、监控与可观测性设计

生产 Agent 必须监控:

Trace

记录:


Request

 |

Planner

 |

Tool Call

 |

LLM

 |

Response

推荐:

  • OpenTelemetry

  • Prometheus

  • Grafana

指标:


agent_execution_total

agent_failed_total

tool_latency_seconds

llm_token_usage


十、未来企业Agent工作流趋势

1. Graph + State Hybrid

未来主流不是二选一:


而是:


外层状态机

        +

内部LangGraph

例如:


订单审批:


State Machine

   |

   +---风险分析 Agent

   +---价格分析 Agent

   +---合同 Agent



2. Workflow即产品能力

未来企业竞争:


不是谁模型参数更多。


而是谁:

  • Agent流程设计更成熟;

  • 数据闭环更完整;

  • 状态恢复能力更强;

  • 企业集成更深入。


总结

LangGraph 和状态机并不是竞争关系,而是企业 Agent 架构中的两个不同层次。


状态机解决:

如何让 Agent 稳定、安全、可控地执行企业流程。

LangGraph解决:

如何让 Agent 在复杂任务中具备动态规划和智能协作能力。

生产级 Agent 最佳实践通常不是纯 LangGraph,也不是纯状态机,而是:


业务流程层:
        状态机


智能决策层:
        LangGraph


执行层:
        Tool/MCP


数据层:
        Event Sourcing + Database


监控层:
        OpenTelemetry

真正能够进入企业核心生产系统的 Agent,核心竞争力不是“会聊天”,而是具备:

  • 可预测执行;

  • 状态可恢复;

  • 全链路审计;

  • 权限隔离;

  • 故障自愈。

这也是下一代企业 AI Agent 从 Demo 走向生产系统的关键。


参考资料

  1. LangGraph 官方文档

    https://langchain-ai.github.io/langgraph/

  2. Martin Fowler:Event Sourcing

    https://martinfowler.com/eaaDev/EventSourcing.html

  3. David Harel:Statecharts: A Visual Formalism for Complex Systems

    https://www.sciencedirect.com/science/article/pii/016764238790035X