Compare commits

...

1 Commits

Author SHA1 Message Date
Hermes Pipeline 8a052b328d Add Skill: unifai-workflow-execution
Extracted from: https://github.com/redhat-community-ai-tools/UnifAI.git
Score: 1.0
2026-08-05 15:45:08 +00:00
3 changed files with 74 additions and 85 deletions
+32 -66
View File
@@ -1,96 +1,62 @@
--- ---
name: unifai-workflow-execution name: unifai-workflow-execution
version: 1.0.0 version: 1.0.0
description: Execute a multi-agent workflow on the UnifAI platform using a specified description: Execute a multi-agent AI workflow defined in YAML or through the UI's
blueprint and user prompt. drag-and-drop editor.
inputs: inputs:
- blueprint_id or blueprint_name - name: blueprint_path
- user_shortcut description: Path to the blueprint file (YAML) defining the multi-agent workflow.
- user_question - name: execution_mode
description: 'Execution mode: ''local'' or ''distributed''.'
steps: steps:
- 'Step 1: Resolve the blueprint ID from either direct ID or name lookup (resolve_blueprint_id - step_name: Load Blueprint
method)' description: Parse and validate the blueprint file to ensure it conforms to expected
- 'Step 2: Create a new session from the blueprint (create_session method)' structure.
- 'Step 3: Submit the session for background execution with the user prompt (submit_session - step_name: Initialize Execution Engine
method)' description: Set up the execution engine based on the selected mode ('local' or
- 'Step 4: Poll session status until execution completes (poll_session_status method)' 'distributed').
- step_name: Execute Workflow
description: Run the multi-agent workflow, streaming node-by-node output as NDJSON
over HTTP.
- step_name: Stream Results
description: Render and stream results in real time to clients subscribing to the
event stream.
outputs: outputs:
- session_id - name: execution_results
- workflow_id description: The output of the executed workflow, streamed as NDJSON over HTTP.
tags: [] tags: []
metadata: metadata:
source_repo: https://github.com/redhat-community-ai-tools/UnifAI.git source_repo: https://github.com/redhat-community-ai-tools/UnifAI.git
extracted_at: '' extracted_at: ''
confidence: 0.95 confidence: 0.9
--- ---
# unifai-workflow-execution # unifai-workflow-execution
Execute a multi-agent workflow on the UnifAI platform using a specified blueprint and user prompt. Execute a multi-agent AI workflow defined in YAML or through the UI's drag-and-drop editor.
## Setup
**Dependencies:**
```text
pip install requests urllib3
```
**Setup steps:**
1. Install required dependencies using pip install requests urllib3
1. Ensure the environment variables are set correctly (BLUEPRINT_ID, BLUEPRINT_NAME, USER_SHORTCUT, POLLING_INTERVAL, UNIFAI_BASE_URL)
## Key Files
- `scripts/execution_workflow.py - Main script for workflow execution`
## Steps ## Steps
1. Step 1: Resolve the blueprint ID from either direct ID or name lookup (resolve_blueprint_id method) 1. {'step_name': 'Load Blueprint', 'description': 'Parse and validate the blueprint file to ensure it conforms to expected structure.'}
2. Step 2: Create a new session from the blueprint (create_session method) 2. {'step_name': 'Initialize Execution Engine', 'description': "Set up the execution engine based on the selected mode ('local' or 'distributed')."}
3. Step 3: Submit the session for background execution with the user prompt (submit_session method) 3. {'step_name': 'Execute Workflow', 'description': 'Run the multi-agent workflow, streaming node-by-node output as NDJSON over HTTP.'}
4. Step 4: Poll session status until execution completes (poll_session_status method) 4. {'step_name': 'Stream Results', 'description': 'Render and stream results in real time to clients subscribing to the event stream.'}
## Implementation Details
```python
resolve_blueprint_id(client: UnifAIClient) -> str
{...}
# Resolve the blueprint ID from either direct ID or name lookup.
```
```python
create_session(client: UnifAIClient, blueprint_id: str) -> str
{...}
# Create a new session from the blueprint.
```
```python
submit_session(client: UnifAIClient, session_id: str) -> dict
{...}
# Submit the session for background execution with the user prompt.
```
## Inputs ## Inputs
- blueprint_id or blueprint_name - {'name': 'blueprint_path', 'description': 'Path to the blueprint file (YAML) defining the multi-agent workflow.'}
- user_shortcut - {'name': 'execution_mode', 'description': "Execution mode: 'local' or 'distributed'."}
- user_question
## Outputs ## Outputs
- session_id - {'name': 'execution_results', 'description': 'The output of the executed workflow, streamed as NDJSON over HTTP.'}
- workflow_id
## Failure Modes ## Failure Modes
- Blueprint name not found or not unique - error during blueprint resolution - {'mode_name': 'Invalid Blueprint', 'description': 'Blueprint file is not valid YAML or does not conform to expected structure.'}
- Session creation fails - error from API response - {'mode_name': 'Execution Engine Initialization Failure', 'description': 'Failed to initialize the execution engine due to configuration issues or missing dependencies.'}
- Session submission fails - error from API response
- Polling session status fails - error from API response
## Source ## Source
Extracted from: [https://github.com/redhat-community-ai-tools/UnifAI.git](https://github.com/redhat-community-ai-tools/UnifAI.git) Extracted from: [https://github.com/redhat-community-ai-tools/UnifAI.git](https://github.com/redhat-community-ai-tools/UnifAI.git)
Confidence: 0.95 Confidence: 0.9
+3 -3
View File
@@ -4,7 +4,7 @@
```python ```python
# How to use this skill # How to use this skill
# Inputs: blueprint_id or blueprint_name, user_shortcut, user_question # Inputs: {'name': 'blueprint_path', 'description': 'Path to the blueprint file (YAML) defining the multi-agent workflow.'}, {'name': 'execution_mode', 'description': "Execution mode: 'local' or 'distributed'."}
# Process: Step 1: Resolve the blueprint ID from either direct ID or name lookup (resolve_blueprint_id method) → Step 2: Create a new session from the blueprint (create_session method) → Step 3: Submit the session for background execution with the user prompt (submit_session method) # Process: {'step_name': 'Load Blueprint', 'description': 'Parse and validate the blueprint file to ensure it conforms to expected structure.'} → {'step_name': 'Initialize Execution Engine', 'description': "Set up the execution engine based on the selected mode ('local' or 'distributed')."} → {'step_name': 'Execute Workflow', 'description': 'Run the multi-agent workflow, streaming node-by-node output as NDJSON over HTTP.'}
# Outputs: session_id, workflow_id # Outputs: {'name': 'execution_results', 'description': 'The output of the executed workflow, streamed as NDJSON over HTTP.'}
``` ```
+39 -16
View File
@@ -1,30 +1,53 @@
{ {
"name": "unifai-workflow-execution", "name": "unifai-workflow-execution",
"version": "1.0.0", "version": "1.0.0",
"goal": "Execute a multi-agent workflow on the UnifAI platform using a specified blueprint and user prompt.", "goal": "Execute a multi-agent AI workflow defined in YAML or through the UI's drag-and-drop editor.",
"inputs": [ "inputs": [
"blueprint_id or blueprint_name", {
"user_shortcut", "name": "blueprint_path",
"user_question" "description": "Path to the blueprint file (YAML) defining the multi-agent workflow."
},
{
"name": "execution_mode",
"description": "Execution mode: 'local' or 'distributed'."
}
], ],
"steps": [ "steps": [
"Step 1: Resolve the blueprint ID from either direct ID or name lookup (resolve_blueprint_id method)", {
"Step 2: Create a new session from the blueprint (create_session method)", "step_name": "Load Blueprint",
"Step 3: Submit the session for background execution with the user prompt (submit_session method)", "description": "Parse and validate the blueprint file to ensure it conforms to expected structure."
"Step 4: Poll session status until execution completes (poll_session_status method)" },
{
"step_name": "Initialize Execution Engine",
"description": "Set up the execution engine based on the selected mode ('local' or 'distributed')."
},
{
"step_name": "Execute Workflow",
"description": "Run the multi-agent workflow, streaming node-by-node output as NDJSON over HTTP."
},
{
"step_name": "Stream Results",
"description": "Render and stream results in real time to clients subscribing to the event stream."
}
], ],
"outputs": [ "outputs": [
"session_id", {
"workflow_id" "name": "execution_results",
"description": "The output of the executed workflow, streamed as NDJSON over HTTP."
}
], ],
"failure_modes": [ "failure_modes": [
"Blueprint name not found or not unique - error during blueprint resolution", {
"Session creation fails - error from API response", "mode_name": "Invalid Blueprint",
"Session submission fails - error from API response", "description": "Blueprint file is not valid YAML or does not conform to expected structure."
"Polling session status fails - error from API response" },
{
"mode_name": "Execution Engine Initialization Failure",
"description": "Failed to initialize the execution engine due to configuration issues or missing dependencies."
}
], ],
"confidence": 0.95, "confidence": 0.9,
"explanation": "This workflow is specific to the UnifAI platform and its multi-agent system, but can be adapted for similar systems with a similar architecture.", "explanation": "This workflow is designed to execute multi-agent AI workflows defined in YAML blueprints or through the UI's drag-and-drop editor, providing real-time streaming of results.",
"source_repo": "https://github.com/redhat-community-ai-tools/UnifAI.git", "source_repo": "https://github.com/redhat-community-ai-tools/UnifAI.git",
"score": 1.0 "score": 1.0
} }