workflow-chain

star 459

Chain multiple skills and actions into named workflows with error handling and conditional branching.

fuyuxiang By fuyuxiang schedule Updated 6/13/2026

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]


Workflow Chain

Orchestrate multi-step workflows by chaining skills and actions.

Workflow Definition

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}}"

Security

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.

Features

  • Variable interpolation: {{step_id.output}} references previous step results
  • Conditional steps: when: "{{get_weather.temp}} < 5"
  • Error handling: on_error: skip | abort | retry(3)
  • Parallel steps: parallel: [step_a, step_b]

Built-in Templates

Research Pipeline

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}}"}}

Morning Routine

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}}"}

Script

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"}]}
  ]
}

Triggers

Type Example
Cron cron "0 8 * * *"
Keyword keyword "生成报告"
Manual manual
Event event "new_message"
Install via CLI
npx skills add https://github.com/fuyuxiang/echo-agent --skill workflow-chain
Repository Details
star Stars 459
call_split Forks 18
navigation Branch main
article Path SKILL.md
More from Creator