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
21 changed files with 76 additions and 576 deletions
+2 -2
View File
@@ -34,8 +34,8 @@ scout:
- 'rag agent workflow' - 'rag agent workflow'
- 'tool calling workflow' - 'tool calling workflow'
filters: filters:
stars_min: 10 stars_min: 15
pushed_after: 2026-02-01 pushed_after: 2026-05-01
language: Python language: Python
archived: false archived: false
size_max_kb: 10000 size_max_kb: 10000
-12
View File
@@ -52,18 +52,6 @@ def publish_skill(review_result, config):
subprocess.run(["git", "config", "user.email", "hermes@agent.local"], cwd=repo_dir) subprocess.run(["git", "config", "user.email", "hermes@agent.local"], cwd=repo_dir)
subprocess.run(["git", "config", "user.name", "Hermes Pipeline"], cwd=repo_dir) subprocess.run(["git", "config", "user.name", "Hermes Pipeline"], cwd=repo_dir)
# Check for duplicates in skills/ directory
skills_dir = os.path.join(repo_dir, "skills")
existing_skills = []
if os.path.isdir(skills_dir):
existing_skills = [d for d in os.listdir(skills_dir) if os.path.isdir(os.path.join(skills_dir, d))]
if skill_name in existing_skills:
return {
"status": "SKIP",
"reason": f"Skill '{skill_name}' already exists in skills/ directory",
}
# Create skill directory # Create skill directory
skill_dir = os.path.join(repo_dir, "skills", skill_name) skill_dir = os.path.join(repo_dir, "skills", skill_name)
os.makedirs(skill_dir, exist_ok=True) os.makedirs(skill_dir, exist_ok=True)
-2
View File
@@ -137,8 +137,6 @@ def main():
if publish_output.get("status") == "PUBLISHED": if publish_output.get("status") == "PUBLISHED":
print(f" ✓ Published! PR: {publish_output.get('pr_url', '')}") print(f" ✓ Published! PR: {publish_output.get('pr_url', '')}")
results["published"] += 1 results["published"] += 1
elif publish_output.get("status") == "SKIP":
print(f" ⏸ Skipped: {publish_output.get('reason', '')}")
else: else:
print(f" ! {publish_output.get('status', '?')}: {publish_output.get('message', publish_output.get('error', ''))[:100]}") print(f" ! {publish_output.get('status', '?')}: {publish_output.get('message', publish_output.get('error', ''))[:100]}")
-84
View File
@@ -1,84 +0,0 @@
---
name: agent-supervisor
version: 1.0.0
description: Demonstrate a supervisor-worker architecture for intelligent task delegation
and real-time decision-making.
inputs:
- name: OPENAI_API_KEY
description: OpenAI API key for language models.
- name: TAVILY_API_KEY
description: Tavily API key for search functionality.
steps:
- step: 1
action: Load environment variables.
details: Set the OPENAI_API_KEY and TAVILY_API_KEY environment variables.
- step: 2
action: Configure LangChain tools.
details: Initialize TavilySearchResults and PythonREPLTool.
- step: 3
action: Define agent nodes.
details: Create functions for the Researcher and Coder agents that process state
through their respective tasks.
- step: 4
action: Set up supervisor agent.
details: Create a supervisor agent function that decides which worker should act
next based on user input.
- step: 5
action: Build state graph.
details: Construct the state graph with nodes for each agent and edges connecting
them to the supervisor node.
- step: 6
action: Add conditional edges.
details: Define conditions for transitioning between agents based on their responses.
- step: 7
action: Compile graph.
details: Compile the state graph into a runnable workflow.
- step: 8
action: Run example queries.
details: Stream through the workflow with example inputs to demonstrate its functionality.
outputs:
- name: 'Example 1: Code Hello World'
description: A demonstration of coding a simple hello world program.
- name: 'Example 2: Research Report'
description: A demonstration of researching and writing a brief report on pikas.
tags: []
metadata:
source_repo: https://github.com/extrawest/multi_agent_workflow_demo_in_langgraph.git
extracted_at: ''
confidence: 0.9
---
# agent-supervisor
Demonstrate a supervisor-worker architecture for intelligent task delegation and real-time decision-making.
## Steps
1. {'step': 1, 'action': 'Load environment variables.', 'details': 'Set the OPENAI_API_KEY and TAVILY_API_KEY environment variables.'}
2. {'step': 2, 'action': 'Configure LangChain tools.', 'details': 'Initialize TavilySearchResults and PythonREPLTool.'}
3. {'step': 3, 'action': 'Define agent nodes.', 'details': 'Create functions for the Researcher and Coder agents that process state through their respective tasks.'}
4. {'step': 4, 'action': 'Set up supervisor agent.', 'details': 'Create a supervisor agent function that decides which worker should act next based on user input.'}
5. {'step': 5, 'action': 'Build state graph.', 'details': 'Construct the state graph with nodes for each agent and edges connecting them to the supervisor node.'}
6. {'step': 6, 'action': 'Add conditional edges.', 'details': 'Define conditions for transitioning between agents based on their responses.'}
7. {'step': 7, 'action': 'Compile graph.', 'details': 'Compile the state graph into a runnable workflow.'}
8. {'step': 8, 'action': 'Run example queries.', 'details': 'Stream through the workflow with example inputs to demonstrate its functionality.'}
## Inputs
- {'name': 'OPENAI_API_KEY', 'description': 'OpenAI API key for language models.'}
- {'name': 'TAVILY_API_KEY', 'description': 'Tavily API key for search functionality.'}
## Outputs
- {'name': 'Example 1: Code Hello World', 'description': 'A demonstration of coding a simple hello world program.'}
- {'name': 'Example 2: Research Report', 'description': 'A demonstration of researching and writing a brief report on pikas.'}
## Failure Modes
- {'mode': 'Invalid API keys', 'description': 'The workflow may fail if the provided API keys are invalid or expired.'}
- {'mode': 'Insufficient permissions', 'description': 'The workflow may fail if the user does not have sufficient permissions to use the Tavily search functionality.'}
## Source
Extracted from: [https://github.com/extrawest/multi_agent_workflow_demo_in_langgraph.git](https://github.com/extrawest/multi_agent_workflow_demo_in_langgraph.git)
Confidence: 0.9
-6
View File
@@ -1,6 +0,0 @@
# Commands: agent-supervisor
## Available Commands
- `/skill agent-supervisor` — Load this skill
- `/run agent-supervisor` — Execute workflow
-10
View File
@@ -1,10 +0,0 @@
# Examples: agent-supervisor
## Usage Example
```python
# How to use this skill
# Inputs: {'name': 'OPENAI_API_KEY', 'description': 'OpenAI API key for language models.'}, {'name': 'TAVILY_API_KEY', 'description': 'Tavily API key for search functionality.'}
# Process: {'step': 1, 'action': 'Load environment variables.', 'details': 'Set the OPENAI_API_KEY and TAVILY_API_KEY environment variables.'} → {'step': 2, 'action': 'Configure LangChain tools.', 'details': 'Initialize TavilySearchResults and PythonREPLTool.'} → {'step': 3, 'action': 'Define agent nodes.', 'details': 'Create functions for the Researcher and Coder agents that process state through their respective tasks.'}
# Outputs: {'name': 'Example 1: Code Hello World', 'description': 'A demonstration of coding a simple hello world program.'}, {'name': 'Example 2: Research Report', 'description': 'A demonstration of researching and writing a brief report on pikas.'}
```
-81
View File
@@ -1,81 +0,0 @@
{
"name": "agent-supervisor",
"version": "1.0.0",
"goal": "Demonstrate a supervisor-worker architecture for intelligent task delegation and real-time decision-making.",
"inputs": [
{
"name": "OPENAI_API_KEY",
"description": "OpenAI API key for language models."
},
{
"name": "TAVILY_API_KEY",
"description": "Tavily API key for search functionality."
}
],
"steps": [
{
"step": 1,
"action": "Load environment variables.",
"details": "Set the OPENAI_API_KEY and TAVILY_API_KEY environment variables."
},
{
"step": 2,
"action": "Configure LangChain tools.",
"details": "Initialize TavilySearchResults and PythonREPLTool."
},
{
"step": 3,
"action": "Define agent nodes.",
"details": "Create functions for the Researcher and Coder agents that process state through their respective tasks."
},
{
"step": 4,
"action": "Set up supervisor agent.",
"details": "Create a supervisor agent function that decides which worker should act next based on user input."
},
{
"step": 5,
"action": "Build state graph.",
"details": "Construct the state graph with nodes for each agent and edges connecting them to the supervisor node."
},
{
"step": 6,
"action": "Add conditional edges.",
"details": "Define conditions for transitioning between agents based on their responses."
},
{
"step": 7,
"action": "Compile graph.",
"details": "Compile the state graph into a runnable workflow."
},
{
"step": 8,
"action": "Run example queries.",
"details": "Stream through the workflow with example inputs to demonstrate its functionality."
}
],
"outputs": [
{
"name": "Example 1: Code Hello World",
"description": "A demonstration of coding a simple hello world program."
},
{
"name": "Example 2: Research Report",
"description": "A demonstration of researching and writing a brief report on pikas."
}
],
"failure_modes": [
{
"mode": "Invalid API keys",
"description": "The workflow may fail if the provided API keys are invalid or expired."
},
{
"mode": "Insufficient permissions",
"description": "The workflow may fail if the user does not have sufficient permissions to use the Tavily search functionality."
}
],
"confidence": 0.9,
"explanation": "This workflow demonstrates a hierarchical multi-agent system where a supervisor agent makes routing decisions based on user input, delegating tasks to specialized worker agents (Researcher and Coder). It is designed to be reusable for similar task delegation scenarios.",
"source_repo": "https://github.com/extrawest/multi_agent_workflow_demo_in_langgraph.git",
"score": 1.0
}
-9
View File
@@ -1,9 +0,0 @@
# Tests: agent-supervisor
## Test Checklist
- [ ] Workflow has at least 3 steps
- [ ] All inputs are defined
- [ ] All outputs are defined
- [ ] Failure modes are documented
- [ ] Skill can be loaded without errors
-96
View File
@@ -1,96 +0,0 @@
---
name: blacknode-graph-workflow
version: 1.0.0
description: Build and execute node-based AI workflows with LLM agents and processing
nodes
inputs:
- Model configuration (NIM_MODEL, API keys for NVIDIA NIM, OpenAI, Anthropic)
- Node definitions with specified inputs and outputs (Literal, LLMAgent, FileWrite,
etc.)
- Data sources (URLs, text content, or other inputs for the workflow)
steps:
- Initialize a blacknode.Graph instance to create the workflow structure
- Add nodes to the graph with defined inputs and outputs (e.g., Literal, LLMAgent,
FileWrite)
- Define edges connecting nodes to establish data flow between them
- Execute the graph using cook() to run the workflow and generate outputs
outputs:
- Processed results from the final node (e.g., printed text, written files, or generated
data)
- Graph execution status and any errors encountered during execution
tags: []
metadata:
source_repo: https://github.com/temiroff/Blacknode.git
extracted_at: ''
confidence: 0.95
---
# blacknode-graph-workflow
Build and execute node-based AI workflows with LLM agents and processing nodes
## Setup
**Dependencies:**
```text
pip install blacknode (core package) anthropic>=0.25 openai>=1.0 petgraph (for graph operations)
```
**Setup steps:**
1. Install blacknode package: pip install blacknode
1. Configure model API keys (NIM_API_KEY, OPENAI_API_KEY, etc.) in .env or editor
1. Create a Graph instance and add nodes with inputs/outputs
1. Define node connections in g._edges list
1. Execute with g.cook() to run the workflow and capture results
## Key Files
- `blacknode/blacknode.py (Graph class implementation)`
- `examples/hello_agent.py (simple LLM agent workflow)`
- `examples/converted_nvidia_nim.py (NIM model workflow)`
## Steps
1. Initialize a blacknode.Graph instance to create the workflow structure
2. Add nodes to the graph with defined inputs and outputs (e.g., Literal, LLMAgent, FileWrite)
3. Define edges connecting nodes to establish data flow between them
4. Execute the graph using cook() to run the workflow and generate outputs
## Implementation Details
```python
g = bn.Graph()
```
```python
g._edges = [{'from': 'model', 'from_port': 'value', 'to': 'agent', 'to_port': 'model'}]
```
```python
result = g.cook(output_node, 'value')
```
## Inputs
- Model configuration (NIM_MODEL, API keys for NVIDIA NIM, OpenAI, Anthropic)
- Node definitions with specified inputs and outputs (Literal, LLMAgent, FileWrite, etc.)
- Data sources (URLs, text content, or other inputs for the workflow)
## Outputs
- Processed results from the final node (e.g., printed text, written files, or generated data)
- Graph execution status and any errors encountered during execution
## Failure Modes
- Missing or invalid model API key causing graph initialization failure
- Incorrect node connections or missing edge definitions leading to runtime errors
- Model not found or unavailable in the specified environment causing execution failure
- Graph edges not properly defined or mismatched causing cook() to fail
## Source
Extracted from: [https://github.com/temiroff/Blacknode.git](https://github.com/temiroff/Blacknode.git)
Confidence: 0.95
@@ -1,6 +0,0 @@
# Commands: blacknode-graph-workflow
## Available Commands
- `/skill blacknode-graph-workflow` — Load this skill
- `/run blacknode-graph-workflow` — Execute workflow
@@ -1,10 +0,0 @@
# Examples: blacknode-graph-workflow
## Usage Example
```python
# How to use this skill
# Inputs: Model configuration (NIM_MODEL, API keys for NVIDIA NIM, OpenAI, Anthropic), Node definitions with specified inputs and outputs (Literal, LLMAgent, FileWrite, etc.), Data sources (URLs, text content, or other inputs for the workflow)
# Process: Initialize a blacknode.Graph instance to create the workflow structure → Add nodes to the graph with defined inputs and outputs (e.g., Literal, LLMAgent, FileWrite) → Define edges connecting nodes to establish data flow between them
# Outputs: Processed results from the final node (e.g., printed text, written files, or generated data), Graph execution status and any errors encountered during execution
```
@@ -1,30 +0,0 @@
{
"name": "blacknode-graph-workflow",
"version": "1.0.0",
"goal": "Build and execute node-based AI workflows with LLM agents and processing nodes",
"inputs": [
"Model configuration (NIM_MODEL, API keys for NVIDIA NIM, OpenAI, Anthropic)",
"Node definitions with specified inputs and outputs (Literal, LLMAgent, FileWrite, etc.)",
"Data sources (URLs, text content, or other inputs for the workflow)"
],
"steps": [
"Initialize a blacknode.Graph instance to create the workflow structure",
"Add nodes to the graph with defined inputs and outputs (e.g., Literal, LLMAgent, FileWrite)",
"Define edges connecting nodes to establish data flow between them",
"Execute the graph using cook() to run the workflow and generate outputs"
],
"outputs": [
"Processed results from the final node (e.g., printed text, written files, or generated data)",
"Graph execution status and any errors encountered during execution"
],
"failure_modes": [
"Missing or invalid model API key causing graph initialization failure",
"Incorrect node connections or missing edge definitions leading to runtime errors",
"Model not found or unavailable in the specified environment causing execution failure",
"Graph edges not properly defined or mismatched causing cook() to fail"
],
"confidence": 0.95,
"explanation": "Blacknode provides a standardized Graph-based workflow pattern where users create node graphs using the blacknode.Graph class. This pattern is reusable across projects as it follows a consistent structure: initialize a graph, add nodes with defined inputs/outputs, connect them with edges, and execute with cook(). The examples demonstrate this pattern with LLM agents and text processing pipelines, making it adaptable to various robotics and AI workflows.",
"source_repo": "https://github.com/temiroff/Blacknode.git",
"score": 1.0
}
-9
View File
@@ -1,9 +0,0 @@
# Tests: blacknode-graph-workflow
## Test Checklist
- [ ] Workflow has at least 3 steps
- [ ] All inputs are defined
- [ ] All outputs are defined
- [ ] Failure modes are documented
- [ ] Skill can be loaded without errors
@@ -1,83 +0,0 @@
---
name: langgraph-workflow-creation
version: 1.0.0
description: Create a LangGraph workflow to gather facts using SerperDevTool and process
them with an AI agent.
inputs:
- API Key for SerperDevTool
- Search Query
steps:
- 'Step 1: Import necessary modules from langgraph and langchain libraries'
- 'Step 2: Create a LangGraph agent using `langgraph.create_react_agent` function
with SerperDevTool as the tool node'
- 'Step 3: Define the search query and pass it to the agent for fact gathering'
- 'Step 4: Process the gathered facts within the AI agent'
outputs:
- Processed Facts
tags: []
metadata:
source_repo: https://github.com/jkmaina/LangGraphProjects.git
extracted_at: ''
confidence: 0.95
---
# langgraph-workflow-creation
Create a LangGraph workflow to gather facts using SerperDevTool and process them with an AI agent.
## Setup
**Dependencies:**
```text
pip install langchain serperdev
```
**Setup steps:**
1. Install required libraries: pip install langchain serperdev
1. Add API key to .env file: OPENAPI_API_KEY=your_api_key
## Key Files
- `agent.py - Contains the LangGraph agent creation logic`
- `tool_node.py - Defines the SerperDevTool node`
## Steps
1. Step 1: Import necessary modules from langgraph and langchain libraries
2. Step 2: Create a LangGraph agent using `langgraph.create_react_agent` function with SerperDevTool as the tool node
3. Step 3: Define the search query and pass it to the agent for fact gathering
4. Step 4: Process the gathered facts within the AI agent
## Implementation Details
```python
import langgraph
from serperdev import SerperDevTool
def create_agent(api_key, query):
tool = SerperDevTool(api_key)
agent = langgraph.create_react_agent(tool=tool)
facts = agent.run(query)
return process_facts(facts)
```
## Inputs
- API Key for SerperDevTool
- Search Query
## Outputs
- Processed Facts
## Failure Modes
- API Key not provided
- Invalid Search Query
## Source
Extracted from: [https://github.com/jkmaina/LangGraphProjects.git](https://github.com/jkmaina/LangGraphProjects.git)
Confidence: 0.95
@@ -1,6 +0,0 @@
# Commands: langgraph-workflow-creation
## Available Commands
- `/skill langgraph-workflow-creation` — Load this skill
- `/run langgraph-workflow-creation` — Execute workflow
@@ -1,10 +0,0 @@
# Examples: langgraph-workflow-creation
## Usage Example
```python
# How to use this skill
# Inputs: API Key for SerperDevTool, Search Query
# Process: Step 1: Import necessary modules from langgraph and langchain libraries → Step 2: Create a LangGraph agent using `langgraph.create_react_agent` function with SerperDevTool as the tool node → Step 3: Define the search query and pass it to the agent for fact gathering
# Outputs: Processed Facts
```
@@ -1,26 +0,0 @@
{
"name": "langgraph-workflow-creation",
"version": "1.0.0",
"goal": "Create a LangGraph workflow to gather facts using SerperDevTool and process them with an AI agent.",
"inputs": [
"API Key for SerperDevTool",
"Search Query"
],
"steps": [
"Step 1: Import necessary modules from langgraph and langchain libraries",
"Step 2: Create a LangGraph agent using `langgraph.create_react_agent` function with SerperDevTool as the tool node",
"Step 3: Define the search query and pass it to the agent for fact gathering",
"Step 4: Process the gathered facts within the AI agent"
],
"outputs": [
"Processed Facts"
],
"failure_modes": [
"API Key not provided",
"Invalid Search Query"
],
"confidence": 0.95,
"explanation": "This workflow is specific to fact gathering and can be adapted for different search queries or tools.",
"source_repo": "https://github.com/jkmaina/LangGraphProjects.git",
"score": 1.0
}
@@ -1,9 +0,0 @@
# Tests: langgraph-workflow-creation
## Test Checklist
- [ ] Workflow has at least 3 steps
- [ ] All inputs are defined
- [ ] All outputs are defined
- [ ] Failure modes are documented
- [ ] Skill can be loaded without errors
+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
} }