加载中

我们将构建一个实用的项目,教会Claude如何为未来的日期设置提醒。这乍听起来可能很简单,但它揭示了几个有趣的挑战,我们将使用自定义工具来解决这些挑战。

我们的目标是实现这样的对话:您告诉Claude"为我的医生预约设置一个提醒。是下周四。",Claude回应"好的,我会提醒您。"为了实现这一点,我们需要理解为什么这实际上比看起来更难。

为什么这具有挑战性

Claude对日期和时间有一些内置的知识,但它也有一些明显的局限性:

  • Claude可能知道当前日期,但不知道确切的时间
  • Claude并不总能很好地处理基于时间的加法运算,尤其是在展望未来许多天的情况下
  • Claude不知道如何设置提醒!

这些局限性意味着,即使是像"从现在起24小时后设置提醒"这样简单的请求也会出现问题。如果不知道当前时间,Claude就不知道"从现在起24小时后"实际意味着什么。而且即使它能计算出正确的日期,它也没有实际创建提醒的机制。

我们需要的工具

为了解决这些问题,我们将创建三个协同工作的自定义工具:

获取当前日期时间

这是我们的起始工具——它让Claude能够访问当前日期和确切时间。这解决了Claude不知道"现在"实际是什么时候的问题。

为日期时间添加时长

这个工具处理将时间段添加到日期的数学运算。我们不再依赖Claude正确计算"从1973年1月13日起379天后是什么日期",而是给它一个能够准确处理这些计算的可靠工具。

设置提醒

最后,我们需要一种方法让Claude能够实际创建提醒。这个工具将提供Claude所缺乏的设置未来通知的机制。

我们将逐一实现这些工具,从日期时间工具开始,以理解工具调用的工作原理,然后逐步构建更复杂的功能。到最后,Claude将能够处理关于设置提醒的自然语言请求,并将其转换为实际的预定通知。