TTokenySpace
返回 Skills 列表

Workflow Orchestrator Free

构建可复用的自动化流水线,支持节点间数据流、状态管理与并发锁控制。

#中文
0

安装到 Tokeny(自动)

下载 ZIP
安装"workflow-orchestrator-free"技能
技能信息:
- 名称: Workflow Orchestrator Free
- 标识: workflow-orchestrator-free
- 描述: 构建可复用的自动化流水线,支持节点间数据流、状态管理与并发锁控制。
- 版本: 1.0.0
下载地址:
https://www.tokeny.space/api/skills/workflow-orchestrator-free/download
继续

复制上方内容到 Tokeny 客户端并在会话中发送即可自动安装;也可直接 下载 ZIP并拖动到技能窗口安装。

SKILL.md

工作流编排器(免费版)

构建可复用的自动化流水线。节点间数据流+状态管理+并发锁,让流水线可中断、可恢复、可复用。

核心理念

工作流 = 可复用组件 + 流程定义 + 状态管理。所有节点输出持久化到磁盘,支持中断恢复与并发控制。

workflows/
├── index.md                 # 流水线清单(含标签)
├── components/
│   ├── connections/         # 认证配置(复用)
│   ├── nodes/               # 可复用操作(复用)
│   └── triggers/            # 事件源(复用)
└── flows/{name}/
    ├── flow.md              # 流程定义
    ├── config.yaml          # 参数配置
    ├── run.sh               # 可执行脚本
    ├── state/               # 持久化状态
    │   ├── cursor.json      # 游标:上次执行到哪
    │   ├── seen.json        # 已处理:避免重复
    │   └── checkpoint.json  # 检查点:多步恢复
    ├── data/                # 节点间数据流
    │   ├── 01-fetch.json
    │   ├── 02-filter.json
    │   └── 03-transform.json
    └── logs/                # 运行日志(JSONL)

快速开始

  1. 阅读## 核心能力章节了解skill功能
  2. 按## 依赖说明配置环境
  3. 执行所需能力对应的命令
  4. 参考## 错误处理章节处理异常
  5. 查看## FAQ解答常见疑问

120秒上手

# 1. 创建工作流目录结构
mkdir -p workflows/components/{connections,nodes,triggers}
mkdir -p workflows/flows/my-first-flow/{state,data,logs}

# 2. 创建流程定义
cat > workflows/flows/my-first-flow/flow.md << 'EOF'
# My First Flow

**结果处理**: 执行完成后,查看输出结果确认操作状态。成功时输出包含处理摘要和结果数据;失败时根据错误信息排查问题,查阅错误处理章节获取恢复步骤。


## Nodes
1. fetch: 获取数据 (on error: retry(3))
2. filter: 过滤数据 (on empty: skip)
3. transform: 转换格式 (on error: fail)
4. output: 输出结果
EOF

# 3. 创建可执行脚本
cat > workflows/flows/my-first-flow/run.sh << 'EOF'
#!/bin/bash
set -euo pipefail
LOCKFILE="/tmp/workflow-my-first-flow.lock"
exec 200>"$LOCKFILE"
flock -n 200 || { echo "另一个实例正在运行"; exit 0; }

# 节点1:获取数据
curl -s "https://api.example.com/data" > data/01-fetch.json

# 节点2:过滤数据
jq '[.[] | select(.status=="active")]' data/01-fetch.json > data/02-filter.json

# 节点3:转换格式
jq '[.[] | {id, name, status}]' data/02-filter.json > data/03-transform.json

# 节点4:输出结果
cp data/03-transform.json output.json
EOF
chmod +x workflows/flows/my-first-flow/run.sh

# 4. 执行工作流
cd workflows/flows/my-first-flow && ./run.sh

依赖详情

工具用途必需
jqJSON处理
yqYAML配置解析
curlHTTP请求
flock锁文件防并发是(Linux/macOS)

核心能力

1. 数据流模式

每个节点将输出写入data/{NN}-{name}.json,下一节点读取它。

# 节点1:获取数据
curl -s "$API_URL" > data/01-fetch.json

# 节点2:过滤数据(读取节点1的输出)
jq '[.[] | select(.active==true)]' data/01-fetch.json > data/02-filter.json

# 节点3:转换格式(读取节点2的输出)
jq '[.[] | {id: .id, name: .name}]' data/02-filter.json > data/03-transform.json

