摘要
随着大语言模型(LLM)能力快速演进,企业级 AI 应用正在从简单的“问答机器人”进入“智能体(Agent)协同执行”阶段。生产环境中的 Agent 不再只是调用一次模型生成答案,而是需要完成复杂任务拆解、工具调用、上下文维护、异常恢复、人机协同以及长期运行。
然而,单纯依赖大模型自主规划(ReAct、Function Calling 等模式)在企业环境中存在明显不足:
- 执行路径不可预测;
- 状态难以恢复;
- 错误难以追踪;
- 权限控制困难;
- 无法满足金融、制造、客服、运维等场景的可靠性要求。
因此,企业级 Agent 需要引入工作流引擎,将大模型能力限制在可控的流程框架内。
目前主流方案主要分为两类:
- 基于状态机(State Machine)的确定性工作流
- 基于 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 走向生产系统的关键。