Skip to main content
Webhook 支持从您的 LangSmith 应用向外部服务进行事件驱动的通信。例如,您可能希望在向 LangSmith 发起的 API 调用运行完成后,向另一个服务发送更新。 许多 LangSmith 端点都接受 webhook 参数。如果某个可以接受 POST 请求的端点指定了此参数,LangSmith 将在运行完成时发送一个请求。 在使用 LangSmith 时,您可能希望使用 Webhook 在 API 调用完成后接收更新。Webhook 对于在运行处理完成后触发您服务中的操作非常有用。要实现这一点,您需要暴露一个可以接受 POST 请求的端点,并在您的 API 请求中将此端点作为 webhook 参数传递。 目前,SDK 没有提供内置支持来定义 Webhook 端点,但您可以通过 API 请求手动指定它们。

支持的端点

以下 API 端点接受 webhook 参数: 在本指南中,我们将展示如何在流式运行后触发 Webhook。

设置您的助手和线程

在进行 API 调用之前,请先设置您的助手和线程。
示例响应:

在图形运行中使用 Webhook

要使用 Webhook,请在您的 API 请求中指定 webhook 参数。当运行完成时,LangSmith 会向指定的 Webhook URL 发送一个 POST 请求。 例如,如果您的服务器在 https://my-server.app/my-webhook-endpoint 监听 Webhook 事件,请在您的请求中包含此 URL:

Webhook 负载

LangSmith 以 运行 的格式发送 Webhook 通知。请求负载包括运行输入、配置以及 kwargs 字段中的其他元数据。除了标准的运行字段外,Webhook 负载还包括 valueswebhook_sent_aterror 字段。 完整的 Webhook 负载包含以下字段: 示例负载:
当运行失败时,error 字段包含失败的详细信息:

安全的 Webhook

为确保只有经过授权的请求才能访问您的 Webhook 端点,请考虑将安全令牌作为查询参数添加:
您的服务器应在处理请求之前提取并验证此令牌。

向 Webhook 请求添加头部

langgraph-api>=0.5.36 中可用。
您可以配置静态头部,以包含在所有出站 Webhook 请求中。这对于身份验证、路由或向您的 Webhook 端点传递元数据非常有用。 在您的 langgraph.json 文件中添加 webhooks.headers 配置:

在头部中使用环境变量

要在不将机密或环境特定值检入配置文件的情况下包含它们,请使用 ${{ env.VAR }} 模板语法:
出于安全考虑,默认情况下只能引用以 LG_WEBHOOK_ 开头的环境变量。这可以防止意外泄露不相关的环境变量。您可以使用 env_prefix 自定义此前缀:
缺少必需的环境变量将阻止服务器启动,确保您不会在配置不完整的情况下部署。

限制 Webhook 目标地址

langgraph-api>=0.5.36 中可用。
出于安全或合规目的,您可以使用 webhooks.url 配置来限制哪些 URL 是有效的 Webhook 目标地址:
可用选项:

禁用 Webhook

langgraph-api>=0.2.78 开始,开发者可以在 langgraph.json 文件中禁用 Webhook:
此功能主要面向自托管部署,平台管理员或开发者可能更倾向于禁用 Webhook 以简化其安全态势——特别是当他们没有配置防火墙规则或其他网络控制时。禁用 Webhook 有助于防止将不受信任的负载发送到内部端点。 有关完整配置详情,请参阅 配置文件参考

测试 Webhook

您可以使用以下在线服务测试您的 Webhook:
  • Beeceptor – 快速创建测试端点并检查传入的 Webhook 负载。
  • Webhook.site – 实时查看、调试和记录传入的 Webhook 请求。
这些工具可帮助您验证 LangSmith 是否正确触发并向您的服务发送 Webhook。