做 Agent 一定要学 Python 吗?
做 Agent 不一定要 Python:Python 赢在框架厚度与数据生态,Node.js 赢在 Web 集成、类型同源、流式体验与边缘部署,这个系列就用 Node.js 从产品维度做 Agent。
最近想做 Agent,翻了一圈教程,基本都是用 Python 的。
LangChain 是 Python 的,LangGraph 是 Python 的,AutoGen、CrewAI,清一色 Python。我写了这么多年 Node.js 的全栈,在 AI 这么汹涌的攻势下,我都在想是不是该转语言了?
但看完一圈 Agent 的内容之后,我想做的反而是另一个方向:用 Node.js 做一个 Agent 开发系列,给想从 Web 全栈过渡到 Agent 开发的人一条路径,同时也给自己一个把这件事情讲清楚的机会。
AI ≠ Python
很多人把 AI 研究和AI 应用开发混为一谈。
AI 研究是训练模型、发论文、搞分布式训练的,在这个领域 Python 几乎是唯一选择,没有什么值得争辩的。
但 AI 应用开发不一样。它的任务是把模型的能力变成产品,像调 API、处理流式输出、接工具、管记忆、做评测这些,在这个环节,用什么语言完全取决于你的场景,并没有所谓的标准答案。
在开始之前,我们要知道自己做的是 Agent 应用开发,而不是大模型训练。只有搞清楚这一点,我们才不会在语言选择上产生无谓的焦虑。
搞清楚这一点,我们在语言选择上的焦虑就会少一大半。因为我们做的是 Agent 应用开发,而不是大模型训练。
Agent 开发现状对比
这里基于Web 产品团队把 Agent 做进已有应用的工程化体验,来做一个评分,这不是用来对语言能力进行排名的。
如果你的团队核心目标是论文复现或纯研究,Python 在几乎所有维度上的实际体验都会更高。
| 维度 | Python | Node.js / TypeScript | 说明 |
|---|---|---|---|
| Agent 框架广度与成熟度 | 5 | 3 | Python 首发框架的数量仍然明显领先:LangGraph、CrewAI、AutoGen、PydanticAI 等。TS 侧已经有 LangGraph.js、Mastra、OpenAI Agents SDK (TS)、Vercel AI SDK,不再是“只有 LangChain.js”的局面了,但生态厚度和示例密度仍要落后一档。 |
| 多 Agent 编排开箱能力 | 5 | 3 | Python 有 CrewAI 的 Crews/Flows、AutoGen 的 GroupChat、LangGraph 的图状态机,抽象更成熟。TS 侧 LangGraph.js 覆盖图编排,Mastra 提供 workflow + subagent,OpenAI Agents SDK 有 handoff 模式,也能用,只是我们需要打补丁。 |
| 与 Web 应用集成成本 | 3 | 5 | TS 的优势是路径更短:Agent 可以是 Next.js / Express 里的一个模块,共用类型、中间件和部署流水线。Python 需要 FastAPI 单独起服务,跨语言维护数据结构。 |
| 类型安全与 schema 同源 | 3 | 5 | TS 的类型是语言和工具链的默认项,工具 schema、Zod 校验、SSE 事件类型可以放在同一套系统里。Python 虽然是动态语言,但也并不意味着就没有类型能力了:Pydantic v2 的运行时校验非常成熟,mypy 也能做静态检查。 |
| LLM 集成与数据生态广度 | 5 | 3 | LangChain 官方集成页 Python 侧 1000+,JS/TS 侧 100 多个,差了将近一个数量级。冷门向量库、文档解析器、embedding 预处理,Python 通常能找到现成适配的东西,不用重复造轮子。 |
| 流式与实时交互体验 | 3 | 5 | Vercel AI SDK 把流式输出、工具调用循环、多 provider 切换封装得很好,且与 React / Next.js 的流式渲染直接打通。Python 用 FastAPI + SSE 完全可行,但需要打不少的补丁。 |
| 观测、评估与调试 | 4 | 3 | Python 侧 LangSmith、Logfire、PydanticAI 的 eval 集成相对成熟。TS 侧 Vercel AI SDK 已有 telemetry,Mastra 也在补可观测性,但整体工具链的丰富度仍落后一档。 |
| 边缘 / Serverless 部署 | 3 | 5 | Cloudflare Workers 的冷启动在 ~5ms 量级,AWS Lambda 上 Node/Python 通常在 100–400ms。Python 也能上 Serverless,但包体积和冷启动的工程负担更高。 |
| 运行时成熟度与版本基线 | 5 | 4 | Python 的 asyncio + FastAPI 在生产 Agent 服务上已经非常成熟。Node.js 侧需要注意版本:Node 24 已经是 Active LTS,Node 22 处于 Maintenance LTS,Node 20 已 EOL。选 Node 做 Agent 应当优先 22 或 24 LTS,而不是 20。 |
综合来看,Python 赢在框架厚度和数据生态,Node.js 赢在 Web 集成、类型同源、流式体验和边缘部署。两边的优势是呈现差异的,所以我们最终选型的落点还是要落到产品形态和工程角度上的。
选择 Node.js 的原因
我是全栈开发者,核心技术栈是 Nodejs,可以说是这是我的最大优势,换成搞 Python,等于是自断一臂,能搞,但是要一些时间适应,反而以产品维度为核心去过渡,才是个人认为最好的选择:
-
我的主战场是 Web 应用。Agent 作为产品的一部分,并非是一个独立服务。用 Node.js 集成成本很低。
-
我最熟 Node.js。写技术系列的文章,这种核心技术能力才能写的深入。用我不熟的语言,也不过是一系列的学习笔记,未必能讲出为什么这么设计。
-
市面上 Python Agent 教程已经很多了,但高质量的 Node.js 实战内容不多,我想填补一下这个空白。
当然也要提前说清楚,当我在实战的过程中遇到 Python 独有的高级框架(比如 LangGraph 的图编排),Nodejs 没有平替的方案,那么我会直接指出来,然后讲清楚它做的这件事,如果用 Node.js 怎么自己实现。我尽可能让你学到的是原理,而不是简单的知道怎么用 API。
所以,在我解释了这么多之后,我的读者们~应该清楚我的这个系列不讲怎么调 API,而是围绕产品讲怎么用 Node.js 做 Agent。
怎么读
系列定位
这是我第一次完全以实践为主去做的一个系列,我希望每一篇都能要你做成一件事,而不是简单的会讲个概念。
当然了,我会理论结合实践来搞啦~
技术栈约定
-
运行环境:Node.js 最低是 22 LTS
Node 24 已经是 Active LTS,用它也完全没问题。这个系列以 22 为基线,是因为 22 处于 Maintenance LTS,维护周期稳定,且主流 SDK 和部署平台已经充分适配。
并且Node 22.6+ 后支持
--experimental-strip-types,可以直接node --experimental-strip-types index.ts运行 TypeScript,不需要装 tsx、不需要配 ts-node、不需要先编译。这样一来,示例代码就是.ts直接运行,绕过构建步骤。但要注意,这个功能只会剥离类型,而enum、namespace、参数属性等需要代码转换的语法仍不支持,本系列示例会避开这些语法。如果你还在用 Node 20,代码也能跑,但需要用 tsx 或先
tsc编译,享受不到原生跑 TS 的便利。建议升到 22 及以上。 -
语言:TypeScript
-
核心库:OpenAI Node SDK、Vercel AI SDK(按需引入)
-
不绑定具体框架:核心逻辑用原生写法,框架只做演示。这样你学到的能力可以迁移到任何框架,而不是只会用一个工具。
系列路线图
整个系列 10 篇,每篇解决一个问题:
-
从零跑通一个 Agent —— 写一个最小循环,理解 Agent 的本质
-
工具调用(Function Calling) —— 让 Agent 不只会说,还会动手
-
记忆系统 —— 短期记忆与长期记忆怎么设计
-
规划能力 —— ReAct 与 Plan-and-Execute 的取舍
-
多 Agent 协作 —— 让多个 Agent 配合完成复杂任务
-
RAG 与知识接入 —— 给 Agent 接上私有知识库
-
评估体系 —— 怎么知道你的 Agent 好不好
-
可观测性与调试 —— 追踪和排查 Agent 的决策过程
-
生产化 —— 成本、延迟、稳定性的工程实践
-
完整案例 —— 从需求到上线的端到端实战
你需要的前置知识
必须会的:
-
JavaScript / TypeScript 基础(async/await、Promise、fetch)
-
Node.js 基础(npm、模块、读写文件)
-
基本的 HTTP 概念
不需要会的:
-
Python(这个系列全程 Node.js)
-
机器学习或深度学习理论
-
LLM 底层原理(用到时我会直接讲结论)
环境准备:
-
安装 Node.js 22 LTS,推荐用
nvm或fnm管理多版本,方便切换加分项:
-
用过 OpenAI API
-
有后端开发经验
最后
做 Agent 不一定要学 Python。但你要选对适合自己场景的语言。
如果你的目标是做前沿研究、复现论文、用现成的多 Agent 框架,Python 自然是更具优势。但如果你的目标是把 Agent 做进产品、和你的 Web 技术栈一体化,Node.js 一点也不逊色,而且你不用从零学一门新语言。
下一篇,我将从零写一个能跑的 Agent。跟随我写完,你就会发现,Agent 的核心其实就是一个循环。
你现在用什么语言做 Agent?卡在框架选型、流式输出,还是工具调用?评论区聊聊呗~