安装
-
确保已安装 Docker(例如,
docker --version)。 -
安装 CLI:
-
验证安装
快速命令
| 命令 | 作用 |
|---|---|
langgraph dev | 启动轻量级本地开发服务器(无需 Docker),非常适合快速测试。 |
langgraph build | 构建用于部署的 LangGraph API 服务器的 Docker 镜像。 |
langgraph deploy | 一步完成 LangGraph 镜像的构建并直接部署到 LangSmith Deployments。 |
langgraph dockerfile | 根据您的配置生成 Dockerfile,用于自定义构建。 |
langgraph up | 在本地 Docker 中启动 LangGraph API 服务器。需要 Docker 运行;本地开发需要 LangSmith API 密钥;生产环境需要许可证。 |
npx @langchain/langgraph-cli <command>(如果全局安装,则使用 langgraphjs)。
配置文件
要构建并运行一个有效的应用程序,LangGraph CLI 需要一个遵循此schema的 JSON 配置文件。它包含以下属性:LangGraph CLI 默认使用当前目录中名为 langgraph.json 的配置文件。
- Python
- JS
| 关键字 | 描述 |
|---|---|
dependencies | 必需。LangSmith API 服务器的依赖项数组。依赖项可以是以下之一:
|
graphs | 必需。从图 ID 到定义已编译图或生成图的函数的路径的映射。示例:
|
auth | (在 v0.0.11 中添加) 包含指向身份验证处理程序路径的身份验证配置。示例:./your_package/auth.py:auth,其中 auth 是 langgraph_sdk.Auth 的实例。详情请参阅身份验证指南。 |
base_image | 可选。用于 LangGraph API 服务器的基础镜像。默认为 langchain/langgraph-api 或 langchain/langgraphjs-api。用于将构建固定到特定版本的 langgraph API,例如 "langchain/langgraph-server:0.2"。更多详情请参见 https://hub.docker.com/r/langchain/langgraph-server/tags。(在 langgraph-cli==0.2.8 中添加) |
image_distro | 可选。基础镜像的 Linux 发行版。必须是 "debian"、"wolfi"、"bookworm" 或 "bullseye" 之一。如果省略,默认为 "debian"。在 langgraph-cli>=0.2.11 中可用。 |
env | .env 文件的路径,或从环境变量到其值的映射。 |
store | 用于向 BaseStore 添加语义搜索和/或生存时间(TTL)的配置。包含以下字段:
|
ui | 可选。代理发出的 UI 组件的命名定义,每个都指向一个 JS/TS 文件。(在 langgraph-cli==0.1.84 中添加) |
python_version | 3.11、3.12 或 3.13。默认为 3.11。 |
node_version | 指定 node_version: 20 以使用 LangGraph.js。 |
pip_config_file | pip 配置文件的路径。 |
pip_installer | (在 v0.3 中添加) 可选。Python 包安装程序选择器。可以设置为 "auto"、"pip" 或 "uv"。从 0.3 版本开始,默认策略是运行 uv pip,这通常能提供更快的构建速度,同时保持直接替换的能力。在极少数情况下,如果 uv 无法处理您的依赖关系图或 pyproject.toml 的结构,请在此处指定 "pip" 以恢复到之前的行为。 |
keep_pkg_tools | (在 v0.3.4 中添加) 可选。控制是否在最终镜像中保留 Python 打包工具(pip、setuptools、wheel)。接受的值:
|
dockerfile_lines | 在从父镜像导入之后要添加到 Dockerfile 的额外行数组。 |
checkpointer | 检查点器的配置。支持: |
http | HTTP 服务器配置,包含以下字段:
|
webhooks | (在 v0.5.36 中添加) 出站 Webhook 传递的配置。包含:
|
api_version | (在 v0.3.7 中添加) 要使用的 LangGraph API 服务器的语义版本(例如,"0.3")。默认为最新版本。有关每个版本的详细信息,请查看服务器变更日志。 |
示例
- Python
- JS
基本配置
使用 Wolfi 基础镜像
您可以使用image_distro 字段指定基础镜像的 Linux 发行版。有效选项为 debian、wolfi、bookworm 或 bullseye。Wolfi 是推荐选项,因为它提供更小且更安全的镜像。这在 langgraph-cli>=0.2.11 中可用。向存储添加语义搜索
所有部署都附带一个由数据库支持的 BaseStore。向您的langgraph.json 添加 “index” 配置将在您部署的 BaseStore 中启用语义搜索。index.fields 配置确定要嵌入文档的哪些部分:- 如果省略或设置为
["$"],将嵌入整个文档 - 要嵌入特定字段,请使用 JSON 路径表示法:
["metadata.title", "content.text"] - 缺少指定字段的文档仍会被存储,但不会为这些字段生成嵌入
- 您仍然可以在
put时使用index参数覆盖要为特定项目嵌入的字段
常见模型维度
openai:text-embedding-3-large: 3072openai:text-embedding-3-small: 1536openai:text-embedding-ada-002: 1536cohere:embed-english-v3.0: 1024cohere:embed-english-light-v3.0: 384cohere:embed-multilingual-v3.0: 1024cohere:embed-multilingual-light-v3.0: 384
使用自定义嵌入函数的语义搜索
如果您想将语义搜索与自定义嵌入函数一起使用,可以传递自定义嵌入函数的路径:embed 字段可以引用一个自定义函数,该函数接收一个字符串列表并返回一个嵌入列表。示例实现:添加自定义身份验证
配置存储项目生存时间
您可以使用store.ttl 键为 BaseStore 中的项目/记忆配置默认数据过期时间。这决定了项目在最后一次访问后保留多长时间(根据 refresh_on_read 的设定,读取可能会刷新计时器)。请注意,可以通过修改 get、search 等中的相应参数,在每个调用的基础上覆盖这些默认值。ttl 配置是一个包含可选字段的对象:refresh_on_read:如果为true(默认值),通过get或search访问项目会重置其过期计时器。设置为false则仅在写入(put)时刷新 TTL。default_ttl:项目的默认生命周期,以分钟为单位。仅适用于新创建的项目;现有项目不会被修改。如果未设置,项目默认永不过期。sweep_interval_minutes:系统运行后台进程删除过期项目的频率(以分钟为单位)。如果未设置,不会自动进行扫描。
配置检查点生存时间
您可以使用checkpointer 键配置检查点的生存时间(TTL)。这决定了检查点数据在被根据指定策略(例如,删除)自动处理之前保留多长时间。支持两个可选的子对象:ttl:包含strategy、sweep_interval_minutes和default_ttl,它们共同设置检查点的过期方式。serde(Agent server 0.5+):允许您控制检查点负载的反序列化行为。
配置检查点器 serde
checkpointer.serde 对象决定了反序列化的行为:allowed_json_modules定义了一个允许列表,用于服务器能够从以 “json” 模式保存的负载中反序列化的自定义 Python 对象。这是一个[path, to, module, file, symbol]序列的列表。如果省略,则只允许 LangChain 安全的默认值。您可以不安全地将其设置为true以允许反序列化任何模块。pickle_fallback:当 JSON 解码失败时,是否回退到 pickle 反序列化。
自定义 HTTP 中间件和头
http 块允许您微调请求处理:-
middleware_order:选择"auth_first"在您的中间件之前运行身份验证,或选择"middleware_first"(默认)以反转该顺序。 -
enable_custom_route_auth:将身份验证扩展到您通过http.app挂载的路由。 -
configurable_headers/logging_headers:每个都接受一个带有可选includes和excludes数组的对象;支持通配符,排除在包含之前运行。 -
cors:自定义服务器的 CORS(跨域资源共享)配置。用于配置 CORS 的langgraph.json文件示例:自定义服务器的 CORS 配置将覆盖设置CORS_ALLOW_ORIGINS环境变量 的功能。
配置 Webhook
您可以为出站 Webhook 请求配置自定义头和 URL 限制:固定 API 版本
(在 v0.3.7 中添加)您可以使用api_version 键固定 Agent Server 的 API 版本。如果您希望确保服务器使用特定版本的 API,这将非常有用。
默认情况下,云部署中的构建使用服务器的最新稳定版本。可以通过将 api_version 键设置为特定版本来固定。命令
用法- Python
- JS
LangGraph CLI 的基本命令是
langgraph。dev
- Python
- JS
以开发模式运行 LangGraph API 服务器,支持热重载和调试功能。这个轻量级服务器不需要安装 Docker,适用于开发和测试。状态会持久化到本地目录。安装此命令需要安装 “inmem” 扩展:用法选项
目前,CLI 仅支持 Python >= 3.11。
| 选项 | 默认值 | 描述 |
|---|---|---|
-c, --config FILE | langgraph.json | 声明依赖项、图和环境变量的配置文件路径 |
--host TEXT | 127.0.0.1 | 要绑定服务器的主机 |
--port INTEGER | 2024 | 要绑定服务器的端口 |
--no-reload | 禁用自动重载 | |
--n-jobs-per-worker INTEGER | 每个工作进程的作业数。默认为 10 | |
--debug-port INTEGER | 调试器监听的端口 | |
--wait-for-client | False | 在启动服务器之前等待调试器客户端连接到调试端口 |
--no-browser | 服务器启动时跳过自动打开浏览器 | |
--studio-url TEXT | 要连接的 Studio 实例的 URL。默认为 https://smith.langchain.com | |
--allow-blocking | False | 不要为代码中的同步 I/O 阻塞操作引发错误(在 0.2.6 中添加) |
--tunnel | False | 通过公共隧道(Cloudflare)暴露本地服务器,以便远程前端访问。这可以避免浏览器(如 Safari)或网络阻止 localhost 连接的问题 |
--help | 显示命令文档 |
build
- Python
构建 LangSmith API 服务器 Docker 镜像。用法选项
* 仅支持 JS 部署,对 Python 部署没有影响。
| 选项 | 默认值 | 描述 |
|---|---|---|
--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 FILE | langgraph.json | 声明依赖项、图和环境变量的配置文件路径。 |
--build-command TEXT* | 要运行的构建命令。从您的 langgraph.json 文件所在的目录运行。示例:langgraph build --build-command "yarn run turbo build" | |
--install-command TEXT* | 要运行的安装命令。从您调用 langgraph build 的目录运行。示例:langgraph build --install-command "yarn install" | |
--help | 显示命令文档。 |
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

