LangGraph 介绍:可靠度与自主性的平衡

    |     2026年8月29日   |   AI大模型应用, LangChain框架   |     0 条评论   |    36

这篇是 LangGraph 专题第 01 篇——先回答「为什么还要学 Graph」,再留下选型三句话。三要素与写图放到下一篇。


小明的 Agent「太自由」了

小明把客服挂上 create_agent,工具、检索、闲聊都能聊。演示前老板加了一条硬规矩:

「制度类问题:必须先查知识库;没命中,禁止瞎编,直接拒答。」

他加了 system prompt,又叠了一层 Middleware。大多数时候听话,偶尔还是会:

用户: 公司发不发下午茶零食? 助手: 一般科技公司会有……( retriever 没命中,仍「凭常识」答了 )

小明找到老张:「LangChain 不是已经能做 Agent 和 RAG 了吗?为啥还要学LangGraph?」

老张说:”因为你现在的控制力,大半写在提示词里。提示词是软约束;企业要的拒答、必经安检,往往得变成硬拓扑。LangGraph 要解决的,正是这件事——但先别急着敲代码,把『AI 应用怎么长到今天』画清楚。”


AI 应用怎么长到「又要自主、又要稳」

老张在白板上画了三格演进:

① 简单 LLM 用户 ──► 模型 ──► 答案 无工具、无外部数据、难做多步骤 ② Chain(链条) 检索 ──► 模型 ──► 工具 ──► 答案 流程由程序员写死 → Reliable(稳) 但缺自主:不会自己改路线 ③ Agent(智能体) 下一步由 LLM 决定:走 Step2 还是 Step3? 甚至整条路径都交给模型 → Agentic(自主) 灵活,路径可能漂移

「早期应用就是调一次模型。后来人为加步骤——检索、工具——串成 Chain,这也是 LangChain 名字的由来:跑一千次路径一样,但离『真智能体』还远。

真正的 Agent,是让模型规划工作流。问题来了——」

维度 程序控流程(Chain) 模型控流程(Agent)
稳定性 高,路径可预期 低,偶发跳步/绕路
自主性 低 高
硬约束(强制拒答等) 好做成分支 多靠提示词,易漏
审计 路径一眼可见 要另记账才清晰

小明:”所以只能二选一?”

老张摇头:”通常只能在两端之间选平衡点。

LLM 自主控制得越多,应用稳定程度往往越小。

你要的,不是退回死链条,也不是把一切交给黑盒——而是:自主尽量留,稳定要抬上去。“


LangGraph 到底解决什么

老张在「可靠度 × 自主性」坐标上点了一笔:

自主性 ↑ │ ★ 理想:自主不丢、稳定抬升 │ / │ Agent ● │ / │ ★ LangGraph 的方向 │ / ● Chain │ └──────────────────→ 可靠度

LangGraph 的作用,是在保持 Agent 自主控制程度的同时,提高稳定程度。

怎么做到?核心一句话——

允许你自己定义工作流(Workflow)里的每一个 Node(节点)。

模型仍可在某个节点里做决策、调工具;但『能不能跳过检索』『无命中走哪』『要不要停给人审』,由图上的边与节点说了算。软约束变硬拓扑。」


先看一眼:节点就是你写的函数

老张写了一个最小例子——故意还不接 LLM——看看「图骨架」长什么样。

from typing import TypedDict from langgraph.graph import END, START, StateGraph class GraphState(TypedDict): text: str steps: list[str] def normalize(state: GraphState) -> dict: text = state["text"].strip().lower() steps = list(state.get("steps") or []) steps.append(f"{len(steps) + 1}.规范化文本") return {"text": text, "steps": steps} def shout(state: GraphState) -> dict: steps = list(state.get("steps") or []) steps.append(f"{len(steps) + 1}.大写文本") return {"text": state["text"].upper() + "!", "steps": steps} def build_graph(): g = StateGraph(GraphState) g.add_node("normalize", normalize) g.add_node("shout", shout) g.add_edge(START, "normalize") g.add_edge("normalize", "shout") g.add_edge("shout", END) return g.compile()

