可观测性

我无法在 UI 中创建 API 密钥或管理用户,这是怎么回事?

  • 你可能在未设置 SSO 的情况下部署了 LangSmith。LangSmith 需要 SSO 才能管理用户和 API 密钥。你可以在配置部分找到有关设置 SSO 的更多信息。

负载均衡/入口是如何工作的?

  • 你需要将前端容器/服务暴露给你的应用程序/用户。它将负责向所有下游服务进行路由。
  • 你需要在入口层终止 SSL。我们建议使用 AWS ALB、GCP Load Balancer 或 Nginx 等托管服务。

我们如何向应用程序进行身份验证?

  • 目前,我们的自托管解决方案支持使用 OAuth2.0 和 OIDC 作为身份验证解决方案的 SSO。请注意,我们确实提供无身份验证解决方案,但强烈建议在投入生产前设置 oauth。
你可以在配置部分找到有关设置 SSO 的更多信息。

我可以使用外部存储服务吗?

  • 你可以配置 LangSmith 使用所有存储服务的外部版本。在生产环境中,我们强烈建议使用外部存储服务。请参阅配置部分了解更多信息。

我的应用程序需要出口访问才能正常运行吗?

我们的部署仅在少数情况下需要出口访问(其中大多数服务可以位于你的 VPC 内):
  • 获取镜像(如果你镜像了自己的镜像,则可能不需要)
  • 与任何 LLM 端点通信
  • 与你配置的任何外部存储服务通信
  • 获取 OAuth 信息
  • 订阅指标和运行元数据(如果未以离线模式运行)
    • 需要出口访问 https://beacon.langchain.com
    • 有关更多信息,请参阅出口访问
你的 VPC 可以设置规则来限制其他访问。请注意:我们要求允许将 X-Organization-Id 和 X-Tenant-Id 标头传递到后端服务。这些标头用于确定请求所属的组织和工作区(之前称为“租户”)。

应用程序的资源要求是什么?

  • 对于 Kubernetes,我们建议使用最低限度的 Helm 配置,你可以在中等规模示例中查看。对于 Docker,我们建议至少配备 16GB 内存和 4 个 CPU。
  • 对于 Postgres,我们建议至少配备 8GB 内存和 2 个 CPU。
  • 对于 Redis,我们建议配备 4GB 内存和 2 个 CPU。
  • 对于 Clickhouse,我们建议配备 32GB 内存和 8 个 CPU。

SAML SSO 常见问题

如何更改 SAML SSO 用户的电子邮件地址?

某些身份提供商会在电子邮件地址更改后保留原始的 User ID,而其他身份提供商则不会。因此,我们建议按照以下步骤操作,以避免在 LangSmith 中创建重复用户:
  1. 将用户从组织中移除(请参阅管理用户)
  2. 在 IdP 中更改其电子邮件地址
  3. 让用户再次通过 SAML SSO 登录 LangSmith——这将使用其新的电子邮件地址触发常规的 JIT 预配流程
目前,对于关联了多种登录方式的用户,不支持通过 SCIM 或其他方式更改电子邮件地址。此时会显示以下错误消息:email update not supported with linked login methods。例如,如果用户之前通过电子邮件/密码或 Google 社交登录方式登录,之后又使用相同的电子邮件地址通过 SSO 添加,则不支持更改其电子邮件地址。自托管和云端部署均适用。

我可以更换身份提供商吗?

请通过我们的门户 https://support.langchain.com 联系 LangChain 支持团队,以获取迁移支持。

如何修复“405 method not allowed”?

请确保使用正确的 ACS URL:https://auth.langchain.com/auth/v1/sso/saml/acs

SCIM 常见问题

我可以不使用 SAML SSO 而使用 SCIM 吗?

  • 云端:不可以,云端部署中的 SCIM 需要 SAML SSO
  • 自托管:可以,SCIM 支持使用 OAuth with Client Secret 身份验证模式

如果同时启用了 JIT 预配和 SCIM,会发生什么?

JIT 预配和 SCIM 可能会相互冲突。我们建议在启用 SCIM 之前禁用 JIT 预配,以确保用户预配行为保持一致。

