271f79610d
New skills: - blacknode-graph-workflow - multi-agent-workflow-execution - langgraph-agent-workflow - langgraph-multi-agent-router - three-tier-evaluation-pipeline Config: LLM pipeline uses LFM on llama.cpp (8080)
114 lines
4.4 KiB
Markdown
114 lines
4.4 KiB
Markdown
---
|
|
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
|