智能体框架LangGraphGo工作流学习
发布时间: 2026-06-29
前言
最近不是流行FSE和FDE了吗,补一下智能体开发相关的知识,本来打算去玩玩dify或者n8n,后来经过仔细的了解后发现也就是拖拖拖,然后开发一些工具给它调用,就觉得反正都是学习,就学点最直接的,学LangChain吧,然后又了解到LangChain+LangGraph开发 智能体的玩法,于是就通过代码的形式初步窥探了一下这两个框架,LangChain的作用是封装好各家ai模型的的调用,不用自己来按照大模型要求的格式去调用了。本次主要是想聊聊LangGraph,它的核心概念非常的简单,但是把智能体编排通过图的概念这么一包装,就变得简单许多了(可能主要是理解容易堵和成本下降了)。
LangGraph基础概念
LangGraph像画一个流程图一样来定义了编排逻辑,分为 状态 、 节点 、 边 ,节点就是一个逻辑节点,比如到了某个步骤该调工具查库还是调用大模型。边的作用是定义每个节点执行后,流转到下一个节点应该是谁。状态则在节点之间起数据共享作用。其中节点+边共同构成了 图,这就是LangGraph的核心流程。
节点
这就是一个节点的定义,本质上来说就是一个函数/方法,执行一段逻辑
workflow.AddNode("node_name", "某某功能节点",func MyNode(ctx context.Context, state MyState) (MyState, error) {
// 执行逻辑
return newState, nil
})边
这是边的定义
// 普通边,a节点执行完执行b节点
workflow.AddEdge("nodeA", "nodeB")
// 并行执行a和b节点
workflow.AddEdge("start", "branch_a")
workflow.AddEdge("start", "branch_b")
// 条件边,比如如果状态是调用工具,则进入tool节点,否则进入结束节点
workflow.AddConditionalEdge("agent", func(ctx context.Context, state InventoryState) string {
// 这里就用到了状态,状态是在整个图中共享数据的
if state.NextAction == "call_tool" {
return "tools"
}
return graph.END
})基本上核心概念就这几个,做过图功能的人就很好理解node、edge的关系,后面我直接用代码来深入学习一下LangGrahpGo的一些具体应用场景。
实际应用场景
工具调用+条件节点
并行聚合
中断/恢复(人工审批)
会话记忆
数据持久化
最后编辑于
