部署和平台
应用结构
LangGraph 项目的最佳目录结构与配置规范
📚 学习目标
学完这篇文章后,你将能够:
- 组织一个清晰、可扩展的 LangGraph 项目目录
- 编写规范的
langgraph.json和package.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);💡 练习题
- 重构题:你现有的代码可能都在一个
index.ts里。尝试按照上面的目录结构,将 State、Nodes 和 Tools 拆分到不同的文件中。
📚 参考资源
官方文档
✅ 总结
本章要点:
- 结构化:
nodes/,state/,tools/分离,有助于维护。 - Entrypoint:
agent.ts只负责组装。 - Config:使用
langgraph.json声明入口。
下一步:最好的开发体验是什么样的?继续学习:LangGraph Studio。
登录以继续阅读
解锁完整文档、代码示例及更多高级功能。