安装
-
确保已安装 Docker(例如,
docker --version)。 -
安装 CLI:
-
验证安装
快速命令
对于 JS,使用
npx @langchain/langgraph-cli <command>(如果全局安装,则使用 langgraphjs)。
配置文件
要构建和运行一个有效的应用程序,LangGraph CLI 需要一个遵循此模式的 JSON 配置文件。它包含以下属性:LangGraph CLI 默认使用当前目录中名为 langgraph.json 的配置文件。
- Python
- JS
示例
- 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(代理服务器 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环境变量的功能。
配置 webhooks
你可以为出站 webhook 请求配置自定义头和 URL 限制:固定 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_assistants、disable_runs、disable_threads、disable_store 和 disable_ui。有关 MCP、A2A 和 webhooks,请参阅各自的指南:禁用 MCP、禁用 A2A、禁用 webhooks。命令
用法- Python
- JS
LangGraph CLI 的基础命令是
langgraph。dev
- Python
- JS
以开发模式运行 LangGraph API 服务器,支持热重载和调试功能。这个轻量级服务器不需要 Docker 安装,适合开发和测试。状态持久化到本地目录。安装此命令需要安装 “inmem” 扩展:用法选项
目前,CLI 仅支持 Python >= 3.11。
build
- Python
- JS
构建 LangSmith API 服务器 Docker 镜像。用法选项
*仅支持 JS 部署,对 Python 部署没有影响。
deploy
- Python
此命令处于测试阶段,正在积极开发中。预计会有频繁的更新和改进。
- 必须安装 Docker 并且 Docker 守护程序必须正在运行。安装 Docker Desktop。
- 在非 x86_64 机器(例如 Apple Silicon)上,需要 Docker Buildx 才能为 linux/amd64 进行交叉编译。了解更多关于 Buildx 的信息。
- 一个具有访问部署权限的 LangSmith API 密钥。
远程构建(无需 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
- Python
- JS
启动 LangGraph API 服务器。用于本地测试,需要具有访问 LangSmith 权限的 LangSmith API 密钥。生产使用需要许可证密钥。用法选项
dockerfile
- Python
- JS
生成用于构建 LangSmith API 服务器 Docker 镜像的 Dockerfile。用法选项这将生成一个类似于以下内容的 Dockerfile:
示例:
langgraph dockerfile 命令将你的 langgraph.json 文件中的所有配置转换为 Dockerfile 命令。使用此命令时,每次更新 langgraph.json 文件后都必须重新运行它。否则,你的更改在构建或运行 dockerfile 时不会反映出来。将这些文档连接到 Claude、VSCode 等,通过 MCP 获取实时答案。

