开启你的 Agent 时代:LangChain + LangGraph 项目开发入门及语言堆栈抉择
大语言模型(LLM)从单轮问答演进为智能体(Agent),传统开发模式已显不足。本文将快速介绍LangChain与LangGraph入门,并解析语言堆栈的最佳选择。

在着手新建项目时,首要困惑往往是:“该选择 Python 还是 TypeScript ?”
本文旨在快速上手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)为刚需: 需要处理大量并发用户,并实现流畅的逐字输出效果。
两大语言堆栈的入门脚手架
无论选择哪门语言,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产品,请直接选用 TypeScript,全栈效率极佳。
个人建议常选Python,后续将推出更多深入实例,详细解析智能体开发过程。