跳到主要内容

环境搭建

引言

工欲善其事,必先利其器。在开始 LangGraphJS 的学习之旅之前,我们需要搭建一个完整的开发环境。本章将为你提供详细的环境搭建指南,确保你能够顺利开始开发工作。

系统要求

基础要求

  • Node.js: 版本 18.0.0 或更高
  • 包管理器: npm (8.0+)、pnpm (7.0+) 或 yarn (1.22+)
  • 操作系统: Windows 10+、macOS 10.15+、Linux (Ubuntu 18.04+)

推荐配置

  • Node.js: 最新 LTS 版本(当前推荐 20.x)
  • 包管理器: pnpm(性能更好,磁盘占用更少)
  • 编辑器: VS Code + TypeScript 插件
版本检查

在开始之前,请检查你的 Node.js 版本:

node --version
npm --version

如果版本过低,请访问 Node.js 官网 下载最新版本。

快速开始

创建新项目

从零开始创建一个 LangGraph 项目:

# 创建项目目录
mkdir my-langgraph-project
cd my-langgraph-project

# 初始化 package.json
pnpm init

# 安装核心依赖
pnpm add @langchain/langgraph @langchain/core @langchain/openai zod dotenv

# 安装开发依赖
pnpm add -D typescript @types/node

如果你使用 npm 或 yarn,只需将 pnpm 替换为相应的命令即可。

为什么推荐 pnpm?
  • 更快的安装速度:利用硬链接和内容寻址存储
  • 节省磁盘空间:全局存储,避免重复下载
  • 更严格的依赖管理:防止幽灵依赖问题

依赖说明

核心依赖

包名作用
@langchain/langgraphLangGraph 核心库
@langchain/coreLangChain 基础功能
@langchain/openaiOpenAI 模型集成
zod数据验证和类型安全
dotenv环境变量管理

可选依赖

根据你的需求,可能还需要以下依赖:

其他模型提供商:

  • @langchain/anthropic - Anthropic Claude
  • @langchain/google-genai - Google Gemini
  • @langchain/ollama - 本地模型

扩展功能:

  • @langchain/community - 预构建工具
  • @langchain/mcp-adapters - MCP 协议支持

环境配置

API 密钥设置

创建 .env 文件来管理 API 密钥:

.env
# OpenAI API 密钥
OPENAI_API_KEY=your_openai_api_key_here

# Anthropic API 密钥(如果使用 Claude)
ANTHROPIC_API_KEY=your_anthropic_api_key_here

# LangSmith 追踪(可选)
LANGCHAIN_TRACING_V2=true
LANGCHAIN_API_KEY=your_langsmith_api_key_here
安全提醒

重要

  1. .env 文件添加到 .gitignore
  2. 不要在代码中硬编码 API 密钥
  3. 在生产环境中使用环境变量或密钥管理服务

TypeScript 配置

创建 tsconfig.json 文件:

tsconfig.json
{
"compilerOptions": {
"target": "ES2022",
"module": "ESNext",
"moduleResolution": "bundler",
"strict": true,
"skipLibCheck": true,
"allowSyntheticDefaultImports": true,
"types": ["node"]
},
"include": ["src/**/*"],
"exclude": ["node_modules"]
}

项目结构

推荐的项目结构:

my-langgraph-project/
├── src/
│ ├── agents/ # Agent 定义
│ ├── tools/ # 自定义工具
│ ├── utils/ # 工具函数
│ └── index.ts # 入口文件
├── .env # 环境变量
├── .gitignore # Git 忽略文件
├── package.json # 项目配置
├── tsconfig.json # TypeScript 配置
└── README.md # 项目说明

验证安装

创建测试文件

创建 src/index.ts 文件来验证环境是否正确:

import 'dotenv/config';
import { StateGraph, Annotation, START, END } from '@langchain/langgraph';
import { HumanMessage } from '@langchain/core/messages';
import { ChatOpenAI } from '@langchain/openai';

// 定义状态
const StateAnnotation = Annotation.Root({
message: Annotation<string>,
});

// 创建 LLM 节点
const llmNode = async (state: typeof StateAnnotation.State) => {
const model = new ChatOpenAI({ model: 'gpt-3.5-turbo' });
const response = await model.invoke([new HumanMessage(state.message)]);
return { message: response.content };
};

// 构建图
const graph = new StateGraph(StateAnnotation)
.addNode('llm', llmNode)
.addEdge(START, 'llm')
.addEdge('llm', END)
.compile();

// 运行
const result = await graph.invoke({ message: '你好!' });
console.log(result.message);

运行测试

# 使用 esno 直接运行 TypeScript(推荐)
esno src/index.ts

预期输出

如果一切配置正确,你应该看到类似以下的输出:

你好!很高兴见到你。我是一个AI助手,有什么可以帮助你的吗?
恭喜!

你已经成功创建并运行了第一个 LangGraph 应用!这个简单的示例展示了 LangGraph 的核心概念:

  • 状态管理:使用 Annotation 定义状态结构
  • 节点:使用函数处理状态转换
  • :定义节点之间的连接关系
  • 执行:通过 invoke 运行整个图

开发工具推荐

VS Code 插件

推荐安装以下 VS Code 插件提升开发体验:

  • TypeScript Importer: 自动导入模块
  • Prettier: 代码格式化
  • ESLint: 代码检查
  • DotENV: 环境变量语法高亮

VS Code 配置

创建 .vscode/settings.json

{
"typescript.preferences.importModuleSpecifier": "relative",
"editor.formatOnSave": true
}

下一步

恭喜!你已经成功搭建了 LangGraphJS 开发环境。现在你可以:

  1. 探索示例:运行更多示例代码,了解不同功能
  2. 学习核心概念:深入理解图、节点、边和状态管理
  3. 构建第一个应用:创建你的第一个智能代理应用

相关资源

获取帮助

如果在环境搭建过程中遇到问题:

  1. 检查文档:首先查看官方文档和本指南
  2. 搜索问题:在 GitHub Issues 中搜索类似问题
  3. 社区求助:在 Discord 或论坛中寻求帮助

下一步

环境搭建完成!让我们继续学习《核心概念》,深入理解 LangGraph 的工作原理。