
2026 年用于构建 agent 的开源工具包已经已经得到了巨大的发展,所以本篇文章将从以下角度来帮助你如何选择最适合你的工具:延迟预算、审计追踪、模型可移植性、还是语言栈。

我们总结了7层需求,选择每一层的工具时,可以问三个问题:
主要约束是什么? 四个约束决定了大多数层的选择。延迟预算是每轮能花多少 token 或毫秒;审计追踪是每个行为是否必须可追溯以满足合规;模型可移植性是技术栈对单个供应商的依赖程度;语言栈是团队用 Python、TypeScript 还是两者兼用。通常其中一项在每一层占主导。
选错之后的替换成本是多少? 换一个 MCP 服务器改一行配置就够了。换编排层需要重写状态 schema、节点和边。重写幅度越大,越应该先按约束来选。
它是开源还是开放核心? 开放核心项目以开源许可证发布,但生产功能(多租户认证、复制、SSO、审计日志)只在托管云产品里运行。仓库的功能列表会告诉你买的是哪一边。
编排层运行 agent 的推理循环。LLM 选择行为,运行时执行,运行时观察结果,LLM 再次选择。没有这一层就要自己写循环——上线前得重新实现重试、checkpointing 和人在环门控。

LangGraph 是 Python 生产环境的默认选择。基于图的状态机,通过 PostgresSaver 实现持久化执行,支持时间旅行调试,企业用户名单(Klarna、Uber、LinkedIn、JPMorgan、Replit)是该领域最大的经验证列表。图状态结构恰好契合受监管行业的需要:每次状态转换都是审计日志里的一条记录,崩溃的运行可以回滚到上一个节点并从那里重放。不过它太大了,哪怕只是两个 agent 的流程,也需要定义状态 schema、节点、边,再经过编译。对于"顺序调用三个工具"这类场景,用它确实过重了。
CrewAI 是四个编排框架中设置成本最低的。声明角色(researcher、writer、reviewer),选择协作模式,无需先定义状态 schema 就能跑起来。天它以牺牲生产耐久性为代价换取了原型开发速度。框架无法从崩溃点恢复运行,错误处理在 crew 级别而非每个节点级别,也没有可检查的状态 schema 记录 agent 在什么时候做了什么决定。等到生产状态管理比角色隐喻更重要的时候,团队就会从 CrewAI 迁移到 LangGraph。
Pydantic AI 把所有 agent 输出都当作带类型的 Pydantic 模型处理,校验、重试和下游序列化因此自动获得。工具和依赖关系采用 FastAPI 风格的装饰器。多 agent 原语弱于 CrewAI 或 LangGraph。最适合的场景是 agent 作为单循环运行,且必须向下游服务返回经过验证的数据。
Mastra 是 TypeScript 写的。agent、工作流、RAG 和评估集成在一个包里,由前 Gatsby 创始人开发,设计上可以直接嵌入现有的 Next.js 应用而不需要 Python 辅助服务。不过这个生态系统较小,生产案例研究比 LangGraph 少。团队已经在端到端 TypeScript 栈上且不打算用 Python 重写时,选 Mastra。
上下文窗口不是记忆。哪怕是 200K token 的窗口,每轮对话都要为整个对话重新计算,会话结束后什么都不会留下。2026 年的生产级 agent 把记忆放在一个独立于提示的专用层里。

