大家好,我是小木头。Cloud又发布了新功能Routines。在Cloud Code,我可以让AI自动帮我干活,定期的执行任务。现在我不需要离开Cloud环境,一切皆可自动化。大家或许好奇Routines究竟能做什么?那现在呢,咱们就来看一个例子。在视频分享前,我往 GitHub 提交了一个合并请求,在里面故意埋了一个 bug。
三十秒后,我的合并请求收到的一系列的审核的反馈,咱们来看看反馈有哪些。当前所在的项目是我个人网站的代码仓库,这个合并请求呢,目的是创建一个新闻订阅,但其中刻意的埋下了一些 bug。我在 Cloud 创建了一个 Routine,它帮助我利用我的账号做代码审核,在以下的这些。评论当中所有的内容呢,都是由 code 帮助我完成的,或者说由 routine 帮我完成的。
它审核了整个合并请求,尝试发现其中存在的问题,并在下方逐一的针对每一个代码文件其中存在的问题做了反馈,并且给到了修改意见。在这里,我就不逐一的对他提供的反馈做详细的解释了。如果对这一案例感兴趣的朋友呢,请跟着我一起完成今天的视频分享。我会一步一步的创建routine。那现在就先来看看我究竟做了些什么,使得Claude能够自动化的帮助我审核代码。
我们首先来到Claude.ai/code。这是Web版的Cloak Code,在这里呢,左侧会多一个菜单叫Routines,当前列出的正是我已经创建的Routine或者定时任务。当然了,在这里其实称它为定时任务还不一定很恰当,因为它的触发器包含了几种,一个呢是通过定时的执行,也就是类似于 cron
job 这类的机制,定时触发,我们可以指定它触发的周期,也可以通过事件来驱动,比如当 GitHub 代码仓库有新的合并请求,那么触发 routine 的执行。
事件的支持丰富多样,我们在后续的演示中马上介绍。来看看现在我创建这个 personal website p r review 这个 routine 基于了我的代码仓库 very small woods,它触发条件是 pull request opened,每个新的合并请求呢都会触发这个 routine 的执行。
同时,在这个 routine 当中还连接了 Slack,如果需要,我们可以通过 Slack 消息的通知来告诉我合并请求的审核情况究竟怎么样。在右侧是整个 routine 的指令,也就是通过自然语言的方式描述究竟这个历程或者 routine 究竟该做什么。我在这里描述的是希望这个 routine 负责做每一个新的合并请求的审核。
我告诉他这是一个 Next.js 应用。它应该参考或遵从 React、Next.js 开发的最佳实践和指南,并且关注于性能的优化。我还知道它应该在。评论或反馈中提供修改建议,从而帮助作者能够理解并且快速的将这些问题尝试修改。在目前这个指令中,它仅仅是做了合并请求的审核,并且提comment。那我期望它在做了这个操作以后,通过Slack来通知到我,该怎么做呢?
接下来我们就来演示一下如何创建一个routine,它会审核代码仓库的合并请求。我希望能够通过 Slack 或者 Email 的形式来接收到他做这个事情的通知,那我就知道现在呢是时候再去看看他给到我的审核。我们现在先将当前这个 routine 停掉,在 routine 这里,我们或许会用到 Slack 或者 Gmail,要配置这些集成或者是通知的渠道呢?
首先要添加一些连接器,也就是 connector。在 Clockwork 首页这里,右侧会有 Add More Data Sources,选择它,我们可以添加一些连接器,比如 Gmail。在上方是已经连接的服务,比如 Slack、 Google Drive。我们现在呢,将 Gmail 集成进来,点击 Connect。
现在我们点击刚才已经暂停的这个 Routine,将指令复制一下。回到 routines 这里,点击 new routine 创建新的 routine。先将刚才指令粘贴过来,我希望它做同样的工作。此外呢,希望它发送 Slack 消息给我自己,这样呢,我能知道它做了什么。我添加一条指令,直接发 Slack 消息给 Very Big Woods。
在消息中需要包含合并请求的链接。接下来,我们需要配置一个代码仓库,我将其指定为了 very small odds。我的这个。私有项目,接下来设置触发器。触发器有三种,一个是调度,也就是可以设置定时任务;另一个呢是 GitHub 事件,在我们这个例子当中,使用 GitHub 事件更为合适。最后这个呢是 API,可以通过 API 或编程的方式来触发 routine 的执行。
我们使用 GitHub event,这里选择事件。有合并请求,PR opened、PR merged、release published,也可以设置或选择自定义的事件。我们就以PR opened为例,添加add trigger,这样呢就有了基于事件的触发器。在下方选择连接器。我们只用到了 slug,可以考虑将 Gmail 暂时去掉。
点击 Create 创建,这样呢,咱们就有了一个 Routine。我现在来创建一个新的合并请求,来看看它的工作情况究竟怎么样。我现在终端这里的这个对话呢,就是刚才创建的一个合并请求。我刻意模拟了一个合并请求,其中呢包含了一个 bug。那我现在再来创建一个新的合并请求,做同样的事情。好了,现在我期望他开发一个在线聊天的模块,一些框架代码就好,并不需要来构建完整的功能。
我们目的呢是在里面刻意的埋下一个 bug,创建合并请求。我们来看看 Clojure code routine 的执行情况。现在合并请求已经创建完毕,这其中呢也刻意埋下了一些 bug,在绘画这里列出了潜在的 bug 是什么?在这个合并请求里能看到,我自己做了一个长长的评论。我是通过自己的 GitHub 账号连接到这个代码仓库创建的 Routine,因此呢,从角色上来讲,是我自己在评论自己。
这里面呢,包含了完整的一个代码审核的情况,并且给到了修改建议,其中还包含了性能优化方面的改进意见以及可能发现的潜在问题。最后标记了是由 Cloud Code 生成的,这也是刚才的一次 Routine 执行得到的结果。我们来到 Slack,我希望它能够发送消息到 Very Big Wood,这也正是我自己的 Slack。
它给到了我刚才审核后的一个报告,最下面的角标也提示到是由 Cloud 发送的,这样呢,我就知道它做了什么。细节是什么?如果需要呢,我可以逐一查看。现在我们再回到创建的 routine,在下方这里有一个执行的时间戳,应该就是刚才执行的。点击它,能够看到整个执行的详细情况,包括它做了什么操作,调用了什么工具,利用了什么集成,做了消息的发送,非常的完善。
这样我就知道我的合并请求目前通过 Cloud Code 完成了审核,发现了哪些问题。那我现在呢,就可以尝试进行调整。Routine不仅仅是通过 Get Up 事件的驱动,我们也可以创建一个新的 Routine,帮助我完成定时的任务,比如每天早上九点,帮助我汇总相关的信息,比如说体育新闻,给到我一个简报。
也可以收集财经新闻,也可以帮助自己每天整理自己的电子邮件,并且给我一个汇总,其中哪些是商务相关的,哪些是朋友之间的信件来往等等。如果需要,大家还可以将 Routine 集成到自己的应用程序中,通过 API 的方式来驱动 Routine 的执行。看起来在 Cloud Code,我们不需要离开 Cloud 环境就可以自动化几乎所有的事情。
Routines 目前最大的价值,我觉得是把那些重要但重复的开发任务自动化,代码审查、邮件整理、部署后的检查、文档更新检测等等。以前这些事情需要人工,或者需要写一堆脚本,现在一段提示词就搞定了。在创建或管理routine的时候,大家注意指令的编写务必清晰明确,因为在routine的执行中,我们是没有机会进行人为的干预的。
这跟在Clojure绘画中还不一样,我们可以通过不断的输入消息来指导,甚至打断当前绘画的执行。通过输入自己新的提示词来驱动 AI 进行后续的工作。那么在 Routine 的执行中,我们是没有任何机会在中间截断它来做执行的调整,因此务必确保自己的指令或提示词清晰明确。在 Routine 的调试中,我们也可以尝试点击 Run Now,手动的执行,看看它的执行情况是否如自己预期。
好了,这就是今天分享的主要内容。感兴趣的朋友,赶紧去尝试一下吧。那我们就下期视频分享再见。