Skip to Content
全部文章全栈、LLM智能体框架LangGraphGo工作流学习

智能体框架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的一些具体应用场景。

实际应用场景

工具调用+条件节点

并行聚合

中断/恢复(人工审批)

会话记忆

数据持久化

最后编辑于

hi