langgraph.json 文件以使用共享依赖项。
仓库结构
有关完整的工作示例,请参阅:LangGraph.json 配置
将 langgraph.json 文件放在智能体的目录中(而不是在 monorepo 根目录中)。确保文件遵循所需的结构:- 检测以
"."开头的相对路径。 - 根据需要将父目录添加到 Docker 构建上下文。
- 支持真实包(带有
pyproject.toml/setup.py)和简单的 Python 模块。
- 共享工作区依赖项由您的包管理器自动解析。
- 您的
package.json应使用工作区语法引用共享包。
package.json 示例:
构建应用程序
运行langgraph build:
- 自动检测相对依赖项路径。
- 将共享包复制到 Docker 构建上下文中。
- 按正确顺序安装所有依赖项。
- 不需要特殊标志或命令。
- 使用您调用
langgraph build的目录(在本例中为 monorepo 根目录)作为构建上下文。 - 自动检测您的包管理器(yarn、npm、pnpm、bun)
- 运行适当的安装命令。
- 如果您有自定义构建/安装命令中的一个或两个,它将从您调用
langgraph build的目录运行。 - 否则,它将从
langgraph.json文件所在的目录运行。
- 如果您有自定义构建/安装命令中的一个或两个,它将从您调用
- 可选地从
langgraph.json文件所在的目录运行自定义构建命令(仅当您传递--build-command标志时)。
提示和最佳实践
-
将智能体配置保留在智能体目录中:将
langgraph.json文件放在特定的智能体目录中,而不是在 monorepo 根目录中。这使您可以在同一个 monorepo 中支持多个智能体,而无需在同一个 LangSmith 部署中部署它们。 -
为 Python 使用相对路径:对于 Python monorepo,在
dependencies数组中使用相对路径,如"../../shared-package"。 - 为 JS 利用工作区功能:对于 JavaScript/TypeScript,使用包管理器的工作区功能来管理包之间的依赖关系。
- 先在本地测试:在部署之前始终在本地测试您的构建,以确保所有依赖项都正确解析。
-
环境变量:将环境文件(
.env)保留在智能体目录中,以进行特定于环境的配置。