跳到主要内容
LangSmith 支持从 monorepo 设置中部署 agent,在这些设置中,您的 agent 代码可能依赖于仓库中其他位置的共享包。本指南展示了如何构建您的 monorepo 并配置您的 langgraph.json 文件以与共享依赖项配合使用。

仓库结构

有关完整的示例,请参阅
my-monorepo/
├── shared-utils/           # Shared Python package
│   ├── __init__.py
│   ├── common.py
│   └── pyproject.toml      # Or setup.py
├── agents/
│   └── customer-support/   # Agent directory
│       ├── agent/
│       │   ├── __init__.py
│       │   └── graph.py
│       ├── langgraph.json  # Config file in agent directory
│       ├── .env
│       └── pyproject.toml  # Agent dependencies
└── other-service/
    └── ...

LangGraph.json 配置

将 langgraph.json 文件放置在您的 agent 目录中(而不是 monorepo 根目录)。确保文件遵循所需结构。
{
  "dependencies": [
    ".",                    # Current agent package
    "../../shared-utils"    # Relative path to shared package
  ],
  "graphs": {
    "customer_support": "./agent/graph.py:graph"
  },
  "env": ".env"
}
Python 实现通过以下方式自动处理父目录中的包:
  • 检测以 "." 开头的相对路径。
  • 根据需要将父目录添加到 Docker 构建上下文中。
  • 支持真实包(带有 pyproject.toml/setup.py)和简单的 Python 模块。
对于 JavaScript monorepo:
  • 共享工作区依赖项由您的包管理器自动解析。
  • 您的 package.json 应使用工作区语法引用共享包。
agent 目录中的 package.json 示例
{
  "name": "customer-support-agent",
  "dependencies": {
    "@company/shared-utils": "workspace:*",
    "@langchain/langgraph": "^0.2.0"
  }
}

构建应用

运行 langgraph build
cd agents/customer-support
langgraph build -t my-customer-support-agent
Python 构建过程:
  1. 自动检测相对依赖路径。
  2. 将共享包复制到 Docker 构建上下文中。
  3. 按正确顺序安装所有依赖项。
  4. 无需特殊标志或命令。
JavaScript 构建过程:
  1. 使用您调用 langgraph build 的目录(在本例中为 monorepo 根目录)作为构建上下文。
  2. 自动检测您的包管理器(yarn、npm、pnpm、bun)
  3. 运行相应的安装命令。
    • 如果您有一个或两个自定义构建/安装命令,它将从您调用 langgraph build 的目录运行。
    • 否则,它将从 langgraph.json 文件所在的目录运行。
  4. (可选)从 langgraph.json 文件所在的目录运行自定义构建命令(仅当您传递 --build-command 标志时)。

提示和最佳实践

  1. 将 agent 配置保存在 agent 目录中:将 langgraph.json 文件放置在特定的 agent 目录中,而不是 monorepo 根目录中。这允许您在同一个 monorepo 中支持多个 agent,而无需将它们全部部署在同一个 LangSmith 部署中。
  2. 对 Python 使用相对路径:对于 Python monorepo,在 dependencies 数组中使用相对路径,例如 "../../shared-package"
  3. 利用 JS 的工作区功能:对于 JavaScript/TypeScript,使用您的包管理器的工作区功能来管理包之间的依赖关系。
  4. 先在本地测试:部署前务必在本地测试您的构建,以确保所有依赖项都正确解析。
  5. 环境变量:将环境文件(.env)保存在您的 agent 目录中,用于特定于环境的配置。

以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.