面试:在什么场景下应该选择 LangGraph 而不是 LangChain? 面试:在什么场景下应该选择 LangGraph 而不是 LangChain?这个问题其实挺有意思的,因为它们俩不是一个竞争关系,而是层级互补的。我直接说我的判断:简单场景用 LangChain,复杂有状态的多步骤流程用 LangGraph。先搞清楚本质区别LangChain 的核心是"链"——你把它想象成一条流水线,文档进来,检索、拼接、生成、输出,一条直线走到底。它的抽象很直观,用 LCEL 表达式把组件串起来,适合 RAG 管道、简单问答、单次工具调用这些场景。LangGraph 的核心是"图"——它把整个工作流建模成一个有状态的状态机。节点是函数,边是流转关系,全局有一个 State 对象在节点间共享。更关键的是,它支持循环。这个"循环"不是简单的 for 循环,而是可以条件触发、动态回退的那种。举个工作中的例子你就明白了:我们之前做一个客服 Agent,用户说"我要退货",流程是这样的——先理解意图,发现是退货就进退货子流程,退货过程中用户信息不全,就跳回信息收集步骤,用户补充完之后继续,最后根据处理结果决定是直接回复还是转人工。这里面有条件分支、有循环、有动态路由,用 LangChain 的链式抽象来写,代码会变得又臭又长,到处是 if-else。用 LangGraph 的话,就是一张图,节点之间连上边,条件边一加,逻辑一目了然。