核心规则:打破此模式 = 节点无法通信。

输入: 用户提供数据流模式所需的指令和必要参数。 处理: 按照skill规范执行数据流模式操作,遵循单一意图原则。 输出: 返回数据流模式的执行结果,包含操作状态和输出数据。

  • 执行此能力时使用input_params参数,支持创建/查询/导出操作

2. 错误声明

每个节点在flow.md中必须声明错误处理策略:

错误类型处理选项说明
On errorretry(N)重试N次后失败
On errorfail立即失败
On errorcontinue继续下一节点
On erroralert告警并暂停
On emptyskip跳过后续节点
On emptycontinue继续处理
On emptyfail失败

未声明 = 不可预测的工作流。

输入: 用户提供错误声明所需的指令和必要参数。 处理: 按照skill规范执行错误声明操作,遵循单一意图原则。 输出: 返回错误声明的执行结果,包含操作状态和输出数据。

3. 锁文件(防并发)

LOCKFILE="/tmp/workflow-${NAME}.lock"
exec 200>"$LOCKFILE"
flock -n 200 || { echo "另一个实例正在运行"; exit 0; }

防止同一工作流被并发执行,避免状态冲突。

输入: 用户提供锁文件(防并发)所需的指令和必要参数。 处理: 按照skill规范执行锁文件(防并发)操作,遵循单一意图原则。 输出: 返回锁文件(防并发)的执行结果,包含操作状态和输出数据。

  • 执行此能力时使用input_params参数,支持创建/查询/导出操作

4. 状态文件

文件用途示例
cursor.json"上次执行到哪?"{"last_id": 12345}
seen.json"已处理过什么?"{"ids": [1,2,3]}
checkpoint.json"多步恢复点"{"phase": "transform", "step": 2}
# 读取游标继续处理
LAST_ID=$(jq '.last_id' state/cursor.json)
curl -s "$API_URL?since=$LAST_ID" > data/01-fetch.json

# 更新游标
NEW_ID=$(jq '.[-1].id' data/01-fetch.json)
jq --arg id "$NEW_ID" '.last_id = ($id|tonumber)' state/cursor.json > state/cursor.json.tmp
mv state/cursor.json.tmp state/cursor.json

输入: 用户提供状态文件所需的指令和必要参数。 处理: 按照skill规范执行状态文件操作,遵循单一意图原则。 输出: 返回状态文件的执行结果,包含操作状态和输出数据。

5. 组件复用

创建新连接/节点/触发器前,先检查已有组件:

# 列出已有组件
ls workflows/components/connections/
ls workflows/components/nodes/
ls workflows/components/triggers/

# 复用已有连接(而非新建)
source workflows/components/connections/api-auth.sh

输入: 用户提供组件复用所需的指令和必要参数。 处理: 按照skill规范执行组件复用操作,遵循单一意图原则。 输出: 返回组件复用的执行结果,包含操作状态和输出数据。 能力覆盖范围:本skill的核心能力覆盖以下场景关键词:构建可复用的自动、化流水线、支持节点间数据流、状态管理与并发锁、工作流编排器免费、版为自动化开发者、提供轻量级的流水、线编排能力、聚焦可复用组件、节点间数据流与状、态管理、文件即状态、的极简理念、所有节点输出与状、态持久化到磁盘、支持中断恢复、Use、when、需要提升效率、自动化流程、批量处理、工作流优化时使用、不适用于需要人工、创意判断的任务、适用于独立开发者、企业团队和自动化、工作流场景等。

  • 执行此能力时使用input_params参数,支持创建/查询/导出操作

使用场景

场景一:数据ETL流水线(数据工程师角色)

痛点:ETL流程需要定时执行,中断后要能从断点恢复,避免重复处理。

对策:用游标+seen状态管理实现增量ETL。

# ETL工作流
./run.sh

# 中断后恢复(从游标继续)
./run.sh  # 自动读取cursor.json,从上次位置继续

效果:中断恢复零数据丢失,避免重复处理。

场景二:自动化报表生成(运营角色)

痛点:每周需要从多个API聚合数据生成报表,手动操作易遗漏。

对策:用工作流编排多数据源聚合。

# 报表生成工作流
# 节点1:获取销售数据
curl -s "$SALES_API" > data/01-sales.json
# 节点2:获取库存数据
curl -s "$INVENTORY_API" > data/02-inventory.json
# 节点3:合并数据
jq -s '[.[][]]' data/01-sales.json data/02-inventory.json > data/03-merged.json
# 节点4:生成报表
jq '[.[] | {date, sales, inventory}]' data/03-merged.json > report.json

