以编程方式使用文档

LangGraph CLI 是一个用于构建和运行 代理服务器 的命令行工具。生成的服务器会暴露所有 API 端点,用于运行、线程、助手等,并包含支持服务,如用于检查点和存储的托管数据库。

安装

  1. 确保已安装 Docker(例如, docker --version).
  2. 安装 CLI:
    pip install langgraph-cli
    
    # Use latest on demand
    npx @langchain/langgraph-cli

    # Or install globally (available as `langgraphjs`)
    npm install -g @langchain/langgraph-cli
    
  1. 验证安装
    langgraph --help
    
    npx @langchain/langgraph-cli --help
    

快速命令

命令功能
langgraph dev启动一个轻量级本地开发服务器(无需 Docker),适合快速测试。
langgraph build构建 LangGraph API 服务器的 Docker 镜像以便部署。
langgraph deploy一键构建并部署 LangGraph 镜像到 LangSmith Deployments。
langgraph dockerfile根据配置生成 Dockerfile 用于自定义构建。
langgraph up在 Docker 中本地启动 LangGraph API 服务器。需要 Docker 运行;本地开发需要 LangSmith API 密钥;生产环境需要许可证。

对于 JS,请使用 npx @langchain/langgraph-cli <command> (or langgraphjs 如果全局安装)。

配置文件

要构建和运行有效的应用程序,LangGraph CLI 需要一个遵循此 架构的 JSON 配置文件。它包含以下属性:

Python