Mem0 的记忆可以按用户(跨所有会话持久化)、会话(仅当前对话)或 agent(跨该 agent 的所有用户共享)分别限定范围。混合存储结合了向量与图,有成熟的 SDK 可接入 LangGraph、CrewAI 和 Mastra。GitHub 48,000+ 星标。ECAI 2025 论文在 LoCoMo 上对 Mem0 和十种替代方案进行了 benchmark 测试,相比朴素的全上下文(每个团队第二周就会丢掉的基线),延迟降低 92%,token 减少 93%,在相同召回率下推理成本大约便宜 14 倍。不过Mem0 把记忆当作检索,返回与查询最相似的事实。时间推理——比如"用户上周说的和今天说的有矛盾"——需要一个用时间戳跟踪事实间边关系的图
Zep / Graphiti 是时间图选项。知识图谱层处理实体解析:确定"Alice"、"alice@ a"和"CEO"指向同一个人。它还跟踪关系随时间的变化,使 agent 能回答"这个客户在 Q2 的状态是什么样的"或"合同负责人是什么时候换的"。代价是图构建很昂贵——Zep 每条对话的记忆占用超过 600,000 token,而 Mem0 只有 1,764;刚输入后的检索也经常失败,因为正确答案只有后台图处理完成后才会出现。需要 agent 对历史进行推理、且能接受等待秒级而非毫秒级的场景,选 Zep。
Letta(原名 MemGPT) 把记忆当作操作系统来处理。主上下文是 RAM,归档记忆是磁盘,agent 决定把什么升级到 RAM、归档到磁盘或丢弃。完全开源、模型无关、从一开始就支持自托管。分页进出记忆的机制让 agent 的有效上下文得以远超 LLM 原生窗口的限制——和操作系统给程序提供比物理 RAM 更多的虚拟内存是同一个思路。不过这个需要自己运行存储层。比起调用托管的 Mem0 端点,Letta 更难部署,调试也更复杂,因为记忆决策是 agent 在运行时内部做出的。
两年前这一层还是函数调用:每家供应商有自己的 JSON schema,每个框架以不同方式包装它们,换模型就得重写工具。
不过现在这一层已经统一成 MCP了。Model Context Protocol 是 Claude Agent SDK 使用的开放标准,OpenAI Agents SDK 原生支持,Google ADK 集成,每个严肃的框架现在都为其提供了客户端。如果今天在写工具,就是在写 MCP 服务器。
这一层没有框架可选。第 1 层的编排选择已经决定了 MCP 如何集成。

FastMCP 是用于快速编写 MCP 服务器的 Python 框架。基于装饰器、异步优先,是最接近 FastAPI 体验的 MCP 写法。mcp-agent 是一个围绕 MCP 作为主要工具接口构建的编排框架,服务器生命周期、多服务器路由和提示上下文处理都内置其中。用 LangGraph 或 CrewAI 时这些集成代码需要自己写。当 agent 连接多个 MCP 服务器、集成代码开始成为瓶颈时,可以看一下 mcp-agent。
当 agent 需要操作的系统没有暴露 API 时,工具包必须通过屏幕来操作。2026 年的领域分为两种架构方案:DOM 驱动(解析页面、找到元素、点击)和视觉驱动(截屏、交给视觉模型、点击像素)。

Browser Use 是 Python 的默认选择。50,000+ GitHub 星标,2025-2026 年增长最快的开源 AI 项目之一。LLM 通过 agent 循环获得浏览器的完整控制权,与 LangChain、CrewAI 和自定义框架集成。这个最大的问题是每一步都消耗一次 LLM 调用,新颖任务尚可,重复工作流则成本过高。一般情况下生产环境通常把重复的 80% 缓存到 Playwright(确定性浏览器自动化库)里,Browser Use 只处理需要推理的 20%。
Stagehand 是 TypeScript 的对应选项。来自 Browserbase 的开源 SDK,MIT 许可证,构建在 Playwright 之上。四个原语让开发者在需要推理的步骤上保留 AI 推理,其余部分用脚本化的 Playwright 代码处理。Stagehand v3(2026 年 2 月)在 Chrome DevTools Protocol 上重写了引擎,速度提升 44%。
Skyvern 是视觉优先选项。每个任务经过三阶段流水线:规划器将目标分解为步骤,执行器把截图发给视觉模型并点击其返回的坐标,验证器确认页面发生了变化。Skyvern 在 WebVoyager 2.0 上得分 85.85%,这是在 DOM 不可靠的领域(canvas 元素、嵌套在 iframe 中的 React 虚拟 DOM、反机器人机制)中表单填写任务的最强已发布分数。换算成实际使用:大约七分之一的多步骤任务还是会失败。这个最大的问题就是费钱,视觉驱动栈在常见任务上落后 DOM 驱动栈 12-17 个点,每一步的成本高 4-8 倍。
2026 年的生产模式通常两者并用:DOM 驱动作为主路径,Skyvern 或 Anthropic Computer Use 或 OpenAI CUA 作为选择器在 canvas 元素或反机器人屏幕上持续失败时的备选路径。
编码 agent 现在自成一类。它们编写代码、运行代码、在出错时调试、翻文档弄清楚错在哪里。与其他六层不同,这一层额外带了三样东西:沙箱化的文件系统(用于编写和编辑代码而不逃逸到宿主机)、终端访问(用于运行构建、测试和 linter)、以及一个浏览器工具(因为一半的工作涉及阅读文档)。这个类别有自己的 benchmark——SWE-bench Verified,一组精选的真实 GitHub issue,agent 必须将其解决为可运行的 PR。