老张逐点敲:

  1. State:图上流转的数据(这里是 text + steps)。
  2. Node:普通函数;读 State,返回要更新的字段(部分更新),不是你手改全局变量。
  3. Edge:START → normalize → shout → END——路径写死在图上,跑一万次也是这条。
START ──► normalize ──► shout ──► END

「这还不是 Agent。它只回答一个问题:LangGraph 让你显式拥有工作流里的每一步。下一篇会把条件边、工具环、记忆接进来;今天先建立这个心智。」


运行程序

def run_demo() -> None: app = build_graph() # 构建图 result = app.invoke({"text": " Hello LangGraph ", "steps": []}) # 执行图 print("result:", result) print("Day1 OK") cd course-langgraph/day1-hello-graph python main.py --demo
result: {'text': 'HELLO LANGGRAPH!', 'steps': ['1.规范化文本', '2.大写文本']} Day1 OK

小明:”输入带空格的 Hello,出来大写加叹号,步骤列表也记了。这不就是函数管道吗?”

老张:”今天是管道。等你加上『分类后走天气/制度/闲聊』『有 tool_calls 就进 tools 再回来』,管道就变成路由表和循环——那是图比 a(b(c(x))) 强的地方。”


选型:三句话就够用

维度 create_agent LangGraph StateGraph
控制流 隐式 ReAct 循环 显式 Node / Edge
上手 快 多写几行,换可控性
硬分支 / 强制拒答 提示词 + Middleware 条件边 / 拒答节点一等公民
插审核、计费、检索闸门 能,但像打补丁 任意节点直接挂
适合 开放任务、工具自选 合规路径、可审计、固定流水线

老张让小明抄进笔记本——Agent vs Graph 选型三句话(本模块可验证产出):

  1. 工具自己选、路径可飘一点 → 优先 create_agent。
  2. 步骤必须可控、无命中必须拒答、要给人审 → 上 StateGraph。
  3. 生产常见形态 → Graph 做外壳(闸门/路由/拒答),局部节点里仍可嵌 Agent / LLM 决策。

三个常见坑(介绍阶段)

坑 1:以为学了 Graph 就要扔掉 create_agent

症状:所有 Demo 强行改成手写图,进度变慢,收益不明显。
原因:把「能画图」当成「必须画图」。
修法:开放探索期继续 Agent;出现硬约束再抽成图。二者是选型,不是替代。

坑 2:只用提示词落实「必须拒答」

症状:演示偶发瞎编,老板不信任。
原因:软约束遇强生成欲望会漏。
修法:拒答做成图上的分支节点(后文 Day5:retrieve → generate | refuse);提示词做辅助,不作唯一闸门。

坑 3:一上来就堆并行、子图、Studio

症状:概念爆炸,Hello 图都没跑通。
原因:把进阶能力塞进介绍课。
修法:本专题顺序:介绍(本篇)→ 三要素入门 → 常见 WorkFlow → 客服 Email 项目。Studio / Postgres 放选修。


总结

老张说:”第 01 篇只办一件事——让你知道 LangGraph 站在哪条坐标轴上。”

“三个核心理解:

  1. 演进 —— LLM → Chain(稳)→ Agent(自主);两端对拉,生产要平衡点
  2. 定位 —— LangGraph 用显式 Node/Edge,在尽量保留自主的同时抬高稳定度
  3. 选型 —— 自选工具用 Agent;硬路径与拒答用 Graph;常见是 Graph 外壳 + 局部智能”

LangGraph 专题进度:

01 LangGraph 介绍(本篇:为何 Graph) ↓ 02 基本概念和入门(State / Node / Edge) ↓ 03 常见 WorkFlow(七种编排模式) ↓ 04 客户支持 Email Agent(Think in LangGraph)

小明合上本子:「选型三句话我背住了。下周把 State、边、条件路由写明白。」

别只训练模型『听话』。自主留给节点里的智能,稳定留给图上的拓扑。

转载请注明来源:LangGraph 介绍:可靠度与自主性的平衡
本文链接地址:https://ai.zhousir.top/?p=3886
回复 取消