
上周在帮一个团队做技术选型他们想快速搭建一个能处理多轮对话、支持流式输出、还能对接不同模型的服务。聊到一半有人问“现在这么多 AI 应用框架Vercel AI SDK、LangChain、LangGraph、Mastra到底该用哪个我看 Vercel AI SDK 都出到 7 了它和 LangChain 是一回事吗”这个问题很有意思。表面上看它们都是用来“开发 AI 应用”的工具但各自的定位、解决问题的思路和适合的场景差别其实非常大。选错了要么是杀鸡用牛刀项目变得无比臃肿要么是牛刀杀不动鸡核心需求实现不了还得自己造轮子。今天我们不罗列功能而是从“你到底要解决什么问题”这个角度把这几个框架拆开来看。你会发现Vercel AI SDK 7 的核心价值可能和你最初想的不太一样。1. 先别急着看功能列表理解每个框架的“第一性原理”在技术选型时最容易犯的错误就是直接对比功能列表“这个有 RAG那个有 Agent这个支持流式输出……” 功能列表很像菜单但如果你不知道自己想吃什么或者这顿饭是商务宴请还是家庭聚餐点菜很容易点错。这几个框架的“第一性原理”——也就是它们被创造出来最想解决的核心问题——完全不同。Vercel AI SDK让前端开发者快速接入 AI它的核心目标极其明确在前端或全栈应用中以最简单、最标准化的方式调用各种大语言模型LLM并处理流式响应。你可以把它想象成一个高度封装、开箱即用的“模型调用适配器”和“流式响应处理器”。它不关心你的业务逻辑有多复杂不帮你管理对话状态也不内置复杂的推理链条。它的价值在于当你需要在 Next.js、React、Vue 等前端框架里调用 OpenAI、Anthropic、Google 甚至本地模型时它提供了一套统一的、类型安全的、支持流式渲染的 API。你写generateText它帮你处理模型差异、处理流式数据块、并返回最终结果。它的“7”代表迭代和成熟核心依然是这个定位。LangChain构建复杂、可组合的 LLM 应用工作流LangChain 想解决的是另一个问题当你的任务不是一次简单的问答而是需要串联多个步骤检索、思考、执行工具、生成时如何优雅地编排这些步骤。它引入了“链”Chain的概念把 LLM 调用、工具使用、记忆管理、文档检索等模块化让你像搭积木一样构建复杂的应用。它的核心是“编排”和“模块化”。如果你要做的是一个带有知识库检索RAG、需要调用搜索引擎或数据库、并且有复杂决策逻辑的应用LangChain 提供了一套丰富的“积木块”和组装说明书。LangGraph为 Agent 和状态机而生LangGraph 是 LangChain 生态中更专注于某一类复杂问题的解决方案。它的核心是“有状态、多步骤的循环工作流”。传统的链Chain通常是线性的 A-B-C。但很多 AI 应用特别是智能体Agent需要根据 LLM 的输出决定下一步做什么可能会循环、分支、并行。LangGraph 用“图”Graph的概念来建模这种流程节点是处理步骤边是状态流转的条件。它擅长构建那种需要长期记忆、反复思考、动态规划行动的 Agent。如果说 LangChain 提供了积木LangGraph 则提供了搭建复杂动态机械结构的蓝图和轴承。Mastra专注于多模型、多租户的 AI 服务后端Mastra 的视角又不一样。它假设你已经有了明确的功能比如一个客服聊天机器人现在需要以工程化的方式将其部署为一个稳定、可扩展、支持多模型切换和多租户的服务。它更关注后端架构层面的事务如何管理不同模型的 API 密钥和计费如何为不同客户租户隔离数据和配置如何做请求的负载均衡、缓存和降级Mastra 更像是一个“AI 应用的后端框架”或“AI 网关”它帮你处理生产环境中的工程问题而不是帮你设计单个 AI 任务的逻辑。看到这里你应该能感觉到它们不是简单的“谁比谁强”的关系而是“谁更适合解决哪一层问题”。框架核心要解决的问题类比适合谁Vercel AI SDK前端/全栈应用快速集成 LLM 与流式 UI家电的“标准电源插头”前端/全栈开发者需要快速在网页中接入聊天、补全等功能。LangChain编排复杂、多步骤的 LLM 应用工作流乐高积木套装AI 应用开发者需要构建 RAG、复杂工具调用等非线性任务。LangGraph实现有状态、带循环和分支的 Agent自动化工厂的流程图与控制程序需要开发高级智能体Agent、模拟、游戏等动态系统的开发者。Mastra构建生产级、多模型、多租户的 AI 服务后端云服务的控制面板与管理后台需要将 AI 功能产品化、服务化并关注运维、计费、租户隔离的团队。所以第一个结论很简单如果你的主要战场是 React/Vue 组件想快速加个聊天框Vercel AI SDK 是最直接的选择。如果你要设计一个会自己思考、调用工具、完成复杂任务的“智能体”那 LangChain 和 LangGraph 才是你的工具箱。2. Vercel AI SDK 7 的“甜区”它为何而生又解决了什么具体麻烦理解了定位我们再深入看看 Vercel AI SDK 7。为什么是它为什么是现在在它出现之前前端开发者想调用 OpenAI API 并实现流式输出大概要经历以下步骤在后端如 Next.js API Route写一个接口调用 OpenAI SDK。手动处理流式响应将数据块通过 Server-Sent Events (SSE) 或 WebSocket 推送到前端。在前端手动处理这些数据流拼接字符串并更新 UI。如果想换一个模型比如从 GPT-4 换成 Claude需要重写后端的调用逻辑。需要自己处理错误、重试、超时等边界情况。这个过程繁琐、易错且重复。Vercel AI SDK 的出现就是把上面这些步骤全部标准化、封装化。它的核心价值体现在三个层面第一极简的 API 抽象。它提供了generateText,streamText,generateObject等高层 API。你不需要关心底层是 OpenAI 还是 Anthropic只需要提供统一的prompt和model配置。模型切换几乎就是改一个配置项的事情。这对于需要做模型降级、A/B 测试或者支持多种后端的场景价值巨大。// 使用 Vercel AI SDK 调用 OpenAI import { openai } from ai-sdk/openai; import { streamText } from ai; const result streamText({ model: openai(gpt-4-turbo), prompt: 讲一个关于 AI 的笑话。, }); // 换成 Anthropic 只需改两行 import { anthropic } from ai-sdk/anthropic; import { streamText } from ai; const result streamText({ model: anthropic(claude-3-sonnet-20241022), prompt: 讲一个关于 AI 的笑话。, });第二无缝的流式 UI 集成。这是它最吸引前端开发者的地方。它提供了 React/Vue/Svelte 的 Hooks如useChat,useCompletion让你在组件里直接获得一个实时更新的数据流。// 在 React 组件中使用 import { useChat } from ai/react; export function Chat() { const { messages, input, handleInputChange, handleSubmit } useChat(); return ( div {messages.map(m ( div key{m.id}{m.role}: {m.content}/div ))} form onSubmit{handleSubmit} input value{input} onChange{handleInputChange} / /form /div ); }几行代码一个功能完整的、支持流式响应的聊天界面就出来了。它帮你管理了消息列表的状态、输入框的状态、提交逻辑以及最麻烦的流式数据拼接。你只需要关心 UI 渲染。第三类型安全与良好的开发者体验。作为 Vercel 出品它与 Next.js 深度集成提供了完整的 TypeScript 支持。这意味着更好的代码提示、更少的运行时错误。对于追求开发效率和稳定性的团队来说这能省去大量调试时间。所以当你评估 Vercel AI SDK 时不要问“它能做 RAG 吗”它不能需要你自己实现或结合其他库而要问“我需要花多少时间才能在我的应用里实现一个稳定、流式、支持多模型的聊天功能” 如果答案是“越少越好”那么 Vercel AI SDK 几乎是目前最优解。注意Vercel AI SDK 的“不能”同样重要。它不内置复杂的逻辑编排、没有向量数据库集成、不提供 Agent 运行时。它假设这些“业务逻辑”由你的应用层或其他库如 LangChain来处理它只负责最末端的“模型调用与呈现”。3. 从 LangChain 到 LangGraph当任务从“链条”进化到“图谱”现在我们把镜头转向 LangChain 和 LangGraph。为什么有了 LangChain还需要 LangGraph这源于 AI 应用复杂度的演进。早期的很多任务比如“根据问题检索文档并生成答案”RAG可以很好地被建模为一个链Chain检索 - 组合上下文 - 生成答案。这是一条清晰的、基本无分支的流水线。但智能体Agent的任务不同。想象一个旅行规划 Agent用户说“我想去上海玩三天。”Agent 需要思考需要哪些信息日期、预算、兴趣发现缺少日期于是执行工具反问用户“您计划什么时候出发”用户回答后Agent 再次思考现在有了日期还需要预算和兴趣。再次执行工具调用天气API查询上海那几天的天气。根据天气和用户兴趣思考并生成初步行程。用户可能对行程提出修改Agent 又进入新的思考-执行循环。这个过程不再是简单的链而是一个带有状态循环的图。这里的“状态”就是当前已知的所有信息用户需求、对话历史、工具执行结果。下一步动作取决于当前状态和 LLM 的决策。LangChain 的AgentExecutor其实已经初步实现了这个循环但它的抽象层级相对较高定制复杂循环和状态管理比较麻烦。而 LangGraph 则把这个模式抽象得更加彻底和清晰。LangGraph 的核心概念State状态一个共享的数据结构在整个图执行过程中传递和修改。它定义了当前“知道”的一切。Nodes节点执行具体工作的单元。可以是一个 LLM 调用一个工具调用或者一个条件判断函数。Edges边决定执行流程的方向。可以是固定的always也可以根据某个节点的输出动态决定conditional。用 LangGraph 构建上述旅行 Agent你会明确定义一个State包含messages,user_info,itinerary等字段。多个Node比如plan_node规划节点、ask_user_node询问用户节点、search_weather_node查询天气节点。复杂的Edges例如执行完plan_node后如果状态里缺用户信息就流向ask_user_node如果信息齐全就流向结束。这种范式带来了几个关键优势可视化与可调试性图的结构可以画出来更容易理解整个 Agent 的决策流程。复杂流程支持轻松实现循环、分支、并行、子图将一部分图封装复用这是构建复杂 Agent 的基石。状态管理显式化所有中间数据都放在State里避免了在函数之间隐式传递数据的混乱。持久化与恢复由于整个执行过程由状态驱动理论上可以随时将状态序列化保存之后从中断点恢复执行。这对于长耗时任务非常重要。所以LangGraph 不是 LangChain 的替代品而是它的“增强模块”。当你用 LangChain 的标准链和 Agent 感觉“不够表达”你的复杂逻辑时LangGraph 提供了更强大、更底层的编排能力。很多流行的 Agent 框架和项目底层都采用了类似 LangGraph 的图执行理念。4. 实战选型指南根据你的场景做减法理论讲完了落到实际项目到底怎么选我提供一个简单的决策框架核心思想是“做减法”从最轻量的方案开始评估只有当它无法满足核心需求时才考虑更复杂的方案。第一步明确你的核心输出形态。如果只是需要在网页上有一个流畅的聊天界面或文本生成框99% 的情况下Vercel AI SDK 是你的首选。它能以最小成本解决模型调用和流式 UI 的问题让你专注于业务逻辑和提示词工程。如果你的应用核心是复杂的、多步骤的自动化任务或智能体那么直接进入 LangChain/LangGraph 的领域。第二步评估任务的复杂度和“状态性”。任务是否基本线性例如输入 - 检索 - 生成- 选LangChain标准 Chain。任务是否需要根据中间结果反复循环、分支或调用不同工具例如一个能自主完成科研调研的 Agent- 选LangGraph。不确定先用 LangChain 的标准 Agent 原型验证。如果发现用AgentExecutor写起来很别扭到处用if-else管理流程那就是升级到 LangGraph 的信号。第三步考虑生产环境与团队因素。项目是快速原型还是长期产品原型追求速度Vercel AI SDK 简单后端逻辑可能最快。产品则要考虑长期维护LangChain/LangGraph 的结构化更好。团队技术栈是什么如果团队是前端/全栈为主熟悉 React/Next.jsVercel AI SDK 学习曲线最低。如果团队有较强的 Python 后端或 AI 工程背景LangChain 生态更友好。是否需要服务多个客户或管理多个模型如果“是”并且这构成了产品的核心挑战那么Mastra这类专注于 AI 服务化、多租户管理的框架才值得纳入考量。对于大多数应用内部使用的 AI 功能初期通常不需要 Mastra。一个具体的对照清单你的需求优先考虑原因与备注在 Next.js/React 应用中加个智能聊天框Vercel AI SDK开箱即用流式 UI 集成完美类型支持好。构建一个带知识库文档的问答系统LangChain其 RAG 链是成熟方案有丰富的文档加载器、向量库集成。开发一个能自动使用浏览器、搜索信息的自主 AgentLangGraph需要处理“规划-执行-观察”的复杂循环图结构更合适。做一个内部工具能根据自然语言描述生成 SQL 并查询LangChain通常是线性链解析意图 - 生成 SQL - 安全执行 - 返回结果。开发一个多玩家 AI 角色扮演游戏LangGraph每个角色是一个 Agent需要根据游戏状态持续决策图能很好建模交互。为公司不同部门提供独立的 AI 文案生成服务需隔离计费评估 Mastra核心需求是多租户管理和服务化而非单个 AI 逻辑。已有成熟的 AI 后端只想优化前端体验Vercel AI SDK它甚至可以只用作前端流式处理库对接你自己的后端。最后一个重要的务实建议不要追求“全能框架”。Vercel AI SDK 和 LangChain/LangGraph 完全可以混合使用。一个常见的架构是后端Python使用LangChain/LangGraph实现复杂的业务逻辑链或 Agent提供标准的 API 端点。前端Next.js使用Vercel AI SDK的useChat等 Hook流式消费后端 API 返回的数据。这样各取所长后端利用 LangChain 丰富的生态处理复杂逻辑前端享受 Vercel AI SDK 极佳的开发体验。这种组合在实践中非常强大且常见。技术的选择终究是权衡的艺术。没有最好的只有最适合当前阶段、当前团队和当前问题的。希望这篇分析能帮你拨开迷雾找到那条最适合你项目的路径。