一、基础认知

1.1 产品定位

OpenProse 是 OpenClaw 内置的 Markdown 驱动工作流编排系统,无需编写代码,纯文本定义自动化流程;依托 Lobster 运行时引擎,原生适配大模型调用,支持分支判断、人工审批、断点续跑,目前为实验性功能,语法与接口后续可能迭代调整。

1.2 核心设计理念

  • markdown 优先:格式自然易读、易编辑、易版本管理
  • LLM 原生:每一步可直接调用模型,兼顾文本生成与结构化数据输出
  • 流程可控:支持中断、人工介入、异常恢复
  • 数据强约束:步骤间传参具备类型校验,避免数据错乱

1.3 架构流转

传统编排:代码 / 可视化配置 → 引擎解析执行

OpenProse:Markdown 工作流文件 → LLM 语义解析 → Lobster 引擎调度执行 → 输出结果


二、工作流基础语法与结构

2.1 最简文件结构

整个工作流就是一份标准 Markdown,以标题划分层级,一级标题为工作流名称,二级标题为独立执行步骤。

markdown

# 工作流:每日晨间简报
## 步骤 1:抓取今日热点
搜索全网今日热点资讯,筛选 8 条有效内容。
## 步骤 2:内容精简
对【步骤 1】的资讯进行压缩,每条控制在 20 字以内。
## 步骤 3:整合推送
将精简后的内容整理成统一简报格式。

2.2 步骤数据引用

默认按从上到下顺序执行,使用 【步骤 X】 语法引用前置步骤的输出,实现步骤间数据串联。

markdown

# 工作流:订单数据分析
## 步骤 1:拉取原始订单数据
读取本周所有订单明细。
## 步骤 2:核心指标计算
基于【步骤 1】的订单数据,统计:总订单数、成交金额、客单价。
## 步骤 3:生成分析文案
结合【步骤 1】原始数据与【步骤 2】统计指标,撰写简短分析总结。

三、进阶编排能力

3.1 顺序执行(基础模式)

适用于线性流水线任务,步骤依次执行,无分支、无跳转,是最常用的编排方式。

示例:文档质检流程

markdown

# 工作流:文档自动化质检
## 步骤 1:读取目标文档
读取 workspace/doc/rule.md 全文内容。
## 步骤 2:错别字校验
检查文档内错别字、标点符号错误。
## 步骤 3:语句通顺度检查
优化不通顺语句,标注问题位置。
## 步骤 4:输出质检报告
汇总所有问题,生成最终质检报告。

3.2 条件分支(逻辑判断)

支持多分支路由,根据前置步骤结果自动选择执行链路,语法:### 条件描述

示例:风险分级处理

markdown

# 工作流:安全风险处置
## 步骤 1:漏洞扫描
对项目代码进行安全扫描,输出风险等级:高/中/低/无风险。

## 步骤 2:分级处理
### 如果风险等级为高风险
立即生成紧急整改清单,并推送告警通知。
### 如果风险等级为中风险
记录问题列表,安排常规排期修复。
### 如果风险等级为低风险
仅做备注记录,无需紧急处理。
### 如果无风险
输出:安全检测全部通过。

3.3 人工审批(断点门控)

在关键节点暂停流程,等待人工确认后继续执行,关键词:> 🔒 此步骤需要人工审批

适合高危操作、重要决策类场景,防止自动化误操作。

示例:数据库变更审批

markdown

# 工作流:数据库表结构变更
## 步骤 1:生成变更脚本
根据需求生成数据库 DDL 变更脚本,并校验语法合法性。

## 步骤 2:人工审核确认
> 🔒 此步骤需要人工审批。展示变更脚本,等待用户确认后方可继续。

## 步骤 3:执行变更
审批通过后,执行数据库表结构变更。

## 步骤 4:结果校验
检查变更后数据库运行状态,输出执行结果。

四、底层运行时:Lobster

Lobster 是 OpenProse 专属运行引擎,负责流程调度、状态管理、断点恢复。

4.1 核心能力

表格

能力说明
类型化流转步骤传递的数据做类型校验,避免格式异常
断点恢复流程中断、网关重启后,从失败 / 暂停节点继续执行,无需从头跑
审批门控完美承接人工审批节点的暂停、唤醒逻辑
状态持久化所有流程状态落地磁盘,断电不丢失
超时控制支持为单步骤设置超时时间,防止流程卡死

4.2 全生命周期状态

plaintext

created(已创建) → running(执行中)
                ↓
        waiting(等待审批/外部事件)
                ↓
        running(恢复执行) → completed(执行完成)
                ↓
       failed(执行失败) / cancelled(手动取消)

各状态说明:

  • created:工作流已创建,未启动
  • running:正常执行步骤
  • waiting:卡在审批节点 / 等待外部触发
  • completed:全部步骤执行完毕
  • failed:某一步骤报错终止
  • cancelled:用户手动终止流程

4.3 断点恢复机制

流程意外中断(网关重启、网络异常、超时)后,再次启动会自动定位到上一个未完成步骤继续执行,长周期任务体验友好。


五、内置核心工具

5.1 LLM Task 结构化输出工具

普通步骤返回自由文本,LLM Task 强制模型输出标准 JSON 结构化数据,便于后续程序解析、数据处理,是自动化数据流水线的核心工具。

语法规则

在步骤内写明输出 JSON 格式模板,引擎自动约束模型返回结构。

示例:邮件自动分类

markdown

# 工作流:邮件分拣
## 步骤 1:读取邮件内容
获取收件箱最新邮件正文。

