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
6 changed files with 89 additions and 99 deletions
@@ -9,10 +9,10 @@ steps:
- 'Step 1: Researcher agent (agent.py) uses LangGraph create_react_agent with BedrockModel - 'Step 1: Researcher agent (agent.py) uses LangGraph create_react_agent with BedrockModel
to gather raw facts about the destination.' to gather raw facts about the destination.'
- 'Step 2: Travel Guide Generator agent (agent.py) synthesizes the gathered data into - 'Step 2: Travel Guide Generator agent (agent.py) synthesizes the gathered data into
a structured travel guide based on the user''s request and the raw information provided a structured travel guide based on the user''s request and raw information provided
by the researcher.' by the researcher.'
- 'Step 3: Writer agent (agent.py) formats the final response, including the structured - 'Step 3: Writer agent (agent.py) formats the final response, including the structured
travel guide content and prominently featuring the ''Suggested Web Pages'' section.' guide content and prominently features the ''Suggested Web Pages'' section.'
outputs: outputs:
- Structured travel guide with key sections - Structured travel guide with key sections
- Final client response - Final client response
@@ -32,23 +32,24 @@ Gather and process information from multiple agents to generate a comprehensive
**Dependencies:** **Dependencies:**
```text ```text
pip install python langchain strands pip install python3 fastapi uvicorn strands bedrock-model
``` ```
**Setup steps:** **Setup steps:**
1. Install required dependencies using pip and ensure the BedrockModel is properly configured. 1. Install required dependencies using pip
1. Set up environment variables for API keys and model IDs
## Key Files ## Key Files
- `agents/aws_strands/05-agent-strands-multiagent-workflow-sequential/agent.py - Contains the sequential workflow logic for gathering and processing information.` - `agents/aws_strands/05-agent-strands-multiagent-workflow-sequential/agent.py - Contains the multi-agent workflow logic.`
- `agents/aws_strands/05-agent-strands-multiagent-workflow-sequential/app.py - Provides a FastAPI endpoint to interact with the multi-agent system.` - `agents/aws_strands/05-agent-strands-multiagent-workflow-sequential/app.py - FastAPI app to handle user queries.`
## Steps ## Steps
1. Step 1: Researcher agent (agent.py) uses LangGraph create_react_agent with BedrockModel to gather raw facts about the destination. 1. Step 1: Researcher agent (agent.py) uses LangGraph create_react_agent with BedrockModel to gather raw facts about the destination.
2. Step 2: Travel Guide Generator agent (agent.py) synthesizes the gathered data into a structured travel guide based on the user's request and the raw information provided by the researcher. 2. Step 2: Travel Guide Generator agent (agent.py) synthesizes the gathered data into a structured travel guide based on the user's request and raw information provided by the researcher.
3. Step 3: Writer agent (agent.py) formats the final response, including the structured travel guide content and prominently featuring the 'Suggested Web Pages' section. 3. Step 3: Writer agent (agent.py) formats the final response, including the structured guide content and prominently features the 'Suggested Web Pages' section.
## Implementation Details ## Implementation Details
@@ -75,7 +76,7 @@ final_response = writer_agent(writer_prompt, stream=False)
## Failure Modes ## Failure Modes
- Specific failure scenario with mitigation: If any of the agents fail to process their tasks (e.g., network issues, model errors), the workflow will fail. Mitigation involves robust error handling and fallback mechanisms. - Network issues during API calls could lead to incomplete data collection or processing failures
## Source ## Source
@@ -5,6 +5,6 @@
```python ```python
# How to use this skill # How to use this skill
# Inputs: User query with location # Inputs: User query with location
# Process: Step 1: Researcher agent (agent.py) uses LangGraph create_react_agent with BedrockModel to gather raw facts about the destination. → Step 2: Travel Guide Generator agent (agent.py) synthesizes the gathered data into a structured travel guide based on the user's request and the raw information provided by the researcher. → Step 3: Writer agent (agent.py) formats the final response, including the structured travel guide content and prominently featuring the 'Suggested Web Pages' section. # Process: Step 1: Researcher agent (agent.py) uses LangGraph create_react_agent with BedrockModel to gather raw facts about the destination. → Step 2: Travel Guide Generator agent (agent.py) synthesizes the gathered data into a structured travel guide based on the user's request and raw information provided by the researcher. → Step 3: Writer agent (agent.py) formats the final response, including the structured guide content and prominently features the 'Suggested Web Pages' section.
# Outputs: Structured travel guide with key sections, Final client response # Outputs: Structured travel guide with key sections, Final client response
``` ```
@@ -7,18 +7,18 @@
], ],
"steps": [ "steps": [
"Step 1: Researcher agent (agent.py) uses LangGraph create_react_agent with BedrockModel to gather raw facts about the destination.", "Step 1: Researcher agent (agent.py) uses LangGraph create_react_agent with BedrockModel to gather raw facts about the destination.",
"Step 2: Travel Guide Generator agent (agent.py) synthesizes the gathered data into a structured travel guide based on the user's request and the raw information provided by the researcher.", "Step 2: Travel Guide Generator agent (agent.py) synthesizes the gathered data into a structured travel guide based on the user's request and raw information provided by the researcher.",
"Step 3: Writer agent (agent.py) formats the final response, including the structured travel guide content and prominently featuring the 'Suggested Web Pages' section." "Step 3: Writer agent (agent.py) formats the final response, including the structured guide content and prominently features the 'Suggested Web Pages' section."
], ],
"outputs": [ "outputs": [
"Structured travel guide with key sections", "Structured travel guide with key sections",
"Final client response" "Final client response"
], ],
"failure_modes": [ "failure_modes": [
"Specific failure scenario with mitigation: If any of the agents fail to process their tasks (e.g., network issues, model errors), the workflow will fail. Mitigation involves robust error handling and fallback mechanisms." "Network issues during API calls could lead to incomplete data collection or processing failures"
], ],
"confidence": 0.95, "confidence": 0.95,
"explanation": "This workflow is specific to generating travel guides but can be adapted for other types of structured content creation.", "explanation": "This workflow is specific but can be adapted for other types of guides or information gathering tasks.",
"source_repo": "https://github.com/omerbsezer/Fast-LLM-Agent-MCP.git", "source_repo": "https://github.com/omerbsezer/Fast-LLM-Agent-MCP.git",
"score": 1.0 "score": 1.0
} }
+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
} }