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

安装

  1. 确保已安装 Docker(例如,docker --version)。
  2. 安装 CLI:
  3. 验证安装

快速命令

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

配置文件

要构建和运行一个有效的应用程序,LangGraph CLI 需要一个遵循此模式的 JSON 配置文件。它包含以下属性:
LangGraph CLI 默认使用当前目录中名为 langgraph.json 的配置文件。

示例

基本配置

使用 Wolfi 基础镜像

你可以使用 image_distro 字段指定基础镜像的 Linux 发行版。有效选项是 debianwolfibookwormbullseye。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: 3072
  • openai:text-embedding-3-small: 1536
  • openai:text-embedding-ada-002: 1536
  • cohere:embed-english-v3.0: 1024
  • cohere:embed-english-light-v3.0: 384
  • cohere:embed-multilingual-v3.0: 1024
  • cohere:embed-multilingual-light-v3.0: 384

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

如果你想使用带有自定义嵌入函数的语义搜索,可以传递自定义嵌入函数的路径:
存储配置中的 embed 字段可以引用一个接受字符串列表并返回嵌入列表的自定义函数。示例实现:

添加自定义认证

有关详细信息,请参阅认证概念指南,有关实际操作过程,请参阅设置自定义认证指南。

配置存储项目生存时间

你可以使用 store.ttl 键配置 BaseStore 中项目/记忆的默认数据过期时间。这决定了项目在最后访问后保留多长时间(读取可能会根据 refresh_on_read 刷新计时器)。请注意,这些默认值可以通过修改 getsearch 等中的相应参数在每次调用时被覆盖。ttl 配置是一个包含可选字段的对象:
  • refresh_on_read:如果为 true(默认),通过 getsearch 访问项目会重置其过期计时器。设置为 false 以仅在写入(put)时刷新 TTL。
  • default_ttl:项目的默认生命周期,以分钟为单位。仅适用于新创建的项目;现有项目不会被修改。如果未设置,项目默认不会过期。
  • sweep_interval_minutes:系统应运行后台进程删除过期项目的频率(以分钟为单位)。如果未设置,不会自动进行扫描。
以下是启用 7 天 TTL(10080 分钟)、在读取时刷新并每小时扫描一次的示例:

配置检查点生存时间

你可以使用 checkpointer 键配置检查点的生存时间(TTL)。这决定了检查点数据在根据指定策略(例如删除)自动处理之前保留多长时间。支持两个可选子对象:
  • ttl:包含 strategysweep_interval_minutesdefault_ttl,共同设置检查点如何过期。
  • serde (代理服务器 0.5+):允许你控制检查点有效负载的反序列化行为。
以下是设置默认 TTL 为 30 天(43200 分钟)的示例:
在此示例中,超过 30 天的检查点将被删除,并且检查每 10 分钟运行一次。

配置检查点 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:每个接受一个包含可选 includesexcludes 数组的对象;支持通配符,并且排除在包含之前运行。
  • cors:自定义服务器的 CORS(跨源资源共享)配置。用于配置 CORS 的示例 langgraph.json 文件:
    自定义服务器的 CORS 配置将覆盖设置 CORS_ALLOW_ORIGINS 环境变量的功能。

配置 webhooks

你可以为出站 webhook 请求配置自定义头和 URL 限制:
有关头配置、环境变量模板和 URL 限制的详细信息,请参阅使用 webhooks

固定 API 版本

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

禁用内置路由

你可以使用 http 配置块中的布尔标志选择性地禁用内置 HTTP 路由组。这对于希望最小化服务器暴露面的生产部署很有用。例如,要禁用系统信息和文档路由:
disable_meta 设置为 true 会禁用以下路由:
  • / — 根健康检查
  • /info — 服务器版本和配置信息
  • /metrics — Prometheus 和 JSON 指标
  • /docs — API 文档 UI
  • /openapi.json — OpenAPI 规范
即使设置了 disable_meta/ok 健康检查端点仍然可用,因此 Kubernetes 等编排器仍然可以执行活性探针和就绪探针。其他路由禁用标志包括 disable_assistantsdisable_runsdisable_threadsdisable_storedisable_ui。有关 MCP、A2A 和 webhooks,请参阅各自的指南:禁用 MCP禁用 A2A禁用 webhooks

命令

用法
LangGraph CLI 的基础命令是 langgraph

dev

以开发模式运行 LangGraph API 服务器,支持热重载和调试功能。这个轻量级服务器不需要 Docker 安装,适合开发和测试。状态持久化到本地目录。
目前,CLI 仅支持 Python >= 3.11。
如果你需要更多信息来了解何时使用 langgraph devlanggraph up,请参阅本地开发和测试指南以获取详细比较。
安装此命令需要安装 “inmem” 扩展:
用法
选项

build

构建 LangSmith API 服务器 Docker 镜像。用法
选项*仅支持 JS 部署,对 Python 部署没有影响。

deploy

此命令处于测试阶段,正在积极开发中。预计会有频繁的更新和改进。
构建并直接将 LangGraph 镜像部署到 LangSmith 部署。此命令在本地构建 Docker 镜像,将其推送到托管注册表,并创建或更新部署——所有这些都在一个步骤中完成。先决条件
远程构建(无需 Docker)将在未来的更新中推出。
用法
此命令还接受所有 langgraph build 标志(--platform-t--pull--no-pull-c)。有关详细信息,请参阅 langgraph build --help选项示例
langgraph deploy 命令只能更新最初由 langgraph deploy 创建的部署。通过其他方法(例如 LangSmith UI 或 GitHub 集成)创建的部署无法使用此命令更新。

deploy list

列出 LangSmith 部署。用法
选项

deploy revisions

[Beta] 管理部署修订版。用法
选项命令

deploy revisions list

[Beta] 列出 LangSmith 部署的修订版。使用 deploy list 列出部署 ID。用法
选项

deploy delete

删除 LangSmith 部署。使用 deploy list 查找要删除的部署 ID。用法
选项

deploy logs

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

up

启动 LangGraph API 服务器。用于本地测试,需要具有访问 LangSmith 权限的 LangSmith API 密钥。生产使用需要许可证密钥。
如果你需要更多信息来了解何时使用 langgraph devlanggraph up,请参阅本地开发和测试指南以获取详细比较。
用法
选项

dockerfile

生成用于构建 LangSmith API 服务器 Docker 镜像的 Dockerfile。用法
选项示例:
这将生成一个类似于以下内容的 Dockerfile:
langgraph dockerfile 命令将你的 langgraph.json 文件中的所有配置转换为 Dockerfile 命令。使用此命令时,每次更新 langgraph.json 文件后都必须重新运行它。否则,你的更改在构建或运行 dockerfile 时不会反映出来。