LangGraph+Ollama本地Agent:复杂工作流编排实战
2026/6/9 7:42:51 网站建设 项目流程

读完这篇你就有了完整的本地 Agent 选型地图:

  • CrewAI:角色 + 任务(流程清楚的业务流水线)
  • AutoGen:对话 + 讨论(开放性 / 探索性场景)
  • LangGraph:状态 + 转移(复杂状态机、需要回滚 / 分支 / 循环的场景)

如果说前两个是"声明式"和"对话式",LangGraph 就是"工程师式"——你画图,画完图就是工作流。

我用 RTX 4060 + Qwen3.5:9b 跑了几个实例,下面把架构、代码、和前两家的对比都写一遍。

一、LangGraph 解决什么 CrewAI / AutoGen 解决不了的问题

CrewAI 和 AutoGen 都强在"几个 Agent 协作",但有几种场景它们都很别扭:

  1. 条件分支:根据上一步结果走不同分支
  2. 循环 / 重试:某一步出错重试 N 次后再决定下一步
  3. 回滚到中间状态:发现走错路要倒回去某个 checkpoint
  4. 明确的"等待人工审批"步骤
  5. 状态在多个 Agent 间复杂传递

这些场景都需要一个显式的状态图——节点是动作,边是条件,状态随图流动。

LangGraph 就是这个。它本质上是把 Agent 工作流抽象成「有状态的有向图」。

二、安装 + 接入 Ollama

pip install langgraph langchain-ollama

接 Ollama:

from langchain_ollama import ChatOllamallm = ChatOllama( model="qwen3.5:9b", base_url="http://localhost:11434", temperature=0.2,)

三、最小可跑示例:会议纪要自动校对工作流

复用之前文章的会议纪要场景,但加上"质检不通过自动重写、最多 3 次、还不行就给人工"——这种循环 + 分支用 LangGraph 特别顺。

from langgraph.graph import StateGraph, ENDfrom typing import TypedDictclassState(TypedDict): transcript: str # 原始逐字稿 draft: str # 当前纪要 issues: list # 质检发现的问题 retry_count: int # 重写次数defgenerate_draft(state: State) -> State: """生成初稿""" prompt = f"基于逐字稿生成结构化会议纪要:\n{state['transcript']}" result = llm.invoke(prompt) return {**state, "draft": result.content}defquality_check(state: State) -> State: """质检""" prompt = f"""检查会议纪要质量,返回 JSON:{{"issues": ["问题1", "问题2"], "passed": true/false}}纪要:{state['draft']}""" result = llm.invoke(prompt) import json qc = json.loads(result.content) return {**state, "issues": qc["issues"]}defrevise(state: State) -> State: """根据质检意见重写""" prompt = f"原纪要:\n{state['draft']}\n\n质检问题:\n{state['issues']}\n\n请修订后输出完整新版纪要。" result = llm.invoke(prompt) return { **state, "draft": result.content, "retry_count": state["retry_count"] + 1, }defroute_after_qc(state: State) -> str: """质检后路由""" ifnot state["issues"]: return"done" if state["retry_count"] >= 3: return"human" return"revise"defhuman_review(state: State) -> State: print("自动重写 3 次仍未通过,已转人工") return state# 构图workflow = StateGraph(State)workflow.add_node("draft", generate_draft)workflow.add_node("qc", quality_check)workflow.add_node("revise", revise)workflow.add_node("human", human_review)workflow.set_entry_point("draft")workflow.add_edge("draft", "qc")workflow.add_conditional_edges("qc", route_after_qc, { "done": END, "revise": "revise", "human": "human",})workflow.add_edge("revise", "qc")workflow.add_edge("human", END)app = workflow.compile()result = app.invoke({ "transcript": "...", "draft": "", "issues": [], "retry_count": 0,})

跑起来你会看到draft → qc → revise → qc → revise → qc → done这种自动循环,直到质量过关或重试上限

CrewAI 和 AutoGen 想实现这种"质检 + 循环"逻辑都非常拧巴;LangGraph 是它的母语场景。

四、状态图的可视化

LangGraph 一行代码导出工作流图:

from IPython.display import ImageImage(app.get_graph().draw_mermaid_png())

输出一个 Mermaid 流程图。对生产部署、协作交付特别有用——你的 AI 工作流不再是"几段代码",是一张人人都能看懂的图。

我自己的工作流 review 会议直接用这个图开,业务方一看就理解逻辑

五、LangGraph 独家能力

能力 1:Checkpointer(状态保存 + 回放)

