一键导入
workflow-chain
Chain multiple skills and actions into named workflows with error handling and conditional branching.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Chain multiple skills and actions into named workflows with error handling and conditional branching.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Create and edit PowerPoint (.pptx) presentations programmatically. Requires python-pptx.
Create and edit Excel (.xlsx) workbooks with openpyxl. Supports formulas, charts, formatting, and data analysis.
Generate images via DALL-E, Stable Diffusion, or free alternatives. Supports multi-channel delivery.
Generate meme images with text overlays using Pillow. Pick templates or create custom image macros.
Execute Python code snippets in a sandboxed environment. Supports data analysis, visualization, and quick scripts.
GitHub CLI for issues, PRs, code search, CI logs, releases, and API queries. Requires gh CLI and auth.
| name | workflow-chain |
| description | Chain multiple skills and actions into named workflows with error handling and conditional branching. |
| version | 1.0.0 |
| metadata | {"echo":{"tags":["Workflow","Automation","Chain","Pipeline","Orchestration"]}} |
Orchestrate multi-step workflows by chaining skills and actions.
Workflows are YAML files in ~/.echo-agent/workflows/:
name: morning-routine
trigger: cron "0 8 * * *"
steps:
- id: get_weather
skill: weather
input: {location: "Beijing"}
- id: get_todos
skill: reminder
action: due
- id: compose
skill: daily-briefing
input:
weather: "{{get_weather.output}}"
todos: "{{get_todos.output}}"
- id: deliver
action: send
channel: telegram
content: "{{compose.output}}"
Only run trusted workflow files. The engine executes commands from the JSON
workflow definition via shell=True. Never run workflow files from untrusted
sources (downloads, user uploads, model-generated content) without manual review.
Treat workflow JSON files with the same caution as shell scripts.
{{step_id.output}} references previous step resultswhen: "{{get_weather.temp}} < 5"on_error: skip | abort | retry(3)parallel: [step_a, step_b]name: research-pipeline
steps:
- {id: search, skill: web-search, input: {query: "{{topic}}"}}
- {id: extract, skill: web-extract, input: {urls: "{{search.top_urls}}"}}
- {id: report, skill: deep-research, input: {content: "{{extract.output}}"}}
name: morning-routine
trigger: cron "0 8 * * *"
steps:
- {id: weather, skill: weather, input: {location: "Beijing"}}
- {id: briefing, skill: daily-briefing}
- {id: send, action: send, channel: auto, content: "{{briefing.output}}"}
python3 scripts/workflow_engine.py run workflow.json # run a workflow from JSON file
python3 scripts/workflow_engine.py inline "echo hello" "echo done" # chain commands inline
python3 scripts/workflow_engine.py template --output my-workflow.json # generate a template
Workflow JSON format:
{
"name": "my-workflow",
"stages": [
{"name": "build", "mode": "sequential", "steps": [{"command": "echo build"}]},
{"name": "test", "mode": "parallel", "steps": [{"command": "echo t1"}, {"command": "echo t2"}]}
]
}
| Type | Example |
|---|---|
| Cron | cron "0 8 * * *" |
| Keyword | keyword "生成报告" |
| Manual | manual |
| Event | event "new_message" |