推荐工作流程

  1. 日常开发:使用 langgraph dev 进行快速迭代。
  2. 定期验证:使用 langgraph up 测试主要更改。
  3. 部署前检查:运行 langgraph up --recreate 以获得全新构建。
  4. 部署:通过 LangSmith UI 或 Control Plane API 推送到生产环境。

langgraph dev

langgraph dev 命令直接在您的环境中运行一个轻量级服务器,专为活动开发期间的速度和便利性设计。主要功能包括:
  • 无需 Docker:直接在您的环境中运行。
  • 热重载:当您更改代码时自动重新加载。
  • 启动快速:几秒钟内准备就绪。
  • 内置 调试适配器协议 支持:将您的 IDE 调试器附加到服务器,进行行级断点和调试。
  • 本地存储:状态持久化到本地目录。
dev 服务器使用与生产环境相同的集成测试套件进行测试,以确保其在开发期间使用最少资源时的行为与生产环境一致。
开始之前,请确保您拥有:
  • LangSmith 的 API 密钥(免费注册)。
  • 用于 Python 的 uv 或用于 TypeScript 的 npx。
1

创建 LangGraph 应用

从 new-langgraph-project-python 模板 或 new-langgraph-project-js 模板 创建一个新应用。该模板演示了一个单节点应用,您可以使用自己的逻辑进行扩展。
其他模板
如果您在不指定模板的情况下使用 langgraph new,系统将显示一个交互式菜单,允许您从可用模板列表中进行选择。
2

安装依赖

3

启动 Agent Server

示例输出:
4

测试 API

  1. 安装 LangGraph Python SDK:
  1. 向助手发送消息(无线程运行):

使用场景

将 langgraph dev 用作您的主要开发工具,适用于:
  • 日常功能开发:更改代码后服务器自动重新加载。无需重建容器即可立即测试——非常适合快速迭代周期。
  • 快速原型设计和实验:几秒钟内启动服务器测试想法,无需 Docker 设置开销。
  • 无 Docker 的环境:在 CI/CD 流水线或无法使用 Docker 的轻量级虚拟机中:
  • 调试器附加:使用 --debug-port 将您的 IDE 调试器附加到服务器,在开发期间进行单步调试。

langgraph up

langgraph up 命令协调一个完整的、基于 Docker 的技术栈,该技术栈镜像了生产基础设施,有助于在生产之前发现部署问题。主要功能包括:
  • 验证构建和依赖:测试您的构建过程和依赖。
  • 隔离的网络:逼真的容器网络。
  • 生产验证:验证部署就绪情况。
您的服务器将在 http://localhost:8123 启动,并具有完整的持久化存储。

使用场景

将 langgraph up 用于验证和生产就绪性测试:
  • 部署前验证:在部署到生产环境之前,您可以使用全新构建运行最终检查,确保所有依赖项都已正确指定。
    这可以捕获容器中依赖解析相关的问题以及任何其他构建过程问题。
  • 主要功能验证:实现重大更改后,定期使用完整的生产技术栈进行测试,确保一切在容器化环境中正常工作。
  • Docker 故障排除:调试仅在生产环境中出现的容器特定问题、网络问题或环境变量配置时。

部署前检查清单

在部署应用程序之前,请使用 langgraph up 验证以下内容:

依赖配置

langgraph dev 和 langgraph up 都从您的配置文件读取应用程序的依赖项,但它们运行在不同的环境中:
  • langgraph dev 直接在您的本地环境(Python 或 Node.js)中运行代码,不使用 Docker。
  • langgraph up 构建一个 Docker 容器,并在该隔离的容器内运行您的代码。
正确配置依赖项可确保两个命令都能正常工作,并且您在本地测试的内容与部署到生产环境的内容相匹配。

langgraph.json 文件

dependencies 字段告诉 CLI 在哪里找到您的应用程序代码。dependencies 字段可以指向:
  • 包含包配置的目录(包含 pyproject.toml、setup.py、requirements.txt 或 package.json)
  • 特定子目录:"dependencies": ["./my_agent"]
  • 特定包:"dependencies": ["my-package==1.0.0"] (Python) 或 "dependencies": ["my-package@1.0.0"] (JavaScript)

包依赖文件

这些文件定义了您的应用程序需要哪些包:
pyproject.toml 示例:
requirements.txt 示例:

依赖解析过程

当您运行 langgraph up 时,CLI 按照以下步骤安装应用程序的依赖项:
  1. langgraph.json 告诉 CLI 在哪里查找您的应用程序代码。dependencies: ["."] 字段指向当前目录。
  2. 查找包配置:CLI 在该目录中查找包配置文件(pyproject.toml、requirements.txt 或 package.json)。
  3. 读取依赖列表:CLI 从配置文件中读取包列表。
  4. 安装包:CLI 使用适合您语言的包管理器(Python 的 uv 或 pip,JavaScript 的 npm)安装所有包。
这种两文件方法分离了关注点:langgraph.json 处理应用程序结构和位置,而包配置文件处理特定于语言的包依赖。 有关安装程序的更多信息,请参阅 CLI 配置文件。

故障排除

如果在依赖安装方面遇到问题,请尝试切换到 pip:
然后重新构建:

调试本地 Docker 设置

即使 langgraph up 在您的本地机器上失败,生产部署也可能成功。这是因为生产环境使用托管基础设施,而 langgraph up 在您的计算机上本地运行完整技术栈。 以下是不影响生产环境的常见本地环境问题。

Docker 配置问题

langgraph up 需要本地安装 Docker:
云部署 不使用您的本地 Docker。 解决方案:安装 Docker,或使用 langgraph dev 进行本地测试。

端口冲突

langgraph up 使用的端口 8123、5432 和 6379 可能已被占用:
解决方案:停止冲突的服务或使用 --port 标志。

资源限制

langgraph up 需要更多内存和磁盘空间用于:
  • PostgreSQL 容器
  • Redis 容器
  • API 服务器容器
解决方案:释放资源或使用 langgraph dev。

网络配置

VPN 连接、防火墙规则或企业代理设置可能会影响本地 Docker 网络。 解决方案:使用 langgraph dev 进行测试,或暂时禁用 VPN/防火墙以隔离问题。

后续步骤

现在您已经在本地运行了一个 LangGraph 应用程序,可以准备部署了: 为 LangSmith 选择托管选项:
  • 云端:设置最快,完全托管(推荐)。
  • 自托管:在您的基础设施中拥有完全控制权。
更多详情,请参阅平台设置比较。 然后部署您的应用: 探索功能:

相关资源