from langgraph.checkpoint.memory import MemorySaverapp = workflow.compile(checkpointer=MemorySaver())# 跑一段app.invoke(initial_state, config={"configurable": {"thread_id": "task-001"}})# 中断后恢复app.invoke(None, config={"configurable": {"thread_id": "task-001"}})

每一步状态自动持久化。任务跑到一半挂了,能从中断处继续。Crew/AutoGen 都做不到这件事。

能力 2:Human-in-the-loop

workflow.add_node("approve", lambda s: {**s, "approved": input("通过吗 y/n? ") == "y"})

某个节点等待人工确认,LangGraph 原生支持。比如客户邮件回复,AI 起草后强制人工审批再发——这种"自动 + 人工"混合工作流是 LangGraph 的甜区。

能力 3:Streaming

for chunk in app.stream(initial_state): print(chunk)

每经过一个节点立刻 yield 中间状态,实时观察 Agent 在干什么。前端可以做出"AI 正在思考第几步"这种 UI。

能力 4:Subgraph

复杂工作流可以拆成"子图"嵌套,主图调用子图就像调函数。便于复用、便于团队协作。

六、三大框架横向对比

我把 5 个真实任务在三个框架上各跑一遍:

任务CrewAIAutoGenLangGraph
内容创作流水线⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐ 杀鸡用牛刀
客户邮件分流 + 人工审批⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
多轮思辨讨论⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
数据分析 + 重试 + 兜底⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
简单 Agent demo⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐ 重

简化规则

  • 流程清楚、5 个节点以内 → CrewAI
  • 开放讨论 / 决策 / 自由互动 → AutoGen
  • 复杂分支 + 循环 + 重试 + 人工 → LangGraph

七、对本地 9B 模型的友好度

框架本地 9B 稳定性学习曲线工程化能力
CrewAI⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
AutoGen⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
LangGraph⭐⭐⭐⭐⭐⭐ 陡⭐⭐⭐⭐⭐

LangGraph 对本地小模型友好度仅次于 CrewAI——因为状态图把模型每一步要干什么定得很死,不容易跑偏。

学习曲线显著陡峭:要理解状态、节点、边、条件路由、checkpointer 等一堆概念,没用过 PyTorch / TensorFlow 这种图计算框架的同学会比较吃力。

八、什么时候不要用 LangGraph

LangGraph 真的不是"越复杂越好"。下面这些场景不要用:

  1. 简单的"问答机器人":直接 LLM API + RAG 就够了
  2. 不到 3 个节点的流程:用 if-else 写更清晰
  3. 快速原型 / Demo:CrewAI 写 20 行能跑通
  4. 完全开放性任务:AutoGen 更顺手
  5. 团队第一个 Agent 项目:先用 CrewAI 培养 Agent 思维

九、典型生产场景

我自己 LangGraph 在用的两个真实生产场景:

场景 1:客户邮件智能处理

工作流图:

邮件接收 → 分类 → [简单 FAQ] → 自动回复 ↓ [复杂咨询] → AI 起草 → 人工审批 → 发送 ↓ [投诉] → 优先级评估 → AI 起草 → 主管审批 → 客服经理 → 发送

涉及条件分支、人工节点、多层审批。CrewAI 和 AutoGen 写起来都非常勉强;LangGraph 是原生支持。

场景 2:交易风控

交易请求 → 规则引擎 → [低风险] → 自动通过 ↓ [中风险] → AI 评估 → 评分 ≥ 80 通过 / 评分 < 80 进入人工 ↓ [高风险] → 拒绝 + 告警

需要 checkpointer 保存每一步决策、需要人工 review、需要可视化整个流程给合规审计——全是 LangGraph 的母语场景。

十、Agent 框架三连总结

到这周我们写完了三大 Agent 框架:

框架心智模型学习曲线适合场景
CrewAI角色 + 任务⭐⭐⭐⭐⭐ 最低业务流水线
AutoGen对话 + 群聊⭐⭐⭐开放讨论
LangGraph状态机 + 节点⭐⭐ 最高复杂工程化

选型简易规则

  • 团队新接触 Agent → CrewAI 入门
  • 业务需要 AI 之间讨论 → AutoGen 切入
  • 业务需要严格工作流 → LangGraph 落地

三个都不冲突,可以同时存在。我自己的项目里:演示用 CrewAI、需求评审用 AutoGen、生产工作流用 LangGraph。

十一、行动建议

  • 生产工作流需要严格流程:直接选 LangGraph
  • 有"人工审批"环节的 AI 流程:LangGraph 原生支持
  • 已经用 LangChain 的项目:LangGraph 是自然延伸
  • 第一次接触 Agent:先 CrewAI,理解多 Agent 思维后再升 LangGraph
  • 简单 demo / 快速验证:杀鸡用牛刀

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询