开启你的 Agent 时代:LangChain + LangGraph 项目开发入门及语言堆栈抉择

时间:2026-07-05 08:29:40 来源:互联网

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

开启你的 Agent 时代:LangChain + LangGraph 项目开发入门与语言堆栈抉择

在着手新建项目时,首要困惑往往是:“该选择 Python 还是 TypeScript ?”

本文旨在快速上手LangChain与LangGraph,并重点解析如何挑选最优语言堆栈。

快速理清关系:LangChain vs LangGraph

正式编码前,借助下图理清两者的定位与协作关系:

  1. LangChain: 提供标准化组件(Models, Prompts, Tools, Memory),如同乐高积木。
  2. 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,如果:

  1. 你是 AI 研究员、数据科学家或算法工程师: 日常需使用PyTorch, Pandas, NumPy或Hugging Face模型。
  2. 你的Agent需处理复杂数据: 例如清洗大量Excel或运行数学计算。
  3. 需要前沿流行工具: 许多新Prompt工程或Agent策略仅提供Python版本。

方案 B:坚定选择 TypeScript,如果:

  1. 你是前端或全栈工程师: 核心栈为React, Next.js, Vue或Node.js,不愿为AI引入复杂Python后端。
  2. 追求极低冷启动与Serverless部署: 希望将Agent部署于Next.js Route Handlers或Cloudflare Workers,享受按量付费与毫秒级响应。
  3. 高并发与实时流(Streaming)为刚需: 需要处理大量并发用户,并实现流畅的逐字输出效果。

两大语言堆栈的入门脚手架

无论选择哪门语言,LangGraph的核心概念——状态(State)、节点(Nodes)与边(Edges)均保持一致。

1. Python 入门起步

Python环境中,推荐使用 src 目录布局,并借助 uvpoetry 管理依赖。

# 安装核心依赖
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);

总结:我的最终建议

技术栈无绝对优劣,唯有适合与否。

  1. 若项目为重度依赖算法、强调大模型深度推理与数据处理的独立后端,推荐 Python,其AI生态可简化开发。
  2. 若项目为注重体验、高并发交互、追求快速上市的Web产品,请直接选用 TypeScript,全栈效率极佳。

个人建议常选Python,后续将推出更多深入实例,详细解析智能体开发过程。