OpenClaw 源码里 Agent 定时任务怎么设计?

36 阅读2分钟

刚看了 OpenClaw 的源码,如果 Agent 要加一个定时任务功能,怎么设计?

(把这个作为你面试 AI Agent 全栈工程师的面试题)

AI Agent 非常常用的功能就是定时任务。

比如你安排它在某个时间做什么事情。

那这种功能这么实现呢?

Agent 架构里一般会把它封装成 tool,这个 tool 接收要做的事情的文本,用 corn 之类的来定时。

时间到了之后,它会调用 model 来解析这个文本,执行。

这个文本里会调用其他的 tool,比如联网搜索的 tool、增删改查数据库的 tool、发送邮件的 tool

比如:每天 8 点定时去搜索网上 ai 相关的新闻,生成一个精美 html,发送到我的邮箱,并且把发送记录保存到数据库。

你就给 ai 这么一段文本,它会做什么事情呢?

它会调用定时任务的 tool,把后面要做的事情的文本给它。

定时任务到期后,会调用模型来处理这个文本,然后就触发了别的 tool call,循环执行,直到没有新的 tool call,这个任务就完成了。

然后下一次定时任务到期继续这样。

这就是 Agent 架构下定时任务的实现方案。

当然 OpenClaw 里并不是直接把定时任务封装成 tool,它是一个独立的服务,但它有执行命令的 tool,所以你让他跑定时任务,他会执行命令来跑定时任务,绕了一层,但本质一样。

有同学问我为啥不讲 skill?

skill 只是封装好的 prompt + tool,但是 tool 可插拔,卸载 skill 就去掉了这些 tool

是封装出来的概念,后面做 agent 可以实现 skill 系统,但它不是底层知识,是可以可选实现的应用层功能

前端转 AI Agent 全栈通关秘籍 下节就来实现这个 Agent 的定时任务功能,明天继续写