刚看了 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 的定时任务功能,明天继续写