并行任务实战

OpenClaw 支持 Agent 在单次对话中并行处理多个子任务,提高复杂任务的执行效率。

并行执行原理

当 Agent 接收到复杂任务时,会将其拆解为多个独立的子任务。对于没有依赖关系的子任务,Agent 可以并行调用工具执行。

用户请求 → Agent 分析
                ├── 子任务 A(文件读取)  ─┐
                ├── 子任务 B(API 调用)  ─┼── 并行执行
                └── 子任务 C(网页抓取)  ─┘
                                           → 合并结果 → 返回

配置并行度

{
  agents: {
    defaults: {
      tools: {
        parallel_execution: true,
        max_concurrent: 5,
      },
    },
  },
}
  • parallel_execution:启用工具并行调用
  • max_concurrent:最大并发数,根据系统资源调整

适合并行的场景

多文件处理:同时读取、分析多个文件

用户:分析 src/ 目录下所有 Python 文件的代码质量

Agent 会同时读取所有文件,而不是逐个处理。

多 API 调用:同时请求多个数据源

用户:查询北京、上海、广州三个城市的天气

三个天气 API 请求并行发出,同时返回结果。

批量网页抓取:同时打开多个页面

用户:抓取这 5 个竞品网站的首页标题和描述

任务依赖与编排

对于有依赖关系的任务,Agent 会自动识别并按顺序执行:

步骤 1:读取配置文件(必须先完成)
步骤 2:并行执行
  ├── 根据配置调用 API A
  ├── 根据配置调用 API B
  └── 根据配置查询数据库
步骤 3:汇总所有结果生成报告(等待步骤 2 全部完成)

与 Cron 结合

将并行任务与定时执行结合,实现高效的自动化流程:

openclaw cron add --schedule "0 9 * * *" \
  --message "并行检查所有监控项并生成日报" \
  --channel telegram --target <ChatID>

性能建议

  • 对于 I/O 密集型任务(文件读写、网络请求),适当提高 max_concurrent
  • 对于 CPU 密集型任务(代码执行、数据分析),控制并发数避免资源争抢
  • 使用轻量模型处理简单子任务,节省成本