详细分析 ▾
- The SKILL.md says you can use {env.VAR_NAME}, but the code blocks env substitution — so environment values will not be injected as documented. (
- The script blocks many shell metacharacters (including '{','}','$', '|', ';', etc.), yet examples and templates include JSON blobs and other characters that will likely cause the orchestrator to 'BLOCK' those steps. (
- The orchestrator executes arbitrary local commands and other skill scripts under your user account — review any workflows and the target scripts (~/.openclaw/skills/...) for sensitive file reads or network calls before running. Recommended precautions: run with --dry-run first, inspect and test workflows and templates locally, verify PyYAML behavior if you use YAML workflows, and only point workflows at trusted skill scripts. If you need environment-variable substitution or JSON payloads in commands, either modify the orchestrator to safely support them or avoid using this skill until those mismatches are fixed.
运行时依赖
版本
- Initial release of version 1.1.0. - Updated core logic in scripts/orchestrator.py.
安装命令 点击复制
技能文档
Chain skills into automated pipelines. Define a sequence of steps, and the orchestrator runs them in order with conditional logic, error handling, and optional audit logging.
Why This Exists
Agents run multiple skills but manually. Scan a skill, diff against the previous version, deploy if safe, log the result. That's 4 steps, 4 commands, and one missed step means a gap in your process. Workflows automate the sequence and ensure nothing gets skipped.
Commands
Run a workflow from a YAML file
python3 {baseDir}/scripts/orchestrator.py run --workflow workflow.yaml
Run a workflow from JSON
python3 {baseDir}/scripts/orchestrator.py run --workflow workflow.json
Dry run (show steps without executing)
python3 {baseDir}/scripts/orchestrator.py run --workflow workflow.yaml --dry-run
List available workflow templates
python3 {baseDir}/scripts/orchestrator.py templates
Validate a workflow file
python3 {baseDir}/scripts/orchestrator.py validate --workflow workflow.yaml
Workflow Format (YAML)
name: secure-deploy
description: Scan, diff, deploy, and audit a skill update
steps:
- name: scan
command: python3 ~/.openclaw/skills/skill-scanner/scripts/scanner.py scan --path {skill_path} --json
on_fail: abort
save_output: scan_result - name: diff
command: python3 ~/.openclaw/skills/skill-differ/scripts/differ.py diff {skill_path} {previous_path}
on_fail: warn
- name: deploy
command: python3 ~/.openclaw/skills/skill-gitops/scripts/gitops.py deploy {skill_path}
condition: scan_result.verdict != "CRITICAL"
on_fail: rollback
- name: audit
command: python3 ~/.openclaw/skills/compliance-audit/scripts/audit.py log --action "skill_deployed" --details '{"skill": "{skill_name}", "scan": "{scan_result.verdict}"}'
on_fail: warn
Step Options
- name — Human-readable step name
- command — Shell command to execute (supports variable substitution)
- on_fail — What to do if the step fails:
abort(stop workflow),warn(log and continue),rollback(undo previous steps),retry(retry up to 3 times) - condition — Optional condition to check before running (references saved outputs)
- save_output — Save stdout to a named variable for use in later steps
- timeout — Max seconds to wait (default: 60)
Variable Substitution
Use {variable_name} in commands to reference:
- Workflow-level variables defined in the
varssection - Saved outputs from previous steps
- Environment variables with
{env.VAR_NAME}
Built-in Templates
The orchestrator ships with these workflow templates:
- secure-deploy — Scan → Diff → Deploy → Audit
- daily-scan — Scan all installed skills, report findings
- pre-install — Scan → Typosquat check → Install → Audit
Example: Secure Deploy Pipeline
name: secure-deploy
vars:
skill_path: ~/.openclaw/skills/my-skill
skill_name: my-skill
steps:
- name: security-scan
command: python3 ~/.openclaw/skills/skill-scanner/scripts/scanner.py scan --path {skill_path} --json
save_output: scan
on_fail: abort
- name: deploy
command: echo "Deploying {skill_name}..."
condition: "CRITICAL not in scan"
on_fail: abort
- name: log
command: python3 ~/.openclaw/skills/compliance-audit/scripts/audit.py log --action workflow_complete --details '{"workflow": "secure-deploy", "skill": "{skill_name}"}'
Tips
- Start with
--dry-runto verify your workflow before executing - Use
on_fail: abortfor security-critical steps - Chain with the compliance audit skill for full traceability
- Keep workflows in version control for reproducibility
免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制