章节 01
导读 / 主楼:LaraGraph:为Laravel打造的LangGraph风格状态化工作流引擎
受LangGraph启发的PHP工作流引擎,将循环图结构适配到Laravel的无状态架构中,支持多智能体流水线、人机协作流程和并行任务处理。
正文
受LangGraph启发的PHP工作流引擎,将循环图结构适配到Laravel的无状态架构中,支持多智能体流水线、人机协作流程和并行任务处理。
章节 01
受LangGraph启发的PHP工作流引擎,将循环图结构适配到Laravel的无状态架构中,支持多智能体流水线、人机协作流程和并行任务处理。
章节 02
在Python生态中,LangGraph已经成为构建复杂LLM工作流的事实标准。它通过有向图模型支持循环、分支、并行等复杂执行模式,为AI代理工作流提供了强大的编排能力。然而,PHP/Laravel生态长期缺乏同等级别的工作流解决方案。
LaraGraph的诞生填补了这一空白。它明确以LangGraph为灵感来源,将循环图工作流的概念引入PHP世界,同时充分考虑了Laravel的架构特点——特别是其无状态请求模型和队列系统。这种"移植而非照搬"的思路,使得LaraGraph既保留了LangGraph的核心能力,又完美融入了Laravel的技术生态。
章节 03
LaraGraph采用了一套清晰的术语体系来描述工作流:
这种建模方式与LangGraph高度一致,降低了Python开发者迁移到PHP的学习成本。
章节 04
PHP的传统执行模型是无状态的——每个HTTP请求都是独立的进程,请求结束后状态即被销毁。这与Python常驻内存的服务模型有着本质区别。LaraGraph的设计巧妙地解决了这一矛盾:
章节 05
每个WorkflowRun都是数据库中的一条记录,包含当前状态、活跃节点指针和执行状态。这使得工作流可以在任意请求边界处暂停,并在后续请求中恢复。
章节 06
节点执行完全由队列驱动。每个节点作为一个独立的ExecuteNode作业分发到队列,这意味着:
章节 07
状态合并采用归约器(Reducer)模式,提供了三种策略:
SmartReducer是大多数代理工作流的合理默认选择——消息历史自然累积,而状态、分数等标量值简单覆盖。
章节 08
LaraGraph提供了流畅的Builder API来定义工作流:
$workflow = Workflow::create()
->addNode('fetch', FetchNode::class)
->addNode('transform', TransformNode::class)
->addNode('store', StoreNode::class)
->transition(Workflow::START, 'fetch')
->transition('fetch', 'transform')
->transition('transform', 'store')
->transition('store', Workflow::END);
这种链式调用风格符合Laravel开发者的习惯,代码可读性极佳。