LangChain与LangGraph项目入门:Agent开发语言栈对比
大语言模型已从单纯的问答交互演进为能自主推理、调用外部工具的智能体(Agent),传统开发模式渐显瓶颈。为此,LangChain与LangGraph成为AI开发者构建高级应用的基石——前者是大模型编排框架,后者专注构建复杂、有状态、支持循环的多Agent系统。
当你准备启动新项目时,首要难题往往是:究竟该选 Python 还是 TypeScript (Node.js)?
本文助你快速上手 LangChain + LangGraph,重点拆解语言堆栈的选型逻辑,帮你做出精准决策。
理解核心关系:LangChain vs LangGraph
动手前先厘清两者的定位与协作方式,一张图即可看清:
- LangChain: 提供标准化组件,如模型(Models)、提示词(Prompts)、工具(Tools)、记忆(Memory),如同乐高积木。
- LangGraph: 负责将这些积木组装成图结构(Graphs),其核心突破是支持循环(Cyclic)结构——Agent 可思考、调用工具、校验结果,不满意时能“回退”重新推理与重试。这是传统线性链式结构(Chains)无法实现的。
️ 选型对决:Python vs TypeScript,如何抉择?
LangChain 团队高度重视多语言生态,Python 与 JS/TS 版本几乎同步迭代。但语言选择直接影响工程架构与后续维护成本,下面拆解各自的优劣势。
对比剖析:两张王牌
| 维度 | Python 堆栈 (langchain + langgraph) | TypeScript/JS 堆栈 (@langchain/core + langgraph) |
|---|---|---|
| 主要应用场景 | 数据科学、模型微调、复杂 AI 算法实验、企业级大模型后端。 | 全栈 Web 应用、Serverless/Edge 部署、前端无缝集成。 |
| 生态成熟度 | 绝对领先。最新论文实现、冷门向量数据库、小众工具集成,100% 优先支持 Python。 | 高度成熟。核心功能完全对齐,少数冷门第三方工具需自行封装。 |
| 并发与异步 | 依赖 asyncio,高并发 I/O 场景需谨慎编写异步代码。 | 天生优势。Node.js 事件循环与异步 I/O 在处理多用户高并发、流式传输(Streaming)时极为流畅。 |
| 部署与运行 | 需配置 Python 虚拟环境,容器化(Docker)较重,不适用边缘计算。 | 极轻量。完美适配 Vercel、Cloudflare Workers、Supabase Functions 等边缘/Serverless 架构。 |
场景选型指南:对号入座
方案 A:选 Python,若满足以下条件:
- 你是 AI 研究员、数据科学家或算法工程师: 频繁使用 PyTorch、Pandas、NumPy 或 Hugging Face 模型。
- Agent 需承担复杂数据处理: 例如清洗百万级 Excel、执行高密度数学计算。
- 追求前沿工具与模型: 学术界最新 Prompt 工程或 Agent 策略,多数仅提供 Python 源码。
方案 B:选 TypeScript,若满足以下条件:
- 你是前端或全栈工程师: 核心栈为 React、Next.js、Vue 或 Node.js,不愿为 AI 功能引入复杂 Python 后端架构。
- 追求极低冷启动时间与 Serverless 部署: 希望将 Agent 部署在 Next.js Route Handlers 或 Cloudflare Workers 中,按量付费且毫秒级冷启动。
- 高并发与实时流(Streaming)是硬性需求: 应用需支撑大量并发用户,并输出极致流畅的打字机效果(Stream)。
️ 两大语言堆栈的入门脚手架
无论选哪种语言,LangGraph 的核心概念——状态(State)、节点(Nodes)和边(Edges)完全一致。
1. Python 快速起步
在 Python 中推荐采用现代 src 项目布局,使用 uv 或 poetry 管理依赖。
复制代码# 安装核心依赖
pip install langchain-core langgraph langchain-openai
最小可行代码:
复制代码from typing import Annotated
from typing_extensions import TypedDict
from langgraph.graph import StateGraph, START, END# 1. 定义图的状态(State)
class State(TypedDict):
input: str
output: str# 2. 定义节点(Node)逻辑
def agent_node(state: State):
return {"output": f"AI 处理后的结果: {state['input']}"}# 3. 构建图
builder = StateGraph(State)
builder.add_node("agent", agent_node)
builder.add_edge(START, "agent")
builder.add_edge("agent", END)graph = builder.compile()
print(graph.invoke({"input": "你好!"}))
2. TypeScript 快速起步
若使用 Node.js 环境,配置非常直接。
复制代码# 安装核心依赖
npm install @langchain/core @langchain/langgraph @langchain/openai
最小可行代码:
复制代码import { StateGraph, START, END } from "@langchain/langgraph";// 1. 定义图的状态结构
const GraphState = {
input: { value: (x: string, y: string) => y, default: () => "" },
output: { value: (x: string, y: string) => y, default: () => "" },
};// 2. 定义节点
const agentNode = (state: typeof GraphState) => {
return { output: `AI 处理后的结果: ${state.input}` };
};// 3. 构建图
const workflow = new StateGraph({ channels: GraphState })
.addNode("agent", agentNode)
.addEdge(START, "agent")
.addEdge("agent", END);const graph = workflow.compile();
const result = await graph.invoke({ input: "你好!" });
console.log(result);
最终建议
技术栈没有绝对优劣,只有场景适配度。
- 若你构建的是重度依赖算法、强调大模型深度推理与数据处理的独立后端服务,选 Python——其丰富的 AI 生态能大幅降低开发阻力。
- 若你打造的是注重用户体验、追求高并发交互、希望快速推向市场的 Web 产品(如 SaaS 应用),果断上 TypeScript——全栈统一的技术栈能极大提升迭代效率。
对个人开发者而言,Python 可能是更稳妥的起点。后续我们将推出更多示例,逐步拆解 Agent 开发的全流程,从基础概念到生产级实践,带你打通整条技术链路。
