Async Queue

在 OpenClaw 智能体之间调度延迟任务——设置提醒、串联任务、延迟协调智能体。基于文件存储,无需额外基础设施。不支持 cron 式周期任务。

安装

概览

什么是Async Queue

Async Queue 是一个轻量级的文件存储任务队列系统,专为 OpenClaw 智能体设计,用于在指定延迟时间后调度并执行任务。它通过简单的命令行工具将任务推送到本地 JSON 文件中,由后台守护进程定期轮询并触发目标智能体的执行。整个系统无需额外基础设施支持,完全基于本地文件操作,非常适合需要异步协调多个智能体或实现延迟提醒功能的场景。

该工具的核心理念是将无法立即完成的任务“排队”,并在未来某个时刻自动唤醒对应的智能体进行处理。无论是设置一个30分钟后的提醒、检查部署状态,还是在某项操作完成后自动触发后续动作,Async Queue 都能以极低开销实现可靠的延迟调度。其架构包含四个主要组件:负责轮询的守护进程、推送任务的 CLI 工具、管理队列状态的命令行接口,以及作为 OpenClaw 插件接收任务触发的模块。

由于采用30秒轮询机制而非实时触发,Async Queue 并不适用于对时间精度要求极高的场景,也不支持 cron 式的周期性任务调度。但它胜在简单可靠,特别适合那些需要在智能体之间传递延时指令、串联多步操作流程或实现基础提醒功能的开发者和团队使用。

核心功能特点

  1. 基于本地文件(queue.json)存储任务队列,无需数据库或外部服务
  2. 支持多种延迟格式:相对时间(如10s/5m/2h)和绝对时间(HH:MM或H:MMam/pm)
  3. 可指定目标任务智能体,支持会话键精确控制(如agent:main:main)
  4. 提供任务链功能(–then参数),当前任务完成后自动触发下一任务
  5. 内置TTL机制防止过期未处理任务堆积,默认5分钟自动清理
  6. 完整的CLI工具集:push.js添加任务、queue-cli.js查看/取消/历史记录

适用场景

Async Queue 最典型的应用场景是用户请求延时提醒或系统需要分阶段执行复杂流程的情况。例如当用户询问’帮我30分钟后提醒我开会’时,可以直接调用push.js生成定时任务;或者在自动化部署流程中,先启动构建任务,5分钟后自动检查构建结果是否成功。这种模式特别适合需要跨智能体协作的场景——比如主智能体分配子任务后,通过队列在合适时机重新介入检查进度。

另一个重要用途是实现任务流水线:当一个智能体完成初步处理后,可以通过–then参数自动安排后续动作。典型用例包括’运行部署检查’后立即’验证日志是否干净’,或者’发送确认邮件’后’更新工单状态’。这种方式避免了人工干预和重复提问,显著提升自动化效率。对于需要临时中断当前对话转而处理其他事务的情况也很有用,比如正在调试代码时收到紧急问题,可以设置稍后返回继续处理。

需要注意的是,Async Queue 不适合即时响应需求——如果任务可以立即完成就不应该排队;也不适合周期性任务,这类需求应使用openclaw cron替代。对于那些等待用户输入的任务,直接与用户沟通比排队更合适。总的来说,任何需要延迟执行、跨智能体协调或构建多步骤工作流的场景,都可以考虑使用Async Queue来简化架构复杂度。