如何更改用户的角色或工作区访问权限?

在 IdP 中更新用户的组成员身份。更改将根据角色优先级规则同步到 LangSmith。

当用户从所有组中移除后会发生什么?

根据 IdP 的取消预配设置,该用户将从 LangSmith 组织中取消预配。

我可以使用自定义组名称吗?

可以。如果你的身份提供商支持将其他字段同步到 displayName 组属性,则可以使用其他属性(例如 description)作为 LangSmith 中的 displayName,同时保留对身份提供商组名称的完全自定义能力。否则,组名称必须遵循组命名约定部分中所述的特定命名约定,才能正确映射到 LangSmith 角色和工作区。 你还可以配置自定义分隔符(例如 -、_、&),以替代默认的冒号(:),从而适应对组名称字符有限制的身份提供商。

为什么我的 Okta 集成无法正常工作?

请参阅 Okta 的故障排除指南:https://help.okta.com/en-us/content/topics/users-groups-profiles/usgp-group-push-troubleshoot.htm。

支持降级吗?

官方不支持降级。LangSmith 升级可能包含数据库迁移和其他不向后兼容的更改。如果你需要回滚到之前的版本,请通过支持门户联系技术支持以获取指导。

部署

使用 LangGraph 是否必须使用 LangChain?两者有什么区别?

不需要。LangGraph 是一个用于复杂智能体系统的编排框架,相比 LangChain 智能体,它更底层,也更具可控性。LangChain 提供了与模型及其他组件交互的标准接口,适用于简单直接的链和检索流程。

LangGraph 与其他智能体框架有何不同?

其他智能体框架可能适用于简单、通用的任务,但在处理专门针对企业需求的复杂任务时往往有所不足。LangGraph 提供了一个表达能力更强的框架,可以处理企业独有的任务,而不会将用户限制在单一的黑盒认知架构中。

LangGraph 会影响我的应用性能吗?

LangGraph 不会为你的代码增加任何额外开销,并且专门针对流式工作流进行了设计。

LangGraph 是开源的吗?免费吗?

是的。LangGraph 是采用 MIT 许可证的开源库,可以免费使用。

LangGraph 和 LangSmith 有什么区别?

LangGraph 是一个有状态的编排框架,可为智能体工作流提供更多控制能力。LangSmith 是一项用于部署和扩展智能体应用的服务,提供用于构建智能体用户体验的规范化 API,以及集成式开发者 UI。

LangSmith 是开源的吗?

不是。LangSmith 是专有软件。 有关更多信息,请参阅我们的 LangSmith 定价页面。

LangGraph 是否支持不支持工具调用的 LLM?

支持!你可以将 LangGraph 与任何 LLM 结合使用。我们使用支持工具调用的 LLM,主要是因为这通常是让 LLM 决定下一步操作的最便捷方式。如果你的 LLM 不支持工具调用,仍然可以使用它——你只需要编写一些逻辑,将 LLM 返回的原始字符串转换为下一步操作的决定。

LangGraph 是否支持 OSS LLM?

支持!LangGraph 完全不限制底层使用哪种 LLM。大多数教程使用闭源 LLM,主要是因为它们能够无缝支持工具调用,而 OSS LLM 通常不支持。不过,工具调用并非必需(请参阅LangGraph 是否支持不支持工具调用的 LLM?),因此你完全可以将 LangGraph 与 OSS LLM 结合使用。

不登录 LangSmith 可以使用 Studio 吗?

可以!你可以使用 Agent Server 的开发版本在本地运行后端。 该后端将连接到作为 LangSmith 一部分托管的 Studio 前端。 如果你将环境变量设置为 LANGSMITH_TRACING=false,则不会向 LangSmith 发送跟踪信息。

什么是 Deployment Run?

Deployment Run 是通过 LangSmith Deployment 部署的 LangGraph 智能体的一次端到端调用。节点和子图不会单独计费。对其他 LangGraph 智能体的调用(通过 RemoteGraph、LangGraph SDK 或直接调用 API)将单独计费,费用计入托管被调用智能体的部署。当通过人工参与流程恢复执行时,中断操作会创建一个单独的 Deployment Run。