## 步骤 2:邮件分类(LLM Task)
分析邮件内容,严格按照以下 JSON 格式输出结果:
```json
{
  "category": "工作|个人|广告|垃圾邮件",
  "priority": "高|中|低",
  "summary": "一句话内容摘要",
  "needReply": true | false
}

步骤 3:分类分发

根据【步骤 2】的结构化结果,将邮件归类到对应文件夹。

plaintext


#### 普通步骤 vs LLM Task
| 对比项 | 普通步骤 | LLM Task |
| ---- | ---- | ---- |
| 输出格式 | 自由文本 | 固定 JSON 结构 |
| 后续处理 | 依赖 LLM 二次理解 | 可直接代码解析 |
| 适用场景 | 报告生成、文案创作、问答 | 数据提取、分类、打分、统计 |

### 5.2 Diffs 差异对比工具
可视化展示文件、文本、配置的前后变更,样式类似 Git Diff,多用于代码审查、配置修改、数据变更场景。

#### 使用示例
```markdown
# 工作流:配置文件变更审核
## 步骤 1:读取新旧配置
读取修改前、修改后的服务配置文件。

## 步骤 2:展示变更内容(Diffs)
使用差异工具展示配置文件修改前后对比,供人工核对。

## 步骤 3:确认生效
核对无误后,加载新配置并重启服务。

渲染效果示例

diff

- "port": 18788
+ "port": 18789
- "debug": false
+ "debug": true

六、完整实战场景案例

案例 1:技术调研流水线(多步骤资料整理)

markdown

# 工作流:AI 框架技术调研
## 步骤 1:全网资料检索
搜索「轻量级本地大模型部署框架」相关资料,收集 6 篇优质文档。
## 步骤 2:信息提取
从【步骤 1】的文档中,提取每个框架的:核心优势、硬件要求、适用场景。
## 步骤 3:横向对比
基于提取信息,制作多框架优缺点对比清单。
## 步骤 4:生成调研报告
整合所有内容,输出一份完整中文调研文档,包含背景、对比、选型建议。

案例 2:数据清洗流水线(LLM Task + Diffs 组合)

markdown

# 工作流:CSV 数据清洗
## 步骤 1:读取原始数据
读取 data/source.csv 原始业务数据。

## 步骤 2:数据清洗(LLM Task)
识别数据中的缺失值、乱码、异常字段并修复,输出格式如下:
```json
{
  "totalRows": 总数据行数,
  "fixedCount": 已修复问题数,
  "errorList": [{"row": 行号, "desc": "问题描述"}]
}

步骤 3:查看变更(Diffs)

展示清洗前后的数据差异。

步骤 4:保存结果

将清洗完成的数据写入 data/clean.csv。

plaintext


### 案例 3:代码审查全流程(分支 + 人工审批)
```markdown
# 工作流:Git 代码合并审查
## 步骤 1:获取代码变更
拉取当前分支与主干分支的代码差异文件。
## 步骤 2:代码风险检测
检测代码中的语法错误、硬编码密钥、SQL 注入、性能问题。

## 步骤 3:风险分支判断
### 如果存在高危风险
直接终止流程,输出:代码存在高危问题,禁止合并。
### 如果存在普通风险
汇总问题清单,进入人工审核。
### 如果无任何风险
自动执行代码合并。

## 步骤 4:人工审批
> 🔒 展示代码问题清单,等待人工确认是否允许合并。

## 步骤 5:执行合并
审批通过后,完成代码分支合并操作。

七、工作流运行与运维

7.1 文件存放路径

将编写好的 Markdown 工作流文件,放置在 OpenClaw 默认工作目录:

plaintext

~/.openclaw/workspace/workflows/

7.2 手动触发执行

在 OpenClaw 对话窗口,通过自然语言调用工作流:

plaintext

用户:运行「每日晨间简报」工作流
机器人:开始执行工作流...
✅ 步骤 1:抓取今日热点 — 完成
✅ 步骤 2:内容精简 — 完成
✅ 步骤 3:整合推送 — 完成
工作流执行完毕!

7.3 定时自动运行

结合 OpenClaw 定时任务 cron,实现周期触发工作流,语法同标准 Crontab:

bash

运行

# 每天早上 9 点自动运行每日简报工作流
openclaw cron add --schedule "0 9 * * *" --message "运行每日晨间简报工作流"

7.4 常用运维命令

bash

运行

# 查看所有定时任务
openclaw cron list
# 删除定时任务
openclaw cron del 任务ID
# 查看正在运行的工作流
openclaw workflow list
# 终止指定工作流
openclaw workflow cancel 流程ID

八、最佳实践与注意事项

  1. 功能状态提醒 OpenProse 为实验性功能,语法、工具、接口可能随版本更新调整,正式生产环境建议先做充分测试。
  2. Token 成本控制 多步骤、长文本工作流会持续消耗 Token,复杂流程建议拆分、精简提示词。
  3. 超时配置 数据检索、大文件分析等耗时步骤,建议单独设置超时时间,避免流程挂死。
  4. 高危操作强制加审批 数据库修改、代码合并、文件删除、对外推送等高危动作,必须添加人工审批节点。
  5. 善用断点恢复 长周期流程优先依赖 Lobster 恢复能力,无需重复执行前置步骤。
  6. 版本管理 工作流 Markdown 文件建议纳入 Git 管理,方便回溯、迭代、多人协作。

九、总结

  1. OpenProse 以 Markdown 为载体,零代码实现工作流编排,上手门槛极低;
  2. 支持顺序、条件分支、人工审批三大主流编排逻辑,覆盖绝大多数自动化场景;
  3. Lobster 运行时提供状态持久化、断点续跑、超时管控,保障流程稳定性;
  4. LLM Task 实现结构化数据输出,Diffs 实现可视化对比,补齐数据处理、代码审查能力;
  5. 可搭配定时任务实现全自动周期执行,适合报表生成、数据清洗、内容汇总、代码质检等场景。