部署和平台

应用结构

LangGraph 项目的最佳目录结构与配置规范

📚 学习目标

学完这篇文章后,你将能够:

  • 组织一个清晰、可扩展的 LangGraph 项目目录
  • 编写规范的 langgraph.jsonpackage.json
  • 管理多环境配置(Development vs Production)

前置知识

在开始学习之前,建议先阅读:


1️⃣ 推荐目录结构

一个健壮的 LangGraph 项目应该像这样组织:

my-agent/
├── src/
│   ├── agent.ts           # 图的组装入口 (Entrypoint)
│   ├── nodes/             # 节点逻辑
│   │   ├── chatbot.ts
│   │   └── tools.ts
│   ├── state/             # State 定义
│   │   └── index.ts
│   ├── tools/             # 自定义工具
│   │   └── search.ts
│   └── utils/             # 辅助函数
├── tests/                 # 测试
├── .env                   # 环境变量 (不要提交!)
├── langgraph.json         # 部署配置
├── package.json           # 依赖管理
└── tsconfig.json          # TS 配置

2️⃣ 关键文件详解

src/agent.ts

这是图的 "Main" 文件。它负责导入所有节点和边,并 compile 出 app。

import { StateGraph, START } from "@langchain/langgraph";
import { State } from "./state";
import { chatbotNode } from "./nodes/chatbot";

const workflow = new StateGraph(State)
  .addNode("chatbot", chatbotNode)
  .addEdge(START, "chatbot");

export const graph = workflow.compile();

package.json

确保依赖清晰。

{
  "name": "my-agent",
  "dependencies": {
    "@langchain/langgraph": "^0.2.0",
    "@langchain/openai": "^0.3.0"
  }
}

langgraph.json

指向 agent.ts 中导出的 graph

{
  "graphs": {
    "agent": "./src/agent.ts:graph"
  }
}

3️⃣ 环境变量与配置

永远不要在代码中硬编码 API Key。

本地开发

使用 .env 文件。

生产环境

在 LangGraph Platform 的控制台(或 Docker 环境变量)中设置 OPENAI_API_KEY 等。

// 推荐使用 zod 验证环境变量
import { z } from "zod";

const envSchema = z.object({
  OPENAI_API_KEY: z.string(),
  TAVILY_API_KEY: z.string().optional(),
});

export const env = envSchema.parse(process.env);

💡 练习题

  1. 重构题:你现有的代码可能都在一个 index.ts 里。尝试按照上面的目录结构,将 State、Nodes 和 Tools 拆分到不同的文件中。

📚 参考资源

官方文档


✅ 总结

本章要点

  • 结构化nodes/, state/, tools/ 分离,有助于维护。
  • Entrypointagent.ts 只负责组装。
  • Config:使用 langgraph.json 声明入口。

下一步:最好的开发体验是什么样的?继续学习:LangGraph Studio

登录以继续阅读

解锁完整文档、代码示例及更多高级功能。

立即登录

On this page