主题
数据存储与隐私
本文档介绍 LangGraph CLI 和 Agent Server 在内存服务器(langgraph dev)和本地 Docker 服务器(langgraph up)中如何处理数据。它还介绍与托管 Studio 前端交互时会跟踪哪些数据。
CLI
LangGraph CLI 是用于构建和运行 LangGraph 应用的命令行界面;更多信息请参阅 CLI 指南。
默认情况下,大多数 CLI 命令在调用时会记录一个分析事件。这有助于我们更好地确定 CLI 体验改进的优先级。每个遥测事件包含调用进程的操作系统、操作系统版本、Python 版本、CLI 版本、命令名称(dev、up、run 等),以及表示是否向命令传递了某个标志的布尔值。更多信息请参阅完整分析逻辑。
你可以通过设置 LANGGRAPH_CLI_NO_ANALYTICS=1 禁用所有 CLI 遥测。
Agent Server
Agent Server提供持久执行运行时,它依赖将应用状态的 checkpoint、长期记忆、线程元数据、assistant 和类似资源持久化到本地文件系统或数据库。除非你刻意自定义了存储位置,否则这些信息会写入本地磁盘(对于 langgraph dev)或 PostgreSQL 数据库(对于 langgraph up 及所有部署)。
LangSmith 追踪
运行 Agent Server(内存或 Docker)时,可以启用 LangSmith 追踪,以加快调试并提供生产环境中图状态和 LLM 提示词的可观测性。你始终可以通过在服务器运行时环境中设置 LANGSMITH_TRACING=false 来禁用追踪。
NOTE
如需更细粒度的控制,你可以使用条件追踪,根据运行时条件(例如客户端要求或数据敏感性)选择性地启用或禁用追踪。
内存开发服务器
langgraph dev 以单个 Python 进程运行内存开发服务器,专为快速开发和测试设计。它会将所有 checkpoint 和记忆数据保存到当前工作目录下 .langgraph_api 目录中的磁盘。除了 CLI 部分描述的遥测数据外,除非你启用了追踪或图代码显式联系外部服务,否则没有数据离开本机。
独立服务器
langgraph up 将本地包构建为 Docker 镜像,并以数据平面方式运行服务器,由三个容器组成:API 服务器、PostgreSQL 容器和 Redis 容器。所有持久数据(checkpoint、assistant 等)都存储在 PostgreSQL 数据库中。Redis 用作 pubsub 连接,用于事件的实时流式传输。通过设置有效的 LANGGRAPH_AES_KEY 环境变量,可以在保存到数据库前加密所有 checkpoint。你还可以在 langgraph.json 中为 checkpoint 和跨线程记忆指定 TTL,以控制数据存储时长。所有持久化的线程、记忆和其他数据都可以通过相关 API 端点删除。
服务器还会发起额外的 API 调用,以确认许可证有效并跟踪已执行的 run 和任务数量。API 服务器会定期验证提供的许可证密钥(或 API key)。
如果你已禁用追踪,除非图代码显式联系外部服务,否则不会在外部持久化任何用户数据。
Studio
Studio 是用于与 Agent Server 交互的图形界面。它不会持久化任何私有数据(你发送到服务器的数据不会发送到 LangSmith)。尽管 Studio 界面托管在 smith.langchain.com,但它在你的浏览器中运行并直接连接到本地 Agent Server,因此无需向 LangSmith 发送任何数据。
如果你已登录,LangSmith 确实会收集一些使用分析数据,以帮助改进调试用户体验。包括:
- 页面访问和导航模式
- 用户操作(按钮点击)
- 浏览器类型和版本
- 屏幕分辨率和视口大小
重要的是,不会收集任何应用数据或代码(或其他敏感配置细节)。这些内容都存储在 Agent Server 的持久化层中。匿名使用 Studio 时,无需创建账户,也不会收集使用分析数据。
速查表
总之,你可以通过关闭 CLI 分析和禁用追踪来选择退出服务器端遥测。
| 变量 | 用途 | 默认值 |
|---|---|---|
LANGGRAPH_CLI_NO_ANALYTICS=1 | 禁用 CLI 分析 | 启用分析 |
LANGSMITH_API_KEY | 启用 LangSmith 追踪 | 禁用追踪 |
LANGSMITH_TRACING=false | 禁用 LangSmith 追踪 | 取决于环境 |