--- name: graph-based-node-workflow version: 1.0.0 description: Create and execute typed node graphs for AI/robotics workflows by defining nodes with inputs/outputs and connecting them with edges, then cooking the graph to run the workflow. inputs: - bn.Graph() - the graph container for the workflow - Node definitions (Literal, Text, LLMAgent, Concat, Output, etc.) with specified inputs and outputs - Edge connections mapping from_port to to_port between nodes steps: - 'Step 1: Initialize a bn.Graph() instance to serve as the workflow container' - 'Step 2: Define individual nodes with their required inputs and outputs (e.g., Literal for data, LLMAgent for inference, Concat for combining, Output for final results)' - 'Step 3: Create edges connecting nodes by specifying source from_port and destination to_port for each data flow' - 'Step 4: Execute the graph by calling g.cook() to process the defined workflow and produce results' outputs: - Executed workflow results stored in the graph's output nodes - Cooked graph ready for inspection, replay, or deployment - Potential error states if node dependencies are missing or ports don't match tags: [] metadata: source_repo: https://github.com/temiroff/Blacknode.git extracted_at: '' confidence: 0.95 --- # graph-based-node-workflow Create and execute typed node graphs for AI/robotics workflows by defining nodes with inputs/outputs and connecting them with edges, then cooking the graph to run the workflow. ## Setup **Dependencies:** ```text pip install blacknode (core Python package) anthropic, openai, docker, petgraph (dependencies) Rust extensions in blacknode-core, blacknode-runtime (optional) ``` **Setup steps:** 1. Install blacknode with Python 3.11+ and required dependencies 1. Clone repository and navigate to project directory 1. Run examples/converted_text_pipeline.py to see basic graph execution 1. Modify node definitions and edges to create custom workflows ## Key Files - `examples/converted_text_pipeline.py - basic pipeline pattern` - `examples/hello_agent.py - LLM agent workflow pattern` - `examples/research_pipeline.py - multi-node research workflow` - `blacknode.py - main CLI entry point` ## Steps 1. Step 1: Initialize a bn.Graph() instance to serve as the workflow container 2. Step 2: Define individual nodes with their required inputs and outputs (e.g., Literal for data, LLMAgent for inference, Concat for combining, Output for final results) 3. Step 3: Create edges connecting nodes by specifying source from_port and destination to_port for each data flow 4. Step 4: Execute the graph by calling g.cook() to process the defined workflow and produce results ## Implementation Details ```python g = bn.Graph() ``` ```python g._edges = [{"from": "model", "from_port": "value", "to": "agent", "to_port": "model"}] ``` ```python result = g.cook(output, "value") ``` ## Inputs - bn.Graph() - the graph container for the workflow - Node definitions (Literal, Text, LLMAgent, Concat, Output, etc.) with specified inputs and outputs - Edge connections mapping from_port to to_port between nodes ## Outputs - Executed workflow results stored in the graph's output nodes - Cooked graph ready for inspection, replay, or deployment - Potential error states if node dependencies are missing or ports don't match ## Failure Modes - Missing node dependencies causing undefined variable errors - Port mismatch in edge connections leading to no data flow - Incomplete graph definition causing cook() to fail - Model API key missing or invalid for LLMAgent nodes ## Source Extracted from: [https://github.com/temiroff/Blacknode.git](https://github.com/temiroff/Blacknode.git) Confidence: 0.95