OpenHands(原名 OpenDevin) 是生产级的自主选项。72,000+ GitHub 星标,$18.8M A 轮融资,在 AMD、Apple、Google、Amazon、Netflix 和 NVIDIA 的生产环境中使用。事件流架构每轮经过四个状态:agent 推理、agent 发出行为、环境执行、环境返回观察结果。每个会话在隔离的 Docker 沙箱里运行。这个类别的核心指标是 agent 能在多大比例的真实 bug 工单上端到端解决而无需人工介入——OpenHands 在 SWE-bench Verified 上使用 Claude 4.5 得分 53%+,已发布的平台结果用 Claude 4 达到 72%。不过他的agent 有 shell 访问权限,审查不能放在 OpenHands 内部,必须落在 PR 层面。
Aider 是终端原生选项,也是最初的开源编码 agent。35,000+ GitHub 星标,93 个版本累计 13,100+ 次提交。天生集成 git:每个变更都成为一次提交,自动生成的消息说明改了什么,整个 agent 会话的轨迹就在 git 历史里。架构师/编辑器模式把工作分给两个模型:较强的那个规划编辑,较便宜的那个写代码。拆分后成本比全程用顶级模型降低 30-40%。Aider 在 SWE-bench Verified 上使用 Claude 4.5 得分 32%,远低于 OpenHands因为每个行为都有 git 记录。他的最大问题是仅限终端,没有 IDE 集成,项目级上下文也仅限于传递给 Aider 的文件。
Cline 是 VS Code 原生的选项。38,000+ GitHub 星标,完全开源,模型无关,是 VS Code 团队中唯一拥有实际市场份额的工具。计划模式和行动模式将意图与执行分离:计划模式起草变更列表并暂停等待审批,行动模式执行已批准的计划。每个行为在接触代码库之前都可以审查——这正是工程经理首先会问的设计要点。团队在 VS Code 上工作且政策要求每步都有人工审查时,选 Cline。
2026 年运行生产级编码 agent 的团队大多会并用两个:一个商业版(Claude Code、Codex)处理困难任务,一个开源版保持灵活性和故障转移能力。
评估与可观测性层记录 agent 在生产中做了什么,并在上线前测试它能做什么。追踪捕获每次 LLM 调用、工具调用和成本,按用户和会话索引,出现错误输出时可以重放产生它的确切上下文。评估是可重复的测试套件,agent 针对固定输入运行,每次按相同标准评分。2026 年的生产级 agent 团队从第一天起就把两者都接入。跳过这一层是 agent 工程里代价最高的一个决策失误。

