Agent 框架选型:Mastra、LangChain / LangGraph 与 OpenAI Agents SDK

# Agent 框架选型:Mastra、LangChain / LangGraph 与 OpenAI Agents SDK

本篇目标

先判断是否需要框架,再从语言、编排、生态、可观测性和迁移成本比较主流方案,避免只会背框架 API。

识别框架价值比较三类方案控制厂商绑定准备选型回答

# 先记住一句话

框架帮你实现循环、状态、工具、记忆和观测,但不会替你定义业务目标、安全边界和评测标准;选型应围绕团队语言和已确认需求,而不是功能列表最长。

# 什么时候先不用框架

只有一两次工具调用、状态简单、没有持久化和人工介入时,直接使用模型 SDK 加少量业务代码更透明。出现循环、分支、持久化恢复(Checkpoint)、人工介入(Human-in-the-loop,HITL)、多模型适配和统一运行追踪(Trace)后,框架的抽象价值才明显。

# 三种框架与自建方案怎样定位

方案 主要定位 Agent 编排能力 更适合 注意点
Mastra TypeScript-first;Agent、Tool、Workflow、Memory、RAG、MCP 和 Eval 一体化 Workflow 支持顺序、并行、分支和循环;每个步骤可以调用 Agent 或 Tool,并支持暂停与恢复 TS/Node 全栈团队快速端到端交付 生态较新,版本升级前核对 API
LangChain + LangGraph + LangSmith LangChain 提供应用抽象,LangGraph 负责状态图,LangSmith 负责追踪评测 支持主 Agent 调用子 Agent、Handoff、Router 和自定义图;可显式控制串行、并行、分支与循环 Python AI 团队、复杂图编排和成熟生态 层次较多,要理解三者边界
OpenAI Agents SDK 与 OpenAI 模型、工具、Handoff 和 Tracing 紧密结合,抽象相对精简 支持 Manager 把 Agent 当作 Tool 调用,也支持 Handoff 把控制权移交给另一个 Agent;还可以用代码组织串行、并行和循环 主要使用 OpenAI 平台、希望快速实现工具型 Agent 若依赖多个 Provider 和高度自定义的运行时,要评估耦合
自建薄层 团队自己编写小型运行封装,行为透明、依赖少 用代码自行实现 Router、状态机、队列和 Agent 调用关系,编排方式最自由 简单流程或强定制运行时 状态、恢复、评测和观测都需要自己建设

什么是 Agent 编排能力

Agent 编排能力就是组织多个 Agent 怎样协作:谁先执行、谁可以并行、结果交给谁汇总、什么时候移交控制权,以及失败后从哪里继续。编排既可以由模型动态决定,也可以由代码或执行图明确控制。

# LangChain、LangGraph、LangSmith 不要混淆

  • LangChain:模型、消息、工具、Agent 和检索等应用抽象;当前 create_agent 建在 LangGraph runtime 上;
  • LangGraph:显式状态图、节点、边、持久化检查点(Checkpoint)、暂停点(Interrupt)和可恢复执行;
  • LangSmith:Trace、调试、数据集、离线/在线评测和部署相关能力。

# 选型问题清单

  1. 团队主语言是 TypeScript 还是 Python;
  2. 任务只是工具循环,还是需要图、并行、暂停和恢复;
  3. 是否必须支持多个模型 Provider;
  4. RAG、Memory、MCP、Eval 是否要一体化;
  5. 自托管、合规和数据驻留要求;
  6. 框架升级、可测试性、可观测性和退出成本;
  7. 团队是否真正理解框架隐藏的状态与重试行为。

# 降低绑定的方法

业务层定义自己的 TaskState、Tool 输入输出 Schema、错误分类和评测集;框架只负责运行适配。不要让页面、数据库和领域规则到处直接依赖框架对象。这样切换模型或编排库时,改动集中在适配层。

# 本知识库为什么同时学 Mastra 和 LangChain

你的全栈背景更适合先用 Mastra 理解 TypeScript Agent 工程;LangChain/LangGraph 则覆盖 Python AI 岗位更常见的生态和复杂持久编排。后续两篇会先讲清框架的核心抽象、运行时和状态边界,再用同一个 “笔记与面试助手” 验证这些知识。

# 高频面试题与回答

回答顺序:先说结论,再解释原因,最后补一个例子或工程边界。不要逐字背诵,记住这条表达主线即可。

1. 2 分钟回答:你怎样选择 Agent 框架参考答案

我先判断是否真的需要框架:只有一两次 Tool Calling 时,原生 SDK 往往更直接;需要状态循环、持久恢复、人工审批和统一追踪时,框架才开始有价值。TypeScript 团队我会评估 Mastra,因为它把 Agent、Workflow、Memory、RAG 和 MCP 放在同一套工具里;Python 或复杂状态图场景会评估 LangChain 加 LangGraph,LangSmith 可用于追踪和评测;如果主要使用 OpenAI 平台并希望抽象较轻,也会考虑 OpenAI Agents SDK。最后用一个真实的小型端到端功能比较完成率、开发和调试体验、延迟、费用以及以后迁出的成本,而不是只看 Demo 少写了几行代码。

2. 框架能解决 Agent 幻觉和安全问题吗?参考答案

不能自动解决。框架可以提供 Guardrail、审批和评测接口,帮助开发者实现防线,但它不知道你的用户权限、业务规则和真实完成条件。最终的数据边界、服务端授权、业务验收和攻击评测仍要由应用自己设计。

3. 为什么不只学 LangChain?参考答案

因为框架 API 会变化,真正可迁移的是对 Agent Loop、状态、工具、安全和评测的理解。先掌握这些通用原理,再分别用 TypeScript 的 Mastra 和 Python 的 LangChain、LangGraph 落地,就能分清哪些是框架提供的便利,哪些是任何生产系统都要自己承担的责任。

4. 如何做框架概念验证(POC)?参考答案

POC 是用一个小而完整的功能验证方案是否可行。我不会只写 Hello World,而会选择一条包含工具调用、持久状态、人工审批、评测和 Trace 的业务链路,让候选框架跑同一组任务,再比较代码复杂度、行为是否可控、延迟、费用、部署方式和出错后是否容易定位。

# 接下来学什么

下一篇学习 Mastra 核心原理,重点建立框架运行时的完整心智模型,再把 Agent、Tool、Workflow、Memory、Eval 和 Observability 映射到 TypeScript 项目。

# 参考资料

上次更新时间: 2026年09月10日 00:05:23