要求
-
一个您的 LangSmith 实例可以网络访问的已配置的 Redis 或 Valkey 实例。我们建议使用托管服务,例如:
- Amazon ElastiCache (Redis 或 Valkey)
- Google Cloud Memorystore (Redis 或 Valkey)
- Azure Cache for Redis
- 支持的版本: Redis >= 5,或 Valkey 8。在本指南中,Valkey 被视为 Redis 的直接替代品。
- 我们支持单机版和 Redis 集群(包括 Valkey 集群)。有关部署说明,请参阅相应部分。
- 我们支持无身份验证、密码和 IAM/工作负载身份 验证。
- 默认情况下,我们建议使用至少 2 个 vCPU 和 8GB 内存的实例。但是,实际要求将取决于您的追踪工作负载。我们建议监控您的 Redis 实例,并根据需要进行扩展。
单机版 Redis
连接字符串
您需要为您的 Redis 实例组装连接字符串。此连接字符串应包含以下信息:- 主机
- 数据库
- 端口
- URL 参数
- 当您的 Redis 服务器启用 TLS 时,使用
rediss://。 - 在连接字符串中提供密码。
配置
有了连接字符串,您就可以配置 LangSmith 实例使用外部 Redis 实例。您可以通过修改 LangSmith Helm Chart 安装的values 文件或 Docker 安装的 .env 文件来完成此操作。
Redis 集群
从 LangSmith helm 版本 0.12.25 开始,我们正式支持 Redis 集群。主机名
使用 Redis 集群时,请提供节点主机名和端口列表。每个节点 URI 必须采用以下格式:rediss。对于 Redis 集群:
- 通过
redis.external.cluster.password单独提供密码,或通过使用passwordSecretKey的 Secret 提供。 - Redis 集群默认启用 TLS(
redis.external.cluster.tlsEnabled: true)。如果您的集群不使用 TLS,请设置tlsEnabled: false。
配置
连接到外部 Redis 集群时,请在redis.external.cluster 下配置 Helm values。您可以:
- 直接在
values.yaml中提供节点 URI 和(可选)密码。 - 或者引用包含节点 URI 和密码的现有 Kubernetes
Secret。
Azure 托管 Redis
Azure 托管 Redis 支持两种集群策略,这会影响 LangSmith 如何连接到它。请根据您实例的集群策略选择下面的配置。OSS 集群
LangSmith 使用 Redis 集群模式连接到 OSS 集群策略实例。 从 LangSmith helm chart 版本 0.13.33 开始,支持将ssl_check_hostname=false 作为节点 URI 参数。在我们的测试中,OSS 集群策略需要禁用 SSL 主机名验证。Azure 的代理将连接解析到内部节点 IP,而这些 IP 不在证书的 SAN 中,导致主机名验证失败。
EnterpriseCluster
从 LangSmith helm chart 版本 0.13.33 开始,LangSmith 支持使用 EnterpriseCluster 策略的 Azure 托管 Redis。此策略公开一个端点,该端点在内部处理分片。LangSmith 必须将其作为单机(单实例)客户端连接,但它不支持不安全的集群操作,如 MULTI/EXEC。设置redis.external.clusterSafeMode: true 以禁用不安全的集群操作。
clusterSafeMode: true。
Redis 的 TLS
使用此部分为 Redis 连接配置 TLS。有关挂载内部/公共 CA 以使 LangSmith 信任您的 Redis 服务器证书,请参阅配置自定义 TLS 证书。服务器 TLS(单向)
要验证 Redis 服务器证书:- 使用
config.customCa.secretName和config.customCa.secretKey提供 CA 包。 - 对于单机版 Redis,在连接 URL 中使用
rediss://。 - 对于 Redis 集群,
redis.external.cluster.tlsEnabled默认为true。确保未将其设置为false。
带客户端身份验证的双向 TLS (mTLS)
从 LangSmith helm chart 版本 0.12.29 开始,我们支持 Redis 客户端的 mTLS。有关 mTLS 中的服务器端身份验证,请使用服务器 TLS 步骤(自定义 CA),并附加以下客户端证书配置。 如果您的 Redis 服务器需要客户端证书身份验证:- 提供包含客户端证书和密钥的 Secret。
- 通过
redis.external.clientCert.secretName引用它,并使用certSecretKey和keySecretKey指定键。 - 对于单机版 Redis,在连接 URL 中继续使用
rediss://。 - 对于 Redis 集群,
redis.external.cluster.tlsEnabled默认为true。确保未将其设置为false。
用于证书卷的 Pod 安全上下文
为 mTLS 挂载的证书卷受文件访问限制保护。为确保所有 LangSmith Pod 可以读取证书文件,您必须在 Pod 安全上下文中设置fsGroup: 1000。
您可以通过以下两种方式之一进行配置:
选项 1:使用 commonPodSecurityContext
在顶层设置 fsGroup 以将其应用于所有 Pod:
fsGroup 单独添加到每个 Pod 的安全上下文中。有关完整参考,请参阅 mtls 配置示例。
IAM 身份验证
从 LangSmith helm chart 版本 0.12.34 开始,我们支持 Redis 的 IAM 身份验证。这允许您使用云提供商工作负载身份而不是静态密码。IAM 身份验证支持单机版 Redis 和 Redis 集群配置。但是,并非所有云提供商都支持所有 Redis 产品的 IAM 身份验证。请检查您的云提供商文档以验证您的特定 Redis 设置是否支持 IAM(例如,GCP 仅支持 Memorystore 集群的 IAM,不支持单机版 Memorystore)。
- AWS
- GCP
- Azure
ElastiCache for Redis IAM 身份验证
ElastiCache for Redis 支持 IAM 身份验证,允许您使用 AWS IAM 凭据而不是 Redis AUTH 密码进行身份验证。先决条件
- 使用 AWS IRSA 或 EKS Pod Identity 在 Kubernetes 集群中配置工作负载身份
- 在您的 ElastiCache 实例上启用 IAM 身份验证并授予工作负载身份访问权限
配置
单机版 Redis:必需的注解
您必须将 AWS IRSA 所需的 ServiceAccount 注解应用于所有连接到 Redis 的 LangSmith 组件:部署:backend、queue、platformBackend、hostBackend、ingestQueue示例配置:将这些文档连接到 Claude、VSCode 等,通过 MCP 获取实时答案。

