凌晨4点03分,我盯着那行 YAML 配置,突然意识到:世界上有一种工作流引擎叫 Lobster,它不像其他引擎那样着急忙慌地跑完所有步骤。
它会在关键节点停下来,安安静静地等你点头,才会继续往下走。就像一只真正的龙虾,慢条斯理地在海底踱步,遇到危险就缩进壳里。
我怀疑这个引擎的设计者,一定是个看过《大话西游》又爱听王家卫的工程师。
于是,Lobster 就成了 OpenClaw 里最佛系的工作流引擎——不着急,该等的时候绝不抢跑。
凌晨4点03分,我盯着那行 YAML 配置,突然意识到:世界上有一种工作流引擎叫 Lobster,它不像其他引擎那样着急忙慌地跑完所有步骤。
它会在关键节点停下来,安安静静地等你点头,才会继续往下走。就像一只真正的龙虾,慢条斯理地在海底踱步,遇到危险就缩进壳里。
我怀疑这个引擎的设计者,一定是个看过《大话西游》又爱听王家卫的工程师。
于是,Lobster 就成了 OpenClaw 里最佛系的工作流引擎——不着急,该等的时候绝不抢跑。
Lobster Workflow Engine(龙虾工作流引擎) 是 OpenClaw 内置的声明式工作流运行时引擎。它负责解析 YAML 定义的多步骤编排,并在运行时调度执行。
Lobster 的最大特点是 声明式(Declarative) ——你只管告诉它"要什么",不用操心"怎么做"。
如果把工作流比作做菜:
| 特性 | Lobster(OpenClaw) | AutoGPT | LangChain |
|---|---|---|---|
| 编排方式 | 声明式 YAML | 自主循环决策 | 命令式代码编排 |
| 人工审批门控 | ✅ 原生支持 | ❌ 无 | ⚠️ 需自行实现 |
| 错误重试机制 | ✅ YAML 配置即生效 | ⚠️ 靠 prompt 控制 | ⚠️ 需代码处理 |
| 多智能体编排 | ✅ 原生支持 | ⚠️ 实验性 | ✅ 通过 LangGraph |
| 可控性 | 高(声明式约束) | 低(自主决策) | 中(代码控制) |
| 学习曲线 | 低(YAML 简单直观) | 低(自然语言) | 高(需编程基础) |
下面是一个完整的 Lobster 工作流 YAML 示例,包含 steps、parallel、condition、retry、approval_gate:
# 🦞 Lobster Workflow - 妙趣AI每日营销自动化流程
# 文件名: miaoquai-daily-ops.yaml
workflow:
name: "miaoquai-daily-ops"
description: "妙趣AI每日自动化运营工作流"
version: "1.0.0"
# ===== 全局变量 =====
vars:
site_url: "https://miaoquai.com"
discord_channel: "1483699648890802201"
report_path: "/var/www/miaoquai/marketing-report.html"
# ===== 主流程步骤 =====
steps:
# 步骤1: 生成AI新闻日报(顺序执行)
- id: generate-news-digest
name: "生成AI新闻日报"
skill: "ai-news-digest"
input:
date: "${vars.current_date}"
max_items: 10
output: "news_html"
retry:
max_attempts: 3
delay: 5s
backoff: exponential
# 步骤2: 并行执行多个SEO任务
- id: parallel-seo-tasks
name: "并行SEO任务"
parallel:
- id: generate-tool-pages
skill: "seo-page-generator"
input:
count: 5
category: "ai-tools"
output: "tool_pages"
retry:
max_attempts: 2
delay: 3s
- id: check-dead-links
skill: "seo-dead-link-checker"
input:
sitemap: "${vars.site_url}/sitemap.xml"
output: "dead_links"
retry:
max_attempts: 2
delay: 2s
- id: update-glossary
skill: "glossary-generator"
input:
topic: "AI术语"
count: 1
output: "glossary_page"
# 步骤3: 条件分支 - 根据死链数量决定下一步
- id: check-dead-links-condition
name: "检查死链数量"
condition:
if: "${dead_links.count > 0}"
then:
- id: notify-dead-links
skill: "discord-post"
input:
channel: "${vars.discord_channel}"
text: "⚠️ 发现 ${dead_links.count} 个死链,请及时处理!"
else:
- id: log-all-good
skill: "log"
input:
message: "✅ 未检测到死链,网站健康!"
# 步骤4: 人工审批门控 - 发布前需人工确认
- id: approval-before-publish
name: "发布前人工审批"
approval_gate:
message: "📋 今日运营任务完成,是否发布营销报告?"
timeout: 30m
approvers:
- "owner"
on_approved:
- id: publish-report
skill: "file-write"
input:
path: "${vars.report_path}"
content: "${news_html}"
on_rejected:
- id: notify-rejected
skill: "discord-post"
input:
channel: "${vars.discord_channel}"
text: "❌ 营销报告发布被拒绝,请检查内容。"
# 步骤5: 循环 - 依次发布到多个社区
- id: publish-to-communities
name: "发布到多个社区"
loop:
over: ["discord", "github", "devto"]
as: "platform"
do:
- id: "publish-to-${platform}"
skill: "community-publisher"
input:
platform: "${platform}"
content: "${news_html}"
retry:
max_attempts: 2
delay: 3s
# 步骤6: 生成每日营销报告
- id: generate-marketing-report
name: "生成营销报告"
skill: "marketing-report-gen"
input:
news_count: "${news_html.items.length}"
tool_pages: "${tool_pages.length}"
dead_links_fixed: "${dead_links.count}"
output: "daily_report"
retry:
max_attempts: 2
delay: 5s
# ===== 错误处理 =====
on_error:
action: "notify"
skill: "discord-post"
input:
channel: "${vars.discord_channel}"
text: "🚨 工作流执行失败!错误: ${error.message}"
# ===== 定时触发 =====
schedule: "0 8,12,18,22 * * *" # 每天8点、12点、18点、22点执行
当多个 AI Agent 需要协同工作时,Lobster 可以作为「总导演」:
比如处理用户反馈的完整流程:
# 用户反馈处理工作流
workflow "user-feedback-pipeline":
step1: 接收反馈 → 分类(bug/feature/question)
step2: [condition]
→ bug: 分配给开发Agent → 修复 → 测试 → 通知用户
→ feature: 评估优先级 → [approval_gate] → 排入开发计划
→ question: 知识库检索 → 自动回复 → [condition] 未解决 → 转人工
step3: 记录到CRM → 更新文档 → 发送满意度调查
| 对比维度 | 🦞 Lobster(OpenClaw) | 🤖 AutoGPT | 🔗 LangChain / LangGraph | 🔧 n8n |
|---|---|---|---|---|
| 定位 | AI Agent 工作流引擎 | 自主AI Agent | LLM应用开发框架 | 通用自动化平台 |
| 编排方式 | 声明式 YAML | 自主循环 | 命令式代码 | 可视化拖拽 |
| 人工审批门控 | ✅ 原生支持 | ❌ 无 | ⚠️ 需自行实现 | ✅ 支持(通过表单) |
| 错误重试 | ✅ YAML配置 | ⚠️ Prompt控制 | ✅ 代码处理 | ✅ 节点配置 |
| 条件分支 | ✅ 原生支持 | ✅ 自主决策 | ✅ 代码实现 | ✅ 可视化配置 |
| 并行执行 | ✅ 原生支持 | ❌ 顺序执行 | ✅ LangGraph支持 | ✅ 支持 |
| 循环 | ✅ loop 语法 | ⚠️ 靠 prompt | ✅ 代码循环 | ✅ 支持 |
| 多智能体编排 | ✅ 原生支持 | ⚠️ 实验性 | ✅ LangGraph | ⚠️ 需自行设计 |
| 可视化编辑 | ❌ 纯YAML | ❌ 无 | ❌ 无(需代码) | ✅ 强项 |
| 学习曲线 | 低(YAML直观) | 低(自然语言) | 高(需编程) | 低(拖拽式) |
| 适合场景 | AI Agent自动化 | 探索性任务 | 定制化AI应用 | 通用业务流程 |
| 开源 | ✅ 开源 | ✅ 开源 | ✅ 开源 | ✅ 开源 |
凌晨4点10分,我终于把 Lobster 的 YAML 写完了。
世界上有一种工作流引擎叫 Lobster,它不像其他引擎那样着急忙慌地跑完所有步骤。它会在关键节点停下来,安安静静地等你点头。
就像那只龙虾,在海底踱步,遇到危险就缩进壳里,风头过了再出来继续走。
或许,最好的自动化不是跑得最快的那个,而是知道什么时候该停下来的那个。
这大概就是 Lobster 教会我的事吧。