Add Skill: multi-agent-workflow-execution #29
@@ -0,0 +1,113 @@
|
|||||||
|
---
|
||||||
|
name: multi-agent-workflow-execution
|
||||||
|
version: 1.0.0
|
||||||
|
description: Execute multi-agent AI workflows defined in YAML blueprints by creating
|
||||||
|
sessions, submitting user prompts, and polling for completion until final answers
|
||||||
|
are returned.
|
||||||
|
inputs:
|
||||||
|
- Blueprint ID or name (to identify the workflow to execute)
|
||||||
|
- User shortcut (authentication identifier for the user)
|
||||||
|
- User question or prompt (input to the workflow)
|
||||||
|
- Base URL of the UnifAI API (endpoint for session management)
|
||||||
|
- Polling interval (seconds between status checks during execution)
|
||||||
|
steps:
|
||||||
|
- Resolve the blueprint ID from either direct ID or name lookup via the API, handling
|
||||||
|
cases where the blueprint is not found or not unique
|
||||||
|
- Create a new session from the resolved blueprint using the session creation endpoint
|
||||||
|
- Submit the session with the user's prompt to start the multi-agent workflow execution
|
||||||
|
- Poll the session status at regular intervals until the session completes, fails,
|
||||||
|
or is cancelled
|
||||||
|
- Retrieve and return the final answer from the completed workflow
|
||||||
|
outputs:
|
||||||
|
- Final workflow result or answer (text or structured data)
|
||||||
|
- Session status (completed, failed, or cancelled)
|
||||||
|
- Error details if the workflow execution fails or times out
|
||||||
|
tags: []
|
||||||
|
metadata:
|
||||||
|
source_repo: https://github.com/redhat-community-ai-tools/UnifAI.git
|
||||||
|
extracted_at: ''
|
||||||
|
confidence: 0.95
|
||||||
|
---
|
||||||
|
|
||||||
|
# multi-agent-workflow-execution
|
||||||
|
|
||||||
|
Execute multi-agent AI workflows defined in YAML blueprints by creating sessions, submitting user prompts, and polling for completion until final answers are returned.
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
**Dependencies:**
|
||||||
|
|
||||||
|
```text
|
||||||
|
pip install requests urllib3 python-langgraph temporalio
|
||||||
|
```
|
||||||
|
|
||||||
|
**Setup steps:**
|
||||||
|
|
||||||
|
1. Install Python 3.11+ and required packages (requests, langgraph, temporalio)
|
||||||
|
1. Configure API base URL and user credentials in environment variables or config
|
||||||
|
1. Define or select a blueprint from the available workflows in the system
|
||||||
|
1. Run the execution_workflow.py script with blueprint ID/name and user prompt
|
||||||
|
|
||||||
|
## Key Files
|
||||||
|
|
||||||
|
- `scripts/execution_workflow.py - Main workflow execution script`
|
||||||
|
- `multi-agent/lib/mas/engine/ - LangGraph-based orchestration modules`
|
||||||
|
- `multi-agent/lib/mas/elements/ - Node definitions (custom_agent_node, merger_node, etc.)`
|
||||||
|
- `multi-agent/lib/mas/blueprints/ - Blueprint resolution and validation logic`
|
||||||
|
|
||||||
|
## Steps
|
||||||
|
|
||||||
|
1. Resolve the blueprint ID from either direct ID or name lookup via the API, handling cases where the blueprint is not found or not unique
|
||||||
|
2. Create a new session from the resolved blueprint using the session creation endpoint
|
||||||
|
3. Submit the session with the user's prompt to start the multi-agent workflow execution
|
||||||
|
4. Poll the session status at regular intervals until the session completes, fails, or is cancelled
|
||||||
|
5. Retrieve and return the final answer from the completed workflow
|
||||||
|
|
||||||
|
## Implementation Details
|
||||||
|
|
||||||
|
```python
|
||||||
|
resolve_blueprint_id() - Resolves blueprint by ID or name lookup with error handling
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
create_session() - Creates a new session from a blueprint via POST /user.session.create
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
submit_session() - Submits user prompt to start workflow via POST /user.session.submit
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
poll_session_status() - Polls session.stream.status at configurable intervals
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
get_final_answer() - Retrieves final output via GET /session.chat.get
|
||||||
|
```
|
||||||
|
|
||||||
|
## Inputs
|
||||||
|
|
||||||
|
- Blueprint ID or name (to identify the workflow to execute)
|
||||||
|
- User shortcut (authentication identifier for the user)
|
||||||
|
- User question or prompt (input to the workflow)
|
||||||
|
- Base URL of the UnifAI API (endpoint for session management)
|
||||||
|
- Polling interval (seconds between status checks during execution)
|
||||||
|
|
||||||
|
## Outputs
|
||||||
|
|
||||||
|
- Final workflow result or answer (text or structured data)
|
||||||
|
- Session status (completed, failed, or cancelled)
|
||||||
|
- Error details if the workflow execution fails or times out
|
||||||
|
|
||||||
|
## Failure Modes
|
||||||
|
|
||||||
|
- Blueprint not found or not unique - script exits with an error listing available blueprints
|
||||||
|
- Session creation fails - may be due to invalid blueprint ID, authentication issues, or rate limiting
|
||||||
|
- Session submission fails - could be due to network issues, invalid parameters, or API rate limits
|
||||||
|
- Polling loop times out - session may be stuck in a long-running state without progress
|
||||||
|
- Final answer retrieval fails - could be due to session cleanup or network issues after completion
|
||||||
|
|
||||||
|
## Source
|
||||||
|
|
||||||
|
Extracted from: [https://github.com/redhat-community-ai-tools/UnifAI.git](https://github.com/redhat-community-ai-tools/UnifAI.git)
|
||||||
|
Confidence: 0.95
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# Commands: multi-agent-workflow-execution
|
||||||
|
|
||||||
|
## Available Commands
|
||||||
|
|
||||||
|
- `/skill multi-agent-workflow-execution` — Load this skill
|
||||||
|
- `/run multi-agent-workflow-execution` — Execute workflow
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# Examples: multi-agent-workflow-execution
|
||||||
|
|
||||||
|
## Usage Example
|
||||||
|
|
||||||
|
```python
|
||||||
|
# How to use this skill
|
||||||
|
# Inputs: Blueprint ID or name (to identify the workflow to execute), User shortcut (authentication identifier for the user), User question or prompt (input to the workflow), Base URL of the UnifAI API (endpoint for session management), Polling interval (seconds between status checks during execution)
|
||||||
|
# Process: Resolve the blueprint ID from either direct ID or name lookup via the API, handling cases where the blueprint is not found or not unique → Create a new session from the resolved blueprint using the session creation endpoint → Submit the session with the user's prompt to start the multi-agent workflow execution
|
||||||
|
# Outputs: Final workflow result or answer (text or structured data), Session status (completed, failed, or cancelled), Error details if the workflow execution fails or times out
|
||||||
|
```
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"name": "multi-agent-workflow-execution",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"goal": "Execute multi-agent AI workflows defined in YAML blueprints by creating sessions, submitting user prompts, and polling for completion until final answers are returned.",
|
||||||
|
"inputs": [
|
||||||
|
"Blueprint ID or name (to identify the workflow to execute)",
|
||||||
|
"User shortcut (authentication identifier for the user)",
|
||||||
|
"User question or prompt (input to the workflow)",
|
||||||
|
"Base URL of the UnifAI API (endpoint for session management)",
|
||||||
|
"Polling interval (seconds between status checks during execution)"
|
||||||
|
],
|
||||||
|
"steps": [
|
||||||
|
"Resolve the blueprint ID from either direct ID or name lookup via the API, handling cases where the blueprint is not found or not unique",
|
||||||
|
"Create a new session from the resolved blueprint using the session creation endpoint",
|
||||||
|
"Submit the session with the user's prompt to start the multi-agent workflow execution",
|
||||||
|
"Poll the session status at regular intervals until the session completes, fails, or is cancelled",
|
||||||
|
"Retrieve and return the final answer from the completed workflow"
|
||||||
|
],
|
||||||
|
"outputs": [
|
||||||
|
"Final workflow result or answer (text or structured data)",
|
||||||
|
"Session status (completed, failed, or cancelled)",
|
||||||
|
"Error details if the workflow execution fails or times out"
|
||||||
|
],
|
||||||
|
"failure_modes": [
|
||||||
|
"Blueprint not found or not unique - script exits with an error listing available blueprints",
|
||||||
|
"Session creation fails - may be due to invalid blueprint ID, authentication issues, or rate limiting",
|
||||||
|
"Session submission fails - could be due to network issues, invalid parameters, or API rate limits",
|
||||||
|
"Polling loop times out - session may be stuck in a long-running state without progress",
|
||||||
|
"Final answer retrieval fails - could be due to session cleanup or network issues after completion"
|
||||||
|
],
|
||||||
|
"confidence": 0.95,
|
||||||
|
"explanation": "The UnifAI repository contains a concrete, reusable workflow pattern for executing multi-agent AI workflows. The scripts/execution_workflow.py script demonstrates a complete pipeline: resolving blueprints by ID or name, creating sessions from blueprints, submitting user prompts to start workflows, polling session status until completion, and retrieving final answers. This pattern can be adapted to any multi-agent workflow defined in the YAML blueprint system, making it reusable across different use cases and teams.",
|
||||||
|
"source_repo": "https://github.com/redhat-community-ai-tools/UnifAI.git",
|
||||||
|
"score": 1.0
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
# Tests: multi-agent-workflow-execution
|
||||||
|
|
||||||
|
## 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
|
||||||
Reference in New Issue
Block a user