diff --git a/skills/graph-based-node-workflow/SKILL.md b/skills/graph-based-node-workflow/SKILL.md new file mode 100644 index 0000000..d316089 --- /dev/null +++ b/skills/graph-based-node-workflow/SKILL.md @@ -0,0 +1,100 @@ +--- +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 diff --git a/skills/graph-based-node-workflow/commands.md b/skills/graph-based-node-workflow/commands.md new file mode 100644 index 0000000..4d0bd96 --- /dev/null +++ b/skills/graph-based-node-workflow/commands.md @@ -0,0 +1,6 @@ +# Commands: graph-based-node-workflow + +## Available Commands + +- `/skill graph-based-node-workflow` — Load this skill +- `/run graph-based-node-workflow` — Execute workflow diff --git a/skills/graph-based-node-workflow/examples.md b/skills/graph-based-node-workflow/examples.md new file mode 100644 index 0000000..76605f9 --- /dev/null +++ b/skills/graph-based-node-workflow/examples.md @@ -0,0 +1,10 @@ +# Examples: graph-based-node-workflow + +## Usage Example + +```python +# How to use this skill +# 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 +# Process: 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 +# 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 +``` diff --git a/skills/graph-based-node-workflow/metadata.json b/skills/graph-based-node-workflow/metadata.json new file mode 100644 index 0000000..e663ed5 --- /dev/null +++ b/skills/graph-based-node-workflow/metadata.json @@ -0,0 +1,31 @@ +{ + "name": "graph-based-node-workflow", + "version": "1.0.0", + "goal": "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" + ], + "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" + ], + "confidence": 0.95, + "explanation": "This workflow pattern is reusable across different AI/robotics applications because it provides a standardized way to compose complex pipelines from typed nodes. The pattern can be adapted to various use cases like research pipelines, agent workflows, or robotics control graphs by simply adding/removing nodes and edges while maintaining the same graph-cooking execution model.", + "source_repo": "https://github.com/temiroff/Blacknode.git", + "score": 1.0 +} \ No newline at end of file diff --git a/skills/graph-based-node-workflow/tests.md b/skills/graph-based-node-workflow/tests.md new file mode 100644 index 0000000..a4f67e2 --- /dev/null +++ b/skills/graph-based-node-workflow/tests.md @@ -0,0 +1,9 @@ +# Tests: graph-based-node-workflow + +## 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