ClawSkills logoClawSkills

Lobster Workflows

将 OpenClaw cron 作业转换为 Lobster 工作流。分析、检查和验证作业迁移。用于将自动化转换为确定性的、需要审批的

介绍

# lobster-jobs

将 OpenClaw cron 作业转换为具有审批门控和可恢复执行的 Lobster 工作流。

## 目的

OpenClaw cron 作业分为两种: - **systemEvent**:简单的 Shell 命令(完全确定性) - **agentTurn**:生成 AI 代理的自然语言指令(灵活但消耗大量 Token)

Lobster 工作流提供: - **确定性执行**:每一步无需 LLM 重新规划 - **审批门控**:需要显式用户批准的硬性停止 - **有状态执行**:记住游标/检查点 - **可恢复性**:暂停并从中断处准确恢复

此技能有助于分析现有的 cron 作业并将其转换为 Lobster 工作流。

## 命令

### 第一层(现已可用)

#### `lobster-jobs list` 列出所有 cron 作业及其 Lobster 就绪评分。

输出类别: - ✅ **完全可迁移**:简单的 Shell 命令(systemEvent) - 🟡 **部分可迁移**:混合确定性 + LLM 步骤(agentTurn) - ❌ **不可迁移**:需要繁重的 LLM 推理

#### `lobster-jobs inspect <job-id>` 检查特定的 cron 作业,提供详细的迁移评估。

显示内容: - 作业元数据(计划、目标、负载类型) - Lobster 迁移状态及原因 - 负载预览 - 迁移建议

#### `lobster-jobs validate <workflow-file>` 根据架构验证 Lobster 工作流 YAML 文件。

检查项: - 必填字段(名称、步骤) - 步骤结构(id、命令) - 审批门控语法 - 条件语法

### 第二层(现已可用)

#### `lobster-jobs convert <job-id>` 将 cron 作业转换为 Lobster 工作流。

```bash lobster-jobs convert 17fe68ca lobster-jobs convert 17fe68ca --output-dir ~/workflows lobster-jobs convert 17fe68ca --force # Overwrite existing ```

生成内容: - `~/.lobster/workflows/` 中的 `.lobster` 工作流文件 - 从 systemEvent 或 agentTurn 负载中提取命令 - 自动验证生成的工作流

选项: - `--output-dir, -o`:自定义输出目录 - `--force, -f`:覆盖现有工作流 - `--keep-on-error`:即使验证失败也保留文件

#### `lobster-jobs new <name>` 使用模板从头创建新的 Lobster 工作流。

```bash lobster-jobs new my-workflow lobster-jobs new my-workflow --template with-approval lobster-jobs new my-workflow --template stateful ```

模板: - `simple-shell`:基本命令执行 - `with-approval`:带有审批门控的工作流 - `stateful`:带有游标/状态跟踪的工作流

## 安装

```bash # Add to PATH export PATH="$PATH:/home/art/niemand/skills/lobster-jobs/bin"

# Or create symlink ln -s /home/art/niemand/skills/lobster-jobs/bin/lobster-jobs ~/.local/bin/ ```

## 快速开始

```bash # See all your cron jobs and their migration status lobster-jobs list

# Inspect a specific job lobster-jobs inspect 17fe68ca

# Convert a job to Lobster workflow lobster-jobs convert 17fe68ca

# Create a new workflow from template lobster-jobs new my-workflow --template with-approval

# Validate a workflow file lobster-jobs validate ~/.lobster/workflows/my-workflow.lobster ```

## 工作流文件格式

```yaml name: my-workflow description: Optional description

steps: - id: fetch_data command: some-cli fetch --json - id: process command: some-cli process stdin: $fetch_data.stdout - id: approve_send command: approve --prompt "Send notification?" approval: required - id: send command: message.send --channel telegram --text "Done!" condition: $approve_send.approved ```

## 迁移策略

### 包装器方法(推荐) 保留 cron 作为调度器,将负载更改为调用 Lobster:

```json { "payload": { "kind": "systemEvent", "text": "lobster run ~/.lobster/workflows/my-workflow.lobster" } } ```

优势: - 回滚很容易(恢复负载) - 增量式迁移 - Cron 调度已经生效

## 处理 LLM 判断

对于需要确定性步骤和 LLM 推理的作业:

```yaml steps: - id: gather command: gh issue list --json title,body - id: triage command: clawd.invoke prompt: "Classify these issues by urgency" - id: notify command: telegram-send ```

工作流是确定性的;LLM 是一个黑盒步骤。

## 边缘情况

| 问题 | 处理方式 | |-------|----------| | **幂等性** | 工作流跟踪步骤完成情况;重启安全 | | **审批超时** | 可配置超时及默认操作 | | **密钥处理** | 环境变量或 1Password 引用 | | **部分失败** | `convert` 在写入前进行验证 |

## 参考

- Lobster: https://github.com/openclaw/lobster - Lobster VISION: https://github.com/openclaw/lobster/blob/main/VISION.md

更多产品