在许多情况下,按计划运行助手都非常有用。 例如,假设你正在构建一个每天运行并发送当天新闻摘要邮件的助手。你可以使用 cron 作业,让助手每天晚上 8:00 运行。 LangSmith Deployment 支持 cron 作业,这些作业会按照用户定义的计划运行。用户需要指定计划、助手以及一些输入。之后,服务器会按照指定的计划:
  • 使用指定的助手创建一个新线程
  • 将指定的输入发送到该线程
请注意,每次发送到线程的输入都是相同的。 LangSmith Deployment API 提供了多个用于创建和管理 cron 作业的端点。有关更多详细信息,请参阅 API 参考。 有时你不希望根据用户交互来运行图,而是希望按照计划运行图——例如,你可能希望图每周整理并发送一封包含团队待办事项的邮件。LangSmith Deployment 允许你使用 Crons 客户端完成此操作,而无需编写自己的脚本。要计划图作业,你需要传入一个 cron 表达式,以告知客户端何时运行图。Cron 作业会在后台运行,不会干扰图的正常调用。
所有 cron 计划都按照 UTC 解释。指定计划时,请务必将所需的执行时间转换为 UTC。

设置

首先,让我们设置 SDK 客户端、助手和线程:
输出:

在线程上创建 cron 作业

要创建与特定线程关联的 cron 作业,可以编写:
请注意,删除不再有用的 Cron 作业非常重要。否则,你可能会产生不必要的 LLM API 费用!你可以使用以下代码删除 Cron 作业:

无状态 cron 作业

你也可以使用以下代码创建无状态 cron 作业。无状态 cron 作业会在每次执行时创建一个新线程:
再次提醒,完成后请记得删除作业!

无状态 cron 的线程清理

此功能需要 LangGraph API 0.5.18 或更高版本,以及 Python SDK 0.3.2 或更高版本,或 JavaScript SDK 1.4.0 或更高版本。
每次触发无状态 cron 时,都会创建一个新线程。你可以使用 on_run_completed 参数控制运行完成后该线程的处理方式:
  • "delete"(默认):运行完成后自动删除线程。
  • "keep":保留线程,以便稍后检索。你需要负责清理这些线程。有关推荐方法,请参阅如何为应用添加 TTL。

示例:保留线程以便稍后检索