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)
4.4 KiB
4.4 KiB
name, version, description, inputs, steps, outputs, tags, metadata
| name | version | description | inputs | steps | outputs | tags | metadata | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| multi-agent-workflow-execution | 1.0.0 | Execute multi-agent AI workflows defined in YAML blueprints by creating sessions, submitting user prompts, and polling for completion until final answers are returned. |
|
|
|
|
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:
pip install requests urllib3 python-langgraph temporalio
Setup steps:
- Install Python 3.11+ and required packages (requests, langgraph, temporalio)
- Configure API base URL and user credentials in environment variables or config
- Define or select a blueprint from the available workflows in the system
- Run the execution_workflow.py script with blueprint ID/name and user prompt
Key Files
scripts/execution_workflow.py - Main workflow execution scriptmulti-agent/lib/mas/engine/ - LangGraph-based orchestration modulesmulti-agent/lib/mas/elements/ - Node definitions (custom_agent_node, merger_node, etc.)multi-agent/lib/mas/blueprints/ - Blueprint resolution and validation logic
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
Implementation Details
resolve_blueprint_id() - Resolves blueprint by ID or name lookup with error handling
create_session() - Creates a new session from a blueprint via POST /user.session.create
submit_session() - Submits user prompt to start workflow via POST /user.session.submit
poll_session_status() - Polls session.stream.status at configurable intervals
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 Confidence: 0.95