Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ff7389e0de |
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
# Tests: blacknode-graph-workflow
|
||||
# Tests: multi-agent-workflow-execution
|
||||
|
||||
## Test Checklist
|
||||
|
||||
Reference in New Issue
Block a user