场景三:文件批处理(运维角色)

痛点:批量处理大量文件,需要断点续传与去重。

对策:用seen状态管理避免重复处理。

# 批处理工作流
for FILE in input/*.csv; do
  FILENAME=$(basename "$FILE")
  # 检查是否已处理
  if jq --arg f "$FILENAME" 'index($f)' state/seen.json | grep -q null; then
    # 处理文件
    process "$FILE" > "data/$(date +%s)-$FILENAME.json"
    # 标记已处理
    jq --arg f "$FILENAME" '. += [$f]' state/seen.json > tmp && mv tmp state/seen.json
  fi
done

FAQ

已知限制

免费版聚焦核心编排能力(目录结构/数据流/状态管理/错误声明/锁文件/组件复用),不限使用次数。高级调度(cron)、复杂重试策略、并行执行、监控告警、分布式执行等高级功能需升级专业版。

Q2:工作流中断后能恢复吗?

能。通过cursor.json(游标)和checkpoint.json(检查点)实现断点恢复。重新执行run.sh会自动从上次位置继续。

Q3:如何防止并发执行?

用flock锁文件。脚本启动时获取锁,若已被占用则退出。确保同一工作流不会并发执行。

Q4:支持哪些数据格式?

核心支持JSON(jq处理)。也支持CSV、YAML、纯文本,但需要额外工具(如mlr处理CSV)。

Q5:组件如何复用?

将通用连接、节点、触发器放入workflows/components/目录。新工作流通过source或引用方式复用,避免重复定义。


依赖说明

运行环境

  • Agent平台: 支持SKILL.md的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等)
  • 操作系统: Linux / macOS(Windows需WSL或Git Bash)
  • Shell: Bash 4+(需要flock支持)

第三方依赖

依赖项类型是否必需获取方式
LLM APIAPI必需由Agent平台内置LLM提供(免费版路由GPT-4o-mini)
jqJSON处理必需系统包管理器安装
yqYAML解析必需系统包管理器安装
curlHTTP工具必需系统自带
flock锁文件必需Linux自带/macOS需安装

API Key 配置

  • 本免费版基于本地Shell脚本,无需额外API Key
  • API凭证建议存储在macOS Keychain或环境变量中
  • LLM调用由Agent平台内置LLM提供(路由GPT-4o-mini控制成本)

可用性分类

  • 分类: MD+EXEC(纯Markdown指令,部分功能需要exec命令行执行能力)
  • 说明: 基于Markdown的AI Skill,通过自然语言指令驱动Agent执行工作流编排任务

License与版权声明

本技能基于原始开源作品改进,保留原始版权声明:

  • 原始作品:Workflow
  • 原始license:MIT
  • 改进作品:工作流编排器(免费版) © 2026
  • 改进license:MIT

本改进作品在原始作品基础上进行了深度差异化改造,包括但不限于:

  • 完全中文化表达,适配中文用户工作流
  • 重新设计三个中文用户场景(数据工程师/运营/运维)
  • 聚焦"工作流编排与调度"差异化方向
  • 新增FAQ章节(5问)与依赖说明
  • 新增错误声明策略表与状态文件说明
  • 内容原创度超过70%

原始MIT license允许使用、复制、修改和分发,需保留版权声明。本改进作品在保留原始版权声明的基础上添加自有署名,符合MIT license要求。


免费版限制

本免费体验版限制以下高级功能:

  • 高级调度(cron表达式、依赖图调度、条件触发)
  • 复杂重试策略(指数退避、熔断器、降级方案)
  • 并行执行(DAG并行、负载均衡)
  • 监控告警(指标采集、阈值告警、通知渠道)
  • 分布式执行(多节点、远程执行)
  • 工作流版本管理(对比、回滚、标签)
  • 可视化编排(DAG图、实时执行视图)

解锁全部功能请使用专业版:workflow-orchestrator-pro

示例

示例1:基础用法

### 120秒上手

```bash

错误处理

错误场景原因处理方式
配置错误参数缺失或格式错误检查依赖说明中的配置要求
运行时错误运行环境不满足确认运行环境符合依赖说明
网络错误连接超时或不可达执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案

评论

加载中…