描述
<span>dependencies</span>**必填**。LangSmith API 服务器的依赖项数组。依赖项可以是以下之一: <ul><li>单个句点("."),它将查找本地 Python 包。</li><li>所在目录的路径。 pyproject.toml, setup.py or requirements.txt 。<br></br>例如,如果 requirements.txt 位于项目目录的根目录,请指定 "./"。如果位于名为 local_package的子目录中,请指定 "./local_package"。不要指定字符串 "requirements.txt" itself.</li><li>Python 包名。</li></ul>
<span>graphs</span>**必填**。从图 ID 到已编译图或创建图的函数所在路径的映射。示例: <ul><li>./your_package/your_file.py:variable,其中 variablelanggraph.graph.state.CompiledStateGraph</li><li>./your_package/your_file.py:make_graph的实例, make_graph 是接受配置字典的函数(langchain_core.runnables.RunnableConfig)并返回 langgraph.graph.state.StateGraph or langgraph.graph.state.CompiledStateGraph。参见 如何在运行时重建图 了解更多详情。</li></ul>
<span>auth</span>_(添加于 v0.0.11)_ Auth 配置,包含身份验证处理程序的路径。示例: ./your_package/auth.py:auth,其中 authlanggraph_sdk.Auth的一个实例。参见 身份验证指南 了解更多详情。
<span>base_image</span>可选。用于 LangGraph API 服务器的基础镜像。默认为 langchain/langgraph-api or langchain/langgraphjs-api。使用此选项可将构建固定到特定版本的 langgraph API,例如 "langchain/langgraph-server:0.2". See https://hub.docker.com/r/langchain/langgraph-server/tags for more details. (added in langgraph-cli==0.2.8)
<span>image_distro</span>可选。基础镜像的 Linux 发行版。必须是以下之一 "debian", "wolfi", "bookworm", or "bullseye"。如果省略,默认为 "debian"。在以下版本中可用 langgraph-cli>=0.2.11.
<span>env</span>.env 文件的路径或从环境变量到其值的映射。
<span>store</span>Configuration for adding semantic search and/or time-to-live (TTL) to the BaseStore. Contains the following fields: <ul><li>index (可选):语义搜索索引配置,包含字段 embed, dims和可选的 fields.</li><li>ttl (可选):项目过期配置。一个包含可选字段的对象: refresh_on_read (布尔值,默认为 true), default_ttl (浮点数,以 **分钟为单位的生命周期**;仅适用于新创建的项目;现有项目保持不变;默认无过期),和 sweep_interval_minutes (整数,检查过期项目的频率,默认为不清理)。</li></ul>
<span>ui</span>Optional. Named definitions of UI components emitted by the agent, each pointing to a JS/TS file. (added in langgraph-cli==0.1.84)
<span>python_version</span>3.11, 3.12, or 3.13。默认为 3.11.
<span>node_version</span>指定 node_version: 20 以使用 LangGraph.js。
<span>pip_config_file</span>pip 配置文件的路径。
<span>pip_installer</span>_(添加于 v0.3)_ 可选。Python 包安装程序选择器。可设置为 "auto", "pip", or "uv"。从 0.3 版本开始,默认策略是运行 uv pip,这通常提供更快的构建速度,同时保持完全兼容。在不常见的情况下,如果 uv 无法处理您的依赖图或您的 pyproject.toml,请指定 "pip" 在此处恢复之前的行为。
<span>keep_pkg_tools</span>_(在 v0.3.4 中添加)_ 可选。控制是否在最终镜像中保留 Python 打包工具(pip, setuptools, wheel)在最终镜像中。可接受的值: <ul><li><code>true</code> :保留所有三个工具(跳过卸载)。</li><li><code>false</code> / omitted : Uninstall all three tools (default behaviour).</li><li><code>list[str]</code> :工具名称 <strong>要保留</strong>。每个值必须是 "pip"、"setuptools"、"wheel" 之一。</li></ul>。默认情况下,所有三个工具都会被卸载。
<span>dockerfile_lines</span>从父镜像导入后,要添加到 Dockerfile 的附加行数组。
<span>checkpointer</span>检查点的配置。支持: <ul><li>backend (可选): "default", "mongo", or "custom"。默认为 "default" (PostgreSQL)。请参阅 配置检查点后端.</li><li>path (可选):自定义检查点工厂的路径(当 backend is "custom")时。请参阅 自定义检查点.</li><li>ttl (可选):包含 strategy, sweep_interval_minutes, default_ttlsweep_limit (代理服务器 v0.8+)的对象,用于控制检查点过期。</li><li>serde (可选,代理服务器 v0.5+):包含 allowed_json_modulespickle_fallback 的对象,用于调整反序列化行为。</li></ul>
<span>http</span>具有以下字段的 HTTP 服务器配置: <ul><li>app: Path to custom Starlette/FastAPI app (e.g., "./src/agent/webapp.py:app")。请参阅 自定义路由指南.</li><li>cors:CORS 配置,包含 allow_origins, allow_methods, allow_headers, allow_credentials, allow_origin_regex, expose_headers等字段。 max_age.</li><li>configurable_headers:定义哪些请求头通过 includes / excludes patterns.</li><li>logging_headers作为可配置值暴露。 configurable_headers :用于从日志中排除敏感头信息的</li><li>middleware_order镜像。 auth_first :选择自定义中间件和身份验证的交互方式。 middleware_first 在自定义中间件之前运行身份验证钩子,而</li><li>enable_custom_route_auth(默认)先运行您的中间件。 app.</li><li>:对通过以下方式添加的路由应用身份验证检查。<ul><li>disable_meta路由禁用标志 — 有选择地关闭内置端点组: / :禁用 /info, /metrics, /docs(根路由)、 /openapi.json/ok 系统路由。</li><li>disable_assistants健康检查仍然可用。 /assistants/* routes.</li><li>disable_runs:禁用所有 /runs/* routes.</li><li>disable_threads:禁用所有 /threads/* routes.</li><li>disable_store:禁用所有 /store/* routes.</li><li>disable_ui:禁用所有 /ui/* routes.</li><li>disable_mcp:禁用 /mcp 端点。请参见 禁用 MCP.</li><li>disable_a2a:禁用 /a2a/* 端点。请参见 禁用 A2A.</li><li>disable_webhooks:在运行完成时禁用 webhook 传递(不是路由切换)。请参见 禁用 webhooks.</li></ul></li><li>mount_prefix: Prefix for mounted routes (e.g., "/my-deployment/api").</li></ul>
<span>webhooks</span>_(添加于 v0.5.36)_ 出站 webhook 传递的配置。包含: <ul><li>env_prefix:标头模板中引用的环境变量的必需前缀(默认为 LG_WEBHOOK_).</li><li>headers:包含在 webhook 请求中的静态标头。值可以包含模板,如 ${{ env.VAR }}.</li><li>url:URL 验证策略,具有 allowed_domains, allowed_ports, require_https, disable_loopbackmax_url_length.</li></ul>
<span>api_version</span>_(添加于 v0.3.7)_ 要使用的 LangGraph API 服务器的语义版本(例如, "0.3")。默认为最新版本。查看服务器 变更日志 了解每个版本的详细信息。

JS

描述
<span>graphs</span>**必需**。从 graph ID 到编译后的 graph 或定义 graph 的函数的路径的映射。例如: <ul><li>./src/graph.ts:variable,其中 variableCompiledStateGraph</li><li>./src/graph.ts:makeGraph的实例,其中 makeGraph 是接受配置字典(LangGraphRunnableConfig)并返回 StateGraph or CompiledStateGraph 实例的函数。请参见 如何在运行时重新构建 graph 了解更多详情。</li></ul>
<span>env</span>.env 文件的路径或从环境变量到其值的映射。
<span>store</span>Configuration for adding semantic search and/or time-to-live (TTL) to the BaseStore. Contains the following fields: <ul><li>index (可选):带字段的语义搜索索引配置 embed, dims和可选的 fields.</li><li>ttl (可选):项目过期配置。具有可选字段的对象: refresh_on_read (布尔值,默认为 true), default_ttl (浮点数,生命周期( **分钟)**;仅适用于新创建的项目;现有项目保持不变;默认为无过期),和 sweep_interval_minutes (整数,检查过期项目的频率,默认为不清理)。</li></ul>
<span>node_version</span>指定 node_version: 20 使用 LangGraph.js。
<span>dockerfile_lines</span>要在从父镜像导入后添加到 Dockerfile 的附加行数组。
<span>checkpointer</span>检查点的配置。支持以下选项: <ul><li>backend (可选): "default", "mongo", or "custom"。默认为 "default" (PostgreSQL)。请参阅 配置检查点后端.</li><li>path (可选):自定义检查点工厂的路径(当 backend is "custom")。请参阅 自定义检查点.</li><li>ttl (可选):包含以下属性的对象 strategy, sweep_interval_minutes, default_ttlsweep_limit (代理服务器 v0.8+)控制检查点过期。</li><li>serde (可选,代理服务器 v0.5+):包含以下属性的对象 allowed_json_modulespickle_fallback 用于调整反序列化行为。</li></ul>
<span>http</span>HTTP 服务器配置,镜像 Python 选项: <ul><li>cors 包含 allow_origins, allow_methods, allow_headers, allow_credentials, allow_origin_regex, expose_headers, max_age.</li><li>configurable_headerslogging_headers 模式列表。</li><li>middleware_order (auth_first or middleware_first).</li><li>enable_custom_route_auth 以及与上述相同的布尔路由开关。</li></ul>
<span>webhooks</span>_(在 v0.5.36 中添加)_ 出站 webhook 投递的配置。包含以下内容: <ul><li>env_prefix:标头模板中引用的环境变量所需的前缀(默认为 LG_WEBHOOK_).</li><li>headers:要包含在 webhook 请求中的静态标头。值可以包含模板,例如 ${{ env.VAR }}.</li><li>url:包含以下内容的 URL 验证策略 allowed_domains, allowed_ports, require_https, disable_loopbackmax_url_length.</li></ul>
<span>api_version</span>_(在 v0.3.7 中添加)_ 要使用的 LangGraph API 服务器的语义版本(例如, "0.3")。默认为最新版本。请查看服务器 更新日志 了解每个版本的详细信息。

示例

Python

基本配置

    {
      "$schema": "https://langgra.ph/schema.json",
      "dependencies": ["."],
      "graphs": {
        "chat": "chat.graph:graph"
      }
    }
    

使用 Wolfi 基础镜像

您可以使用 image_distro 字段指定基础镜像的 Linux 发行版。有效选项为 debian, wolfi, bookworm, or bullseye。Wolfi 是推荐选项,因为它提供更小、更安全的镜像。这在 langgraph-cli>=0.2.11.

    {
      "$schema": "https://langgra.ph/schema.json",
      "dependencies": ["."],
      "graphs": {
        "chat": "chat.graph:graph"
      },
      "image_distro": "wolfi"
    }
    

向存储添加语义搜索

所有部署都附带一个基于数据库的 BaseStore。在您的 langgraph.json 中添加"索引"配置将启用 语义搜索 在部署的 BaseStore 中。

index.fields 配置决定了要嵌入文档的哪些部分:

  • * 如果省略或设置为 ["$"],则整个文档将被嵌入
  • * 要嵌入特定字段,请使用 JSON 路径表示法: ["metadata.title", "content.text"]
  • * 缺少指定字段的文档仍会被存储,但这些字段不会有嵌入向量
  • * 您仍然可以在特定项目上覆盖要嵌入的字段 put 时间使用 index 参数
    {
      "dependencies": ["."],
      "graphs": {
        "memory_agent": "./agent/graph.py:graph"
      },
      "store": {
        "index": {
          "embed": "openai:text-embedding-3-small",
          "dims": 1536,
          "fields": ["$"]
        }
      }
    }
    

使用自定义嵌入函数进行语义搜索

如果您想使用自定义嵌入函数进行语义搜索,可以传递一个自定义嵌入函数的路径:

    {
      "dependencies": ["."],
      "graphs": {
        "memory_agent": "./agent/graph.py:graph"
      },
      "store": {
        "index": {
          "embed": "./embeddings.py:embed_texts",
          "dims": 768,
          "fields": ["text", "summary"]
        }
      }
    }
    

存储配置中的 embed 字段可以引用一个自定义函数,该函数接受字符串列表并返回嵌入向量列表。示例实现:

    # embeddings.py
    def embed_texts(texts: list[str]) -> list[list[float]]:
        """Custom embedding function for semantic search."""
        # Implementation using your preferred embedding model
        return [[0.1, 0.2, ...] for _ in texts]  # dims-dimensional vectors
    

添加自定义身份验证

    {
      "$schema": "https://langgra.ph/schema.json",
      "dependencies": ["."],
      "graphs": {
        "chat": "chat.graph:graph"
      },
      "auth": {
        "path": "./auth.py:auth",
        "openapi": {
          "securitySchemes": {
            "apiKeyAuth": {
              "type": "apiKey",
              "in": "header",
              "name": "X-API-Key"
            }
          },
          "security": [{ "apiKeyAuth": [] }]
        },
        "disable_studio_auth": false
      }
    }
    

请参阅 身份验证概念指南 了解更多详情,以及 设置自定义身份验证 指南,了解整个过程的实际操作步骤。

<a id="ttl"></a> #### 配置存储项目生存时间

You can configure default data expiration for items/memories in the BaseStore using the store.ttl 键。这决定了项目在最后一次访问后的保留时间(读取操作可能会根据 refresh_on_read重置计时器)。请注意,这些默认值可以通过修改 get, search等中的相应参数来按调用覆盖。

ttl 配置是一个包含可选字段的对象:

  • * refresh_on_read: If true (默认),通过访问项目会 get or search 重置其过期计时器。设置为 false 以仅在写入时刷新 TTL(put).
  • * default_ttl:项目的默认生存时间(以 **分钟为单位**)。仅适用于新创建的项目;现有项目不会被修改。如果未设置,项目默认不会过期。
  • * sweep_interval_minutes:系统应运行后台进程删除过期项目的频率(以分钟为单位)。如果未设置,清扫不会自动进行。

以下是一个启用 7 天 TTL(10080 分钟)、读取时刷新、每小时清扫的示例:

    {
      "$schema": "https://langgra.ph/schema.json",
      "dependencies": ["."],
      "graphs": {
        "memory_agent": "./agent/graph.py:graph"
      },
      "store": {
        "ttl": {
          "refresh_on_read": true,
          "sweep_interval_minutes": 60,
          "default_ttl": 10080
        }
      }
    }
    

<a id="ttl"></a> #### 配置检查点生存时间

您可以使用 checkpointer 键配置检查点的生存时间(TTL)。这决定了检查点数据在被自动处理前的保留时间。系统支持两个可选的子对象配置:

  • * ttl:包括 strategy, sweep_interval_minutes, default_ttlsweep_limit (Agent 服务器 v0.8+),它们共同设置检查点的过期方式。
  • * serde _(Agent 服务器 v0.5+)_ :让您控制检查点负载的反序列化行为。

以下是一个设置默认 TTL 为 30 天(43200 分钟)的示例:

    {
      "$schema": "https://langgra.ph/schema.json",
      "dependencies": ["."],
      "graphs": {
        "chat": "chat.graph:graph"
      },
      "checkpointer": {
        "ttl": {
          "strategy": "delete",
          "sweep_interval_minutes": 10,
          "default_ttl": 43200
        }
      }
    }
    

在此示例中,超过 30 天的检查点将被删除,并且每 10 分钟执行一次检查。

配置检查点序列化

checkpointer.serde 对象形状反序列化:

  • * allowed_json_modules 定义了你希望服务器能够从保存在"json"模式的载荷中反序列化的自定义Python对象的允许列表。这是一个 [path, to, module, file, symbol] 序列。如果省略,则只允许LangChain安全默认值。你可以不安全地设置为 true 来允许任何模块被反序列化。
  • * pickle_fallback:是否在JSON解码失败时回退到pickle反序列化。
    {
      "checkpointer": {
        "serde": {
          "allowed_json_modules": [
            ["my_agent", "auth", "SessionState"]
          ]
        }
      }
    }
    

自定义HTTP中间件和请求头

http 块允许你微调请求处理:

  • * middleware_order:选择 "auth_first" 在中间件之前运行认证,或 "middleware_first" (默认)来反转该顺序。
  • * enable_custom_route_auth:将对认证的扩展应用到你通过 http.app.
  • * configurable_headers / logging_headers挂载的路由:每个都接受一个带有可选的 includesexcludes 数组的对象;支持通配符,排除规则优先于包含规则。
  • * cors:自定义服务器的CORS(跨域资源共享)配置。示例 langgraph.json 配置文件用于配置CORS:
        {
          ...
          "http": {
            "cors": {
              "allow_origins": ["https://example.com", "https://app.example.com"],
              "allow_methods": ["GET", "POST"],
              "allow_headers": ["Authorization", "Content-Type"],
              "allow_credentials": true,
              "allow_origin_regex": "^https://.*\\.example\\.com$",
              "expose_headers": ["x-pagination-total", "x-pagination-next", "x-request-id"],
              "max_age": 600
            }
          },
          ...
        }
        

配置Webhook

可以为出站webhook请求配置自定义请求头和URL限制:

    {
      "$schema": "https://langgra.ph/schema.json",
      "dependencies": ["."],
      "graphs": {
        "chat": "chat.graph:graph"
      },
      "webhooks": {
        "headers": {
          "Authorization": "Bearer ${{ env.LG_WEBHOOK_TOKEN }}"
        },
        "url": {
          "allowed_domains": ["*.mycompany.com"],
          "require_https": true
        }
      }
    }
    

参见 使用Webhook 了解请求头配置、环境变量模板和URL限制的详细信息。

<a id="api-version"></a> #### 固定API版本

_(在v0.3.7中添加)_

可以通过使用 api_version 键来固定Agent Server的API版本。如果你想确保服务器使用特定版本的API,这很有用。 默认情况下,云部署中的构建使用服务器的最新稳定版本。可以通过将 api_version 键设置为特定版本来固定。

    {
      "$schema": "https://langgra.ph/schema.json",
      "dependencies": ["."],
      "graphs": {
        "chat": "chat.graph:graph"
      },
      "api_version": "0.2"
    }
    

禁用内置路由

可以使用 http 配置块中的布尔标志来选择性地禁用内置HTTP路由组。这对于你想要最小化服务器暴露面的生产部署很有用。

例如,要禁用系统信息和文档路由:

    {
      "$schema": "https://langgra.ph/schema.json",
      "dependencies": ["."],
      "graphs": {
        "chat": "chat.graph:graph"
      },
      "http": {
        "disable_meta": true
      }
    }
    

设置 disable_meta to true 会禁用以下路由:

  • - / — 根健康检查
  • - /info — 服务器版本和配置信息
  • - /metrics — Prometheus和JSON指标
  • - /docs — API文档UI
  • - /openapi.json — OpenAPI规范

/ok 健康检查端点即使在 disable_meta 被设置时仍然可用,这样Kubernetes等编排工具仍然可以执行存活探针和就绪探针。

其他路由禁用标志包括 disable_assistants, disable_runs, disable_threads, disable_store、和 disable_ui。对于MCP、A2A和webhook,请参阅各自的指南: 禁用 MCP, 禁用 A2A, 禁用 Webhook.

JS

基本配置

    {
      "$schema": "https://langgra.ph/schema.json",
      "graphs": {
        "chat": "./src/graph.ts:graph"
      }
    }
    

<a id="api-version"></a> #### 固定 API 版本

_(于 v0.3.7 添加)_

您可以通过使用 api_version 密钥来固定 Agent Server 的 API 版本。如果您想确保服务器使用特定版本的 API,这会很有用。 默认情况下,Cloud 部署中的构建使用服务器的最新版稳定版本。可以通过将 api_version 密钥设置为特定版本来固定版本。

    {
      "$schema": "https://langgra.ph/schema.json",
      "dependencies": ["."],
      "graphs": {
        "chat": "./src/chat/graph.ts:graph"
      },
      "api_version": "0.2"
    }
    

禁用内置路由

您可以使用 http 配置块中的布尔标志来选择性地禁用内置 HTTP 路由组。这对于生产部署很有用,因为您希望最小化服务器的暴露面。

例如,要禁用系统信息和文档路由:

    {
      "$schema": "https://langgra.ph/schema.json",
      "graphs": {
        "chat": "./src/chat/graph.ts:graph"
      },
      "http": {
        "disable_meta": true
      }
    }
    

设置 disable_meta to true 将禁用以下路由:

  • - / — 根健康检查
  • - /info — 服务器版本和配置信息
  • - /metrics — Prometheus 和 JSON 指标
  • - /docs — API 文档 UI
  • - /openapi.json — OpenAPI 规范

/ok 设置为 true 时,健康检查端点仍然可用 disable_meta ,以便 Kubernetes 等编排工具可以继续执行存活和就绪探针。

其他路由禁用标志包括 disable_assistants, disable_runs, disable_threads, disable_storedisable_ui。有关 MCP、A2A 和 Webhook 的更多信息,请参阅各自的指南: 禁用 MCP, 禁用 A2A, 禁用 Webhook.

命令

用法

Python

LangGraph CLI 的基础命令是 langgraph.

    langgraph [OPTIONS] COMMAND [ARGS]
    

JS

LangGraph.js CLI 的基础命令是 langgraphjs.

    npx @langchain/langgraph-cli [OPTIONS] COMMAND [ARGS]
    

我们建议使用 npx 以始终使用最新版本的 CLI。

dev

Python

在开发模式下运行 LangGraph API 服务器,支持热重载和调试功能。这个轻量级服务器无需安装 Docker,适用于开发和测试。状态会持久化到本地目录。

安装

此命令需要安装 "inmem" 附加组件:

    pip install -U "langgraph-cli[inmem]"
    

用法

    langgraph dev [OPTIONS]
    

选项

选项默认值描述
-c, --config FILElanggraph.json声明依赖、图和环境变量的配置文件路径
--host TEXT127.0.0.1要绑定服务器的主机
--port INTEGER2024要绑定服务器的端口
--no-reload禁用自动重载
--n-jobs-per-worker INTEGER每个 worker 的作业数。默认值为 10
--debug-port INTEGER调试器监听的端口
--wait-for-clientFalse等待调试器客户端连接到调试端口后再启动服务器
--no-browser服务器启动时跳过自动打开浏览器
--studio-url TEXTURL of the Studio instance to connect to. Defaults to https://smith.langchain.com
--allow-blockingFalseDo not raise errors for synchronous I/O blocking operations in your code (added in 0.2.6)
--tunnelFalse通过公共隧道 (Cloudflare) 公开本地服务器以供远程前端访问。这可以避免 Safari 等浏览器或阻止 localhost 连接的网络出现问题
--help显示命令文档

JS

以热重载功能在开发模式下运行 LangGraph API 服务器。这个轻量级服务器无需安装 Docker,适合开发和测试。状态会持久化到本地目录。

用法

    npx @langchain/langgraph-cli dev [OPTIONS]
    

选项

选项默认值描述
-c, --config FILElanggraph.json配置文件的路径,用于声明依赖项、图和环境变量
--host TEXT127.0.0.1要绑定服务器的主机
--port INTEGER2024要绑定服务器的端口
--no-reload禁用自动重载
--n-jobs-per-worker INTEGER每个 worker 的作业数。默认值为 10
--debug-port INTEGER调试器监听的端口
--wait-for-clientFalse等待调试器客户端连接到调试端口后再启动服务器
--no-browser服务器启动时跳过自动打开浏览器
--studio-url TEXTURL of the Studio instance to connect to. Defaults to https://smith.langchain.com
--allow-blockingFalseDo not raise errors for synchronous I/O blocking operations in your code
--tunnelFalse通过公共隧道 (Cloudflare) 公开本地服务器以供远程前端访问。这可以避免浏览器或网络阻止 localhost 连接的问题
--help显示命令文档

build

Python

构建 LangSmith API 服务器 Docker 镜像。

用法

    langgraph build [OPTIONS]
    

选项

选项默认值描述
--platform TEXT要构建 Docker 镜像的目标平台。示例: langgraph build --platform linux/amd64,linux/arm64
-t, --tag TEXT**必需**。Docker 镜像的标签。示例: langgraph build -t my-image
--pull / --no-pull--pull使用最新的远程 Docker 镜像构建。使用 --no-pull 来运行带有本地构建镜像的 LangSmith API 服务器。
-c, --config FILElanggraph.json配置文件的路径,用于声明依赖项、图和环境变量。
--build-command TEXT<sup>*</sup>要运行的构建命令。从您的目录运行 langgraph.json 文件所在目录。示例: langgraph build --build-command "yarn run turbo build"
--install-command TEXT<sup>*</sup>要运行的安装命令。从您调用它的目录运行 langgraph build 来源。示例: langgraph build --install-command "yarn install"
--help显示命令文档。
*仅支持 JS 部署,对 Python 部署没有影响。

JS

构建 LangSmith API 服务器 Docker 镜像。

用法

    npx @langchain/langgraph-cli build [OPTIONS]
    

选项

选项默认值描述
--platform TEXT构建 Docker 镜像的目标平台。示例: langgraph build --platform linux/amd64,linux/arm64
-t, --tag TEXT**必填**。Docker 镜像的标签。示例: langgraph build -t my-image
--no-pull使用本地构建的镜像。默认为 false 使用最新的远程 Docker 镜像构建。
-c, --config FILElanggraph.json配置文件的路径,用于声明依赖、图和环境变量。
--help显示命令文档。

deploy

Python

直接构建并部署 LangGraph 镜像到 LangSmith 部署。此命令在本地构建 Docker 镜像,将其推送到托管注册表,并创建或更新部署——所有操作一步完成。如果未安装 Docker,则会触发远程构建。

前置条件

用法

    langgraph deploy [OPTIONS] [DOCKER_BUILD_ARGS]
    

此命令还接受所有 langgraph build 标志(--platform, -t, --pull, --no-pull, -c)。有关详细信息,请参阅 langgraph build --help.

选项

选项默认值描述
--api-key TEXTLangSmith 部署的 API 密钥。也可以通过 LANGGRAPH_HOST_API_KEY, LANGSMITH_API_KEY, or LANGCHAIN_API_KEY 环境变量或 .env 文件设置。
--name TEXT当前目录名部署名称。也可以通过 LANGSMITH_DEPLOYMENT_NAME 环境变量或 .env 文件设置。
--deployment-id TEXT要更新的现有部署的 ID。如果省略, --name 用于查找或创建部署。
--deployment-type TEXTdev部署类型(dev or prod)用于创建新部署时。
--remote / --no-remote强制进行远程或本地构建。默认情况下,如果 Docker 在本地不可用,则进行远程构建。
--no-waitFalse推送后跳过等待部署状态。
--verboseFalse显示包括 Docker 构建和推送日志在内的详细输出。
--help显示命令文档。

示例

    # Deploy with API key from .env file
    langgraph deploy

    # Deploy with inline API key
    LANGSMITH_API_KEY=lsv2_... langgraph deploy

    # Update an existing deployment
    langgraph deploy --deployment-id abc123

    # Deploy with inline deployment name
    LANGSMITH_DEPLOYMENT_NAME=my-agent langgraph deploy

    # Deploy to EU region
    LANGGRAPH_HOST_URL=https://eu.api.host.langchain.com langgraph deploy
    

deploy list

列出 LangSmith 部署。

用法

    langgraph deploy list [OPTIONS]
    

选项

选项默认值描述
--name-contains TEXT仅显示名称包含此值的部署。
--api-key TEXTAPI 密钥。也可以通过 LANGGRAPH_HOST_API_KEY, LANGSMITH_API_KEY, or LANGCHAIN_API_KEY 环境变量或 .env 文件设置。
--help显示此消息并退出。

deploy revisions

[Beta] 管理部署修订版本。

用法

    langgraph deploy revisions [OPTIONS] COMMAND [ARGS]...
    

选项

选项默认值描述
--help显示此消息并退出。

命令

命令描述
list[Beta] 列出 LangSmith 部署的修订版本。

deploy revisions list

[Beta] 列出 LangSmith 部署的修订版本。

使用 deploy list 列出部署 ID。

用法

    langgraph deploy revisions list [OPTIONS] DEPLOYMENT_ID
    

选项

选项默认值描述
--limit INTEGER10要返回的最大修订版本数。
--api-key TEXTAPI 密钥。也可以通过 LANGGRAPH_HOST_API_KEY, LANGSMITH_API_KEY, or LANGCHAIN_API_KEY 环境变量或 .env 文件设置。
--help显示此消息并退出。

deploy delete

删除 LangSmith 部署。

使用 deploy list 查找要删除的部署 ID。

用法

    langgraph deploy delete [OPTIONS] DEPLOYMENT_ID
    

选项

选项默认值描述
--force无需确认提示直接删除。
--api-key TEXTAPI 密钥。也可以通过 LANGGRAPH_HOST_API_KEY, LANGSMITH_API_KEY, or LANGCHAIN_API_KEY 环境变量或 .env 文件设置。
--help显示此消息并退出。

deploy logs

获取 LangSmith 部署日志。使用 deploy 获取代理运行时日志,或 build 获取远程构建日志。

用法

    langgraph deploy logs [OPTIONS]
    

选项

选项默认值描述
-f, --followFalse持续轮询新日志。
--end-time TEXTISO8601 结束时间。示例: 2026-03-08T00:00:00Z.
--start-time TEXTISO8601 开始时间。示例: 2026-03-08T00:00:00Z.
-q, --query TEXT搜索字符串过滤器。
--limit INTEGER100最大获取日志条目数。
`--level [DEBUG\INFO\WARNING\
--revision-id TEXT特定修订版 ID。对于构建日志,默认为最新修订版。
`--type [deploy\build]`deploy
--deployment-id TEXT部署 ID。如果省略, --name 用于查找部署。
--name TEXT当前目录名称部署名称。也可通过 LANGSMITH_DEPLOYMENT_NAME 环境变量或 .env 文件。当 --deployment-id 未提供时使用。
--api-key TEXTAPI 密钥。也可通过 LANGGRAPH_HOST_API_KEY, LANGSMITH_API_KEY, or LANGCHAIN_API_KEY 环境变量或 .env 文件。
--help显示此消息并退出。

up

Python

启动 LangGraph API 服务器。本地测试需要具有 LangSmith 访问权限的 LangSmith API 密钥。生产使用需要许可证密钥。

用法

    langgraph up [OPTIONS]
    

选项

选项默认描述
--wait在返回之前等待服务启动。隐含 --detach
--base-image TEXTlangchain/langgraph-apiLangGraph API 服务器使用的基础镜像。使用版本标签固定到特定版本。
--image TEXTlanggraph-api 服务使用的 Docker 镜像。如果指定,则跳过构建直接使用此镜像。
--postgres-uri TEXT本地数据库用于数据库的 Postgres URI。
--watch文件更改时重启
--debugger-base-url TEXThttp://127.0.0.1:[PORT]调试器访问 LangGraph API 使用的 URL。
--debugger-port INTEGER将调试器镜像拉取到本地并在指定端口提供 UI 服务
--verbose显示更多服务器日志输出。
-c, --config FILElanggraph.json声明依赖、图和环境变量的配置文件路径。
-d, --docker-compose FILE包含要启动的附加服务的 docker-compose.yml 文件路径。
-p, --port INTEGER8123公开端口。示例: langgraph up --port 8000
--pull / --no-pullpull拉取最新镜像。使用 --no-pull 运行使用本地构建镜像的服务器。示例: langgraph up --no-pull
--recreate / --no-recreateno-recreate即使容器配置和镜像未发生变化也重新创建容器
--help显示命令文档。

JS

启动 LangGraph API 服务器。本地测试需要具有 LangSmith 访问权限的 LangSmith API key。生产环境使用需要许可证 key。

用法

    npx @langchain/langgraph-cli up [OPTIONS]
    

选项

选项默认值描述
<span>--wait</span>返回前等待服务启动。隐含 --detach
<span>--base-image TEXT</span><span>langchain/langgraph-api</span>用于 LangGraph API 服务器的基础镜像。使用版本标签固定到特定版本。
<span>--image TEXT</span>用于 langgraph-api 服务的 Docker 镜像。如果指定,则跳过构建直接使用此镜像。
<span>--postgres-uri TEXT</span>本地数据库用于数据库的 Postgres URI。
<span>--watch</span>文件更改时重启
<span>-c, --config FILE</span>langgraph.json声明依赖、图和环境变量的配置文件路径。
<span>-d, --docker-compose FILE</span>包含要启动的附加服务的 docker-compose.yml 文件路径。
<span>-p, --port INTEGER</span>8123要暴露的端口。例如: langgraph up --port 8000
<span>--no-pull</span>使用本地构建的镜像。默认为 false 使用最新远程 Docker 镜像进行构建。
<span>--recreate</span>即使容器配置和镜像未发生变化也重新创建容器
<span>--help</span>显示命令文档。

dockerfile

Python

生成用于构建 LangSmith API 服务器 Docker 镜像的 Dockerfile。

用法

    langgraph dockerfile [OPTIONS] SAVE_PATH
    

选项

选项默认值描述
-c, --config FILElanggraph.json配置文件路径 声明依赖、图和环境变量的
--help显示此消息并退出。

Example:

    langgraph dockerfile -c langgraph.json Dockerfile
    

这会生成一个类似如下内容的 Dockerfile:

    FROM langchain/langgraph-api:3.11

    ADD ./pipconf.txt /pipconfig.txt

    RUN PIP_CONFIG_FILE=/pipconfig.txt PYTHONDONTWRITEBYTECODE=1 pip install --no-cache-dir -c /api/constraints.txt langchain_anthropic langchain_openai wikipedia scikit-learn

    ADD ./graphs /deps/__outer_graphs/src
    RUN set -ex && \
        for line in '[project]' \
                    'name = "graphs"' \
                    'version = "0.1"' \
                    '[tool.setuptools.package-data]' \
                    '"*" = ["**/*"]'; do \
            echo "$line" >> /deps/__outer_graphs/pyproject.toml; \
        done

    RUN PIP_CONFIG_FILE=/pipconfig.txt PYTHONDONTWRITEBYTECODE=1 pip install --no-cache-dir -c /api/constraints.txt -e /deps/*

    ENV LANGSERVE_GRAPHS='{"agent": "/deps/__outer_graphs/src/agent.py:graph", "storm": "/deps/__outer_graphs/src/storm.py:graph"}'
    

JS

生成用于构建 LangSmith API 服务器 Docker 镜像的 Dockerfile。

用法

    npx @langchain/langgraph-cli dockerfile [OPTIONS] SAVE_PATH
    

选项

选项默认值描述
-c, --config FILElanggraph.json路径 配置文件 声明依赖、图表和环境变量。
--help显示此消息并退出。

Example:

    npx @langchain/langgraph-cli dockerfile -c langgraph.json Dockerfile
    

这会生成一个类似于以下内容的 Dockerfile:

    FROM langchain/langgraphjs-api:20

    ADD . /deps/agent

    RUN cd /deps/agent && yarn install

    ENV LANGSERVE_GRAPHS='{"agent":"./src/react_agent/graph.ts:graph"}'

    WORKDIR /deps/agent

    RUN (test ! -f /api/langgraph_api/js/build.mts && echo "Prebuild script not found, skipping") || tsx /api/langgraph_api/js/build.mts