Compare commits

..

1 Commits

Author SHA1 Message Date
Hermes Pipeline 27789456db Add Skill: conditional-input-routing
Extracted from: https://github.com/jwwelbor/AgentMap.git
Score: 1.0
2026-08-08 23:48:40 +00:00
9 changed files with 151 additions and 148 deletions
+73
View File
@@ -0,0 +1,73 @@
---
name: conditional-input-routing
version: 1.0.0
description: Collect user input, classify or branch on its content, and route to appropriate
success or failure handling paths to produce a final result
inputs:
- name: request
type: string
description: User-provided input or request to be evaluated
steps:
- name: Start
action: input agent captures initial request into state
agent_type: input
output_field: request
- name: Classify
action: branching agent evaluates request and routes to next_node or on_failure
agent_type: branching
input_fields: request
output_field: decision
next_node: Approve
on_failure: Reject
- name: Approve
action: default agent processes approved request and sets result
agent_type: default
input_fields: request
output_field: result
prompt: 'Request approved: {request}'
- name: Reject
action: default agent processes rejected request and sets result
agent_type: default
input_fields: request
output_field: result
prompt: 'Request rejected: {request}'
outputs:
- name: result
type: string
description: Final output from either the approve or reject branch
tags: []
metadata:
source_repo: https://github.com/jwwelbor/AgentMap.git
extracted_at: ''
confidence: 0.9
---
# conditional-input-routing
Collect user input, classify or branch on its content, and route to appropriate success or failure handling paths to produce a final result
## Steps
1. {'name': 'Start', 'action': 'input agent captures initial request into state', 'agent_type': 'input', 'output_field': 'request'}
2. {'name': 'Classify', 'action': 'branching agent evaluates request and routes to next_node or on_failure', 'agent_type': 'branching', 'input_fields': 'request', 'output_field': 'decision', 'next_node': 'Approve', 'on_failure': 'Reject'}
3. {'name': 'Approve', 'action': 'default agent processes approved request and sets result', 'agent_type': 'default', 'input_fields': 'request', 'output_field': 'result', 'prompt': 'Request approved: {request}'}
4. {'name': 'Reject', 'action': 'default agent processes rejected request and sets result', 'agent_type': 'default', 'input_fields': 'request', 'output_field': 'result', 'prompt': 'Request rejected: {request}'}
## Inputs
- {'name': 'request', 'type': 'string', 'description': 'User-provided input or request to be evaluated'}
## Outputs
- {'name': 'result', 'type': 'string', 'description': 'Final output from either the approve or reject branch'}
## Failure Modes
- Input node fails to capture request (handled by on_failure if defined)
- Branching condition not met and no on_failure path defined
- Missing input_fields in state causing agent execution error
## Source
Extracted from: [https://github.com/jwwelbor/AgentMap.git](https://github.com/jwwelbor/AgentMap.git)
Confidence: 0.9
@@ -0,0 +1,6 @@
# Commands: conditional-input-routing
## Available Commands
- `/skill conditional-input-routing` — Load this skill
- `/run conditional-input-routing` — Execute workflow
@@ -0,0 +1,10 @@
# Examples: conditional-input-routing
## Usage Example
```python
# How to use this skill
# Inputs: {'name': 'request', 'type': 'string', 'description': 'User-provided input or request to be evaluated'}
# Process: {'name': 'Start', 'action': 'input agent captures initial request into state', 'agent_type': 'input', 'output_field': 'request'} → {'name': 'Classify', 'action': 'branching agent evaluates request and routes to next_node or on_failure', 'agent_type': 'branching', 'input_fields': 'request', 'output_field': 'decision', 'next_node': 'Approve', 'on_failure': 'Reject'} → {'name': 'Approve', 'action': 'default agent processes approved request and sets result', 'agent_type': 'default', 'input_fields': 'request', 'output_field': 'result', 'prompt': 'Request approved: {request}'}
# Outputs: {'name': 'result', 'type': 'string', 'description': 'Final output from either the approve or reject branch'}
```
@@ -0,0 +1,61 @@
{
"name": "conditional-input-routing",
"version": "1.0.0",
"goal": "Collect user input, classify or branch on its content, and route to appropriate success or failure handling paths to produce a final result",
"inputs": [
{
"name": "request",
"type": "string",
"description": "User-provided input or request to be evaluated"
}
],
"steps": [
{
"name": "Start",
"action": "input agent captures initial request into state",
"agent_type": "input",
"output_field": "request"
},
{
"name": "Classify",
"action": "branching agent evaluates request and routes to next_node or on_failure",
"agent_type": "branching",
"input_fields": "request",
"output_field": "decision",
"next_node": "Approve",
"on_failure": "Reject"
},
{
"name": "Approve",
"action": "default agent processes approved request and sets result",
"agent_type": "default",
"input_fields": "request",
"output_field": "result",
"prompt": "Request approved: {request}"
},
{
"name": "Reject",
"action": "default agent processes rejected request and sets result",
"agent_type": "default",
"input_fields": "request",
"output_field": "result",
"prompt": "Request rejected: {request}"
}
],
"outputs": [
{
"name": "result",
"type": "string",
"description": "Final output from either the approve or reject branch"
}
],
"failure_modes": [
"Input node fails to capture request (handled by on_failure if defined)",
"Branching condition not met and no on_failure path defined",
"Missing input_fields in state causing agent execution error"
],
"confidence": 0.9,
"explanation": "Extracted from AgentMap's documented conditional workflow example (ReviewFlow). This CSV-declared pattern of input to branching to dual-path handling is reusable for any approval, triage, or routing scenario without writing orchestration code.",
"source_repo": "https://github.com/jwwelbor/AgentMap.git",
"score": 1.0
}
@@ -1,4 +1,4 @@
# Tests: graph-based-node-workflow
# Tests: conditional-input-routing
## Test Checklist
-100
View File
@@ -1,100 +0,0 @@
---
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
@@ -1,6 +0,0 @@
# Commands: graph-based-node-workflow
## Available Commands
- `/skill graph-based-node-workflow` — Load this skill
- `/run graph-based-node-workflow` — Execute workflow
@@ -1,10 +0,0 @@
# 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
```
@@ -1,31 +0,0 @@
{
"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
}