跳到内容

数据存储与隐私

本文档描述了 LangGraph CLI 和 LangGraph 服务器(包括内存型服务器(langgraph dev)和本地 Docker 服务器(langgraph up))如何处理数据。它还描述了与托管的 LangGraph Studio 前端交互时会追踪哪些数据。

CLI

LangGraph CLI 是用于构建和运行 LangGraph 应用程序的命令行界面;请参阅CLI 指南以了解更多信息。

默认情况下,对大多数 CLI 命令的调用在调用时会记录一个分析事件。这有助于我们更好地优先改进 CLI 体验。每个遥测事件都包含调用进程的操作系统、操作系统版本、Python 版本、CLI 版本、命令名称(devuprun 等)以及表示是否向命令传递了标志的布尔值。您可以在此处查看完整的分析逻辑。

您可以通过设置 LANGGRAPH_CLI_NO_ANALYTICS=1 来禁用所有 CLI 遥测。

LangGraph 服务器(内存型和 Docker)

LangGraph 服务器提供了一个持久的执行运行时,它依赖于将应用程序状态的检查点、长期记忆、线程元数据、助手和类似资源持久化到本地文件系统或数据库。除非您特意自定义了存储位置,否则这些信息将写入本地磁盘(对于 langgraph dev)或 PostgreSQL 数据库(对于 langgraph up 和所有部署)。

LangSmith 追踪

当运行 LangGraph 服务器(无论是内存型还是 Docker)时,可以启用 LangSmith 追踪以促进更快的调试,并提供生产环境中图状态和 LLM 提示的可观察性。您始终可以通过在服务器的运行时环境中设置 LANGSMITH_TRACING=false 来禁用追踪。

内存型开发服务器(langgraph dev

langgraph dev内存型开发服务器作为单个 Python 进程运行,专为快速开发和测试而设计。它将所有检查点和内存数据保存到当前工作目录下的 .langgraph_api 目录中。除了CLI部分描述的遥测数据外,除非您启用了追踪或您的图代码明确联系了外部服务,否则没有数据会离开机器。

独立容器(langgraph up

langgraph up 将您的本地包构建成一个 Docker 镜像,并将服务器作为独立容器运行,该容器由三个容器组成:API 服务器、一个 PostgreSQL 容器和一个 Redis 容器。所有持久化数据(检查点、助手等)都存储在 PostgreSQL 数据库中。Redis 用作事件实时流的发布/订阅连接。您可以通过设置有效的 LANGGRAPH_AES_KEY 环境变量,在保存到数据库之前加密所有检查点。您还可以在 langgraph.json 中指定检查点和跨线程内存的TTL,以控制数据存储的时长。所有持久化的线程、内存和其他数据都可以通过相关的 API 端点删除。

还会进行额外的 API 调用,以确认服务器具有有效的许可证并跟踪已执行的运行和任务数量。API 服务器会定期验证提供的许可证密钥(或 API 密钥)。

如果您禁用了追踪,除非您的图代码明确联系了外部服务,否则不会有用户数据在外部持久化。

Studio

LangGraph Studio 是一个用于与您的 LangGraph 服务器交互的图形界面。它不持久化任何私有数据(您发送到服务器的数据不会发送到 LangSmith)。尽管 Studio 界面在smith.langchain.com提供服务,但它在您的浏览器中运行并直接连接到您的本地 LangGraph 服务器,因此无需将数据发送到 LangSmith。

如果您已登录,LangSmith 会收集一些使用分析数据,以帮助改善 Studio 的用户体验。这包括:

  • 页面访问和导航模式
  • 用户操作(按钮点击)
  • 浏览器类型和版本
  • 屏幕分辨率和视口大小

重要的是,不收集任何应用程序数据或代码(或其他敏感配置细节)。所有这些都存储在您的 LangGraph 服务器的持久层中。当匿名使用 Studio 时,无需创建账户,也不会收集使用分析数据。

快速参考

总之,您可以通过关闭 CLI 分析和禁用追踪来选择退出服务器端遥测。

变量 用途 默认值
LANGGRAPH_CLI_NO_ANALYTICS=1 禁用 CLI 分析 分析已启用
LANGSMITH_API_KEY 启用 LangSmith 追踪 追踪已禁用
LANGSMITH_TRACING=false 禁用 LangSmith 追踪 取决于环境