Langfuse 是开源可观测性的默认选择。开放核心模式,自托管层级相当慷慨,与 LangGraph、CrewAI、OpenAI Agents SDK 和 Mastra 有原生集成。每次 LLM 调用、工具调用和成本都被追踪并索引。托管保留、SSO 和高级评估功能在 SaaS 计划上运行,自托管版本覆盖追踪和仪表板。
Arize Phoenix 是 OpenTelemetry 原生的替代方案。追踪数据流入已有的 Grafana、Datadog 或 Honeycomb 仪表板,agent 遥测与 API 和服务追踪放在一起,而不是独立的工具。在 RAG 评估和检索质量方面表现突出。Phoenix 不提供有预设的 agent 特定默认配置,流水线组装要自己来。
Inspect AI 是英国 AI 安全研究所的开源评估框架,为安全评估而编写:测试 agent 是否拒绝越狱、泄漏 PII 或生成不安全内容。前沿实验室现在也用它做能力和对齐 benchmark。Inspect 只用于离线评估,需要实时观测生产状态的话,还需要搭配 Langfuse 或 Phoenix。
agent 走的每一步至少是一次推理调用,通常更多。运行这些调用的引擎——包装 GPU 的软件、批处理请求、管理 KV 缓存——决定了其他所有事情的成本下限。托管 API 的 agent 继承供应商的引擎;自托管的 agent 自己选择引擎,这个选择决定了大规模运行时的成本。

vLLM 是开源权重模型的生产服务默认选择。核心创新是 PagedAttention:一种内存管理方案,将 KV 缓存切分为固定大小的块,让多个请求共享 GPU 内存而不浪费空间。结合持续批处理,在该领域产生了最高的每美元吞吐量。vLLM仅支持 GPU,优化负担重,且假设操作者清楚 KV 缓存的含义。
Ollama 是本地默认选择。一行安装,从 registry 下载量化模型,暴露 OpenAI 兼容的 API。量化将权重从 16 位压缩到 4 或 8 位,以少量精度损失换取在笔记本电脑 RAM 中运行的能力。Ollama 不适合作为单用户之外的生产服务层。
llama.cpp 是 Ollama 运行的底层引擎。纯 C++,无 GPU 依赖,可以在 CPU、Apple Silicon、Raspberry Pi 和任何有足够 RAM 的设备上运行 LLM。这个项目还定义了 GGUF——用于分发量化开源权重模型的文件格式,相同的模型文件在所有基于 llama.cpp 的工具上可以原封不动地运行。llama.cpp 只适合本地和离线工作负载。
SGLang 是较新的挑战者,两个设计选择使其与众不同。当多个请求共享开头的提示时,SGLang 缓存该前缀的计算结果并复用,而不是每次调用都重新计算;当 agent 需要 JSON 输出时,SGLang 在推理引擎内部强制执行 schema,模型从源头就无法生成无效 JSON。在 agent 工作负载上,SGLang 的 benchmark 结果比 vLLM 快。不过它社区较小,集成较少,在生产大规模场景下不如 vLLM 经过充分验证。
当你看到看到七层图时,第一的反应是假设各层可以垂直组合:选第 1 层,它约束第 2 层,第 2 层约束第 3 层,正确的工具集其实是每个格子都能拼在一起的那个。
2026 年大多数 agent 重写项目都是从这个假设开始的。没有任何一个生态在七层上全部同类最佳;层之间的集成也从未被设计为可组合的,它们在薄薄的接缝处对接:一个配置文件、一个 import、一个 HTTP 调用。
这七层是七个独立的决策,每一层都有一个主要约束决定胜者。四个约束决定了大多数选择:延迟预算、审计追踪、模型可移植性、语言栈。

延迟优先的栈倾向于 Mem0 和 vLLM;审计优先的栈倾向于 LangGraph 和 Langfuse;模型可移植性要求远离供应商 SDK;语言栈倾向于 Mastra 或 Pydantic AI。试图用一个生态满足全部四个约束,结果是每一层都选了平均水平的工具,而不是每层最合适的那个。
在替换生产 agent 中的任何一层之前,可以先查这张表。状态列告诉你需要迁移多少。锁定列告诉你切换时会放弃什么。演示到生产列告诉你替换实际需要多长时间。

by Paolo Perrone
本文分享自 DeepHub IMBA 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!