11.2 Lobster工作流

Lobster 是OpenClaw的类型化工作流运行时,提供可组合的流水线和批准门控机制。

概述

Lobster是一个专为OpenClaw设计的工作流引擎,支持确定性的、可恢复的、基于JSON的工具链,并内置人工批准检查点。

核心特性

  • 确定性执行: 工作流结果可预测和可重现
  • 可恢复性: 支持工作流中断后恢复执行
  • JSON驱动: 使用JSON定义工作流
  • 批准门控: 内置人工审批检查点
  • 类型安全: 强类型工作流定义

工作流模式

Lobster遵循 小型CLI + JSON管道 + 批准 的模式:

# 基本流水线
小型CLI工具 → JSON输出 → 人工批准 → 下一步骤

工作流定义

简单工作流

{
  "name": "deploy-workflow",
  "steps": [
    {
      "id": "build",
      "tool": "exec",
      "params": {
        "command": "npm run build"
      }
    },
    {
      "id": "approve",
      "type": "approval",
      "message": "构建完成,是否继续部署?"
    },
    {
      "id": "deploy",
      "tool": "exec",
      "params": {
        "command": "npm run deploy"
      }
    }
  ]
}

条件步骤

{
  "name": "conditional-workflow",
  "steps": [
    {
      "id": "test",
      "tool": "exec",
      "params": {
        "command": "npm test"
      }
    },
    {
      "id": "deploy-prod",
      "tool": "exec",
      "params": {
        "command": "deploy-prod.sh"
      },
      "condition": {
        "step": "test",
        "result": "success"
      }
    }
  ]
}

批准机制

批准步骤

{
  "id": "manual-review",
  "type": "approval",
  "message": "请检查以下内容:\\n- 构建日志\\n- 测试结果",
  "timeout": 3600,
  "required": true
}

批准操作

# 批准工作流步骤
openclaw workflow approve <workflow-id> <step-id>

# 拒绝工作流步骤
openclaw workflow reject <workflow-id> <step-id> "原因"

# 查看待批准的步骤
openclaw workflow pending

工作流管理

启动工作流

# 从文件启动
openclaw workflow start workflow.json

# 使用参数启动
openclaw workflow start workflow.json --params '{"env":"prod"}'

监控工作流

# 查看工作流状态
openclaw workflow status <workflow-id>

# 查看所有工作流
openclaw workflow list

# 查看工作流日志
openclaw workflow logs <workflow-id>

控制工作流

# 暂停工作流
openclaw workflow pause <workflow-id>

# 恢复工作流
openclaw workflow resume <workflow-id>

# 取消工作流
openclaw workflow cancel <workflow-id>

高级特性

并行步骤

{
  "name": "parallel-workflow",
  "steps": [
    {
      "id": "tests",
      "type": "parallel",
      "steps": [
        {
          "id": "unit-tests",
          "tool": "exec",
          "params": { "command": "npm run test:unit" }
        },
        {
          "id": "integration-tests",
          "tool": "exec",
          "params": { "command": "npm run test:integration" }
        }
      ]
    }
  ]
}

错误处理

{
  "id": "risky-step",
  "tool": "exec",
  "params": {
    "command": "risky-operation.sh"
  },
  "onError": {
    "action": "continue",
    "fallback": {
      "id": "cleanup",
      "tool": "exec",
      "params": { "command": "cleanup.sh" }
    }
  }
}

重试机制

{
  "id": "flaky-step",
  "tool": "exec",
  "params": {
    "command": "flaky-api-call.sh"
  },
  "retry": {
    "maxAttempts": 3,
    "backoff": "exponential",
    "initialDelay": 1000
  }
}

配置

{
  "tools": {
    "lobster": {
      "enabled": true,
      "workflowDir": "~/.openclaw/workflows",
      "maxConcurrent": 5,
      "approvalTimeout": 3600
    }
  }
}

使用场景

  • CI/CD流水线: 自动化构建、测试和部署
  • 数据处理: 多步骤数据转换流程
  • 审批流程: 需要人工审批的自动化任务
  • 复杂操作: 需要编排的多步骤操作
  • 定时任务: 定期执行的工作流

最佳实践

  • 为每个步骤提供清晰的ID和描述
  • 在关键点设置批准步骤
  • 实施适当的错误处理和重试
  • 使用并行步骤提高效率
  • 定期清理旧的工作流记录
  • 版本控制工作流定义文件
提示
Lobster为复杂的自动化任务提供了强大而灵活的工作流编排能力,特别适合需要人工审批和多步骤协调的场景。