Compare commits

..

1 Commits

Author SHA1 Message Date
Hermes Pipeline a2433251cd Add Skill: conditional-request-routing-workflow
Extracted from: https://github.com/jwwelbor/AgentMap.git
Score: 1.0
2026-08-08 22:55:19 +00:00
9 changed files with 170 additions and 149 deletions
-101
View File
@@ -1,101 +0,0 @@
---
name: branching-agent-pattern
version: 1.0.0
description: Define and execute AI agent workflows using CSV-based declarative definitions
with configurable branching logic
inputs:
- 'CSV workflow files defining agent graphs with columns: graph_name, node_name, agent_type,
next_node, on_failure, prompt, input_fields, output_field'
- LLM provider configuration (OpenAI, Anthropic, Google) in agentmap_config.yaml
- Storage backend configuration in agentmap_config_storage.yaml
steps:
- Define workflow graph in CSV with nodes representing agent steps and their connections
(next_node, on_failure)
- Configure BranchingAgent with customizable success/failure values and fallback fields
in the context dictionary
- Initialize the agent runtime with ensure_initialized() and configure execution tracking
and state adapter services
- Execute the workflow using agentmap run with appropriate inputs and monitor the
execution trace
outputs:
- Executed workflow with results stored in the specified output_field
- Detailed execution trace showing success/failure decisions at each branching point
- Updated workflow state persisted in the configured storage backend
tags: []
metadata:
source_repo: https://github.com/jwwelbor/AgentMap.git
extracted_at: ''
confidence: 0.95
---
# branching-agent-pattern
Define and execute AI agent workflows using CSV-based declarative definitions with configurable branching logic
## Setup
**Dependencies:**
```text
pip install langgraph>=1.0.0 langchain-core>=0.3.0 pyyaml>=6.0.0 fastapi>=0.111.0 uvicorn>=0.34.3
```
**Setup steps:**
1. Install AgentMap: pip install agentmap[all]
1. Configure llm providers in agentmap_config.yaml (OpenAI, Anthropic, Google models)
1. Create CSV workflow files with graph definitions
1. Initialize runtime with ensure_initialized()
1. Run workflow with agentmap run <csv_file> --pretty
## Key Files
- `agentmap_config.yaml - Main configuration with LLM and storage settings`
- `agentmap_config_storage.yaml - Storage backend configuration`
- `hello_world.csv - Sample workflow demonstrating basic agent chain`
- `examples/host_integration/custom_agents.py - Custom agent implementations with host service integration`
## Steps
1. Define workflow graph in CSV with nodes representing agent steps and their connections (next_node, on_failure)
2. Configure BranchingAgent with customizable success/failure values and fallback fields in the context dictionary
3. Initialize the agent runtime with ensure_initialized() and configure execution tracking and state adapter services
4. Execute the workflow using agentmap run with appropriate inputs and monitor the execution trace
## Implementation Details
```python
CSV format: graph_name,node_name,agent_type,next_node,on_failure,prompt,input_fields,output_field
```
```python
BranchingAgent context example: {'input_fields': ['success'], 'output_field': 'result', 'success_values': ['PASSED', 'COMPLETED']}
```
```python
Execution command: agentmap run hello_world.csv --pretty
```
## Inputs
- CSV workflow files defining agent graphs with columns: graph_name, node_name, agent_type, next_node, on_failure, prompt, input_fields, output_field
- LLM provider configuration (OpenAI, Anthropic, Google) in agentmap_config.yaml
- Storage backend configuration in agentmap_config_storage.yaml
## Outputs
- Executed workflow with results stored in the specified output_field
- Detailed execution trace showing success/failure decisions at each branching point
- Updated workflow state persisted in the configured storage backend
## Failure Modes
- Invalid CSV format causing parsing errors during workflow loading
- Missing or misconfigured LLM provider settings leading to execution failures
- Storage backend unavailable or misconfigured preventing workflow persistence
- Agent execution timeout due to long-running operations or infinite loops
## Source
Extracted from: [https://github.com/jwwelbor/AgentMap.git](https://github.com/jwwelbor/AgentMap.git)
Confidence: 0.95
@@ -1,6 +0,0 @@
# Commands: branching-agent-pattern
## Available Commands
- `/skill branching-agent-pattern` — Load this skill
- `/run branching-agent-pattern` — Execute workflow
@@ -1,10 +0,0 @@
# Examples: branching-agent-pattern
## Usage Example
```python
# How to use this skill
# Inputs: CSV workflow files defining agent graphs with columns: graph_name, node_name, agent_type, next_node, on_failure, prompt, input_fields, output_field, LLM provider configuration (OpenAI, Anthropic, Google) in agentmap_config.yaml, Storage backend configuration in agentmap_config_storage.yaml
# Process: Define workflow graph in CSV with nodes representing agent steps and their connections (next_node, on_failure) → Configure BranchingAgent with customizable success/failure values and fallback fields in the context dictionary → Initialize the agent runtime with ensure_initialized() and configure execution tracking and state adapter services
# Outputs: Executed workflow with results stored in the specified output_field, Detailed execution trace showing success/failure decisions at each branching point, Updated workflow state persisted in the configured storage backend
```
@@ -1,31 +0,0 @@
{
"name": "branching-agent-pattern",
"version": "1.0.0",
"goal": "Define and execute AI agent workflows using CSV-based declarative definitions with configurable branching logic",
"inputs": [
"CSV workflow files defining agent graphs with columns: graph_name, node_name, agent_type, next_node, on_failure, prompt, input_fields, output_field",
"LLM provider configuration (OpenAI, Anthropic, Google) in agentmap_config.yaml",
"Storage backend configuration in agentmap_config_storage.yaml"
],
"steps": [
"Define workflow graph in CSV with nodes representing agent steps and their connections (next_node, on_failure)",
"Configure BranchingAgent with customizable success/failure values and fallback fields in the context dictionary",
"Initialize the agent runtime with ensure_initialized() and configure execution tracking and state adapter services",
"Execute the workflow using agentmap run with appropriate inputs and monitor the execution trace"
],
"outputs": [
"Executed workflow with results stored in the specified output_field",
"Detailed execution trace showing success/failure decisions at each branching point",
"Updated workflow state persisted in the configured storage backend"
],
"failure_modes": [
"Invalid CSV format causing parsing errors during workflow loading",
"Missing or misconfigured LLM provider settings leading to execution failures",
"Storage backend unavailable or misconfigured preventing workflow persistence",
"Agent execution timeout due to long-running operations or infinite loops"
],
"confidence": 0.95,
"explanation": "The BranchingAgent pattern provides a reusable framework for creating conditional AI workflows. The CSV-based workflow definition allows defining complex agent graphs declaratively, while the BranchingAgent handles dynamic branching based on success/failure conditions with customizable value sets. This pattern can be adapted to various use cases including task routing, error handling, and conditional execution paths across different domains.",
"source_repo": "https://github.com/jwwelbor/AgentMap.git",
"score": 1.0
}
@@ -0,0 +1,81 @@
---
name: conditional-request-routing-workflow
version: 1.0.0
description: Collect a request, classify it via branching logic, and route to an approval
or rejection handler to produce a final result
inputs:
- name: request
type: string
description: The input text or request to be evaluated and routed
steps:
- node: Start
agent_type: input
description: Prompt user and capture the request into state field 'request'
next: Classify
- node: Classify
agent_type: branching
description: Evaluate the request and set 'decision' field, routing to Approve on
success or Reject on failure
input_fields:
- request
output_field: decision
next_node: Approve
on_failure: Reject
- node: Approve
agent_type: default
description: Format and output an approval message containing the request
input_fields:
- request
output_field: result
prompt: 'Request approved: {request}'
- node: Reject
agent_type: default
description: Format and output a rejection message containing the request
input_fields:
- request
output_field: result
prompt: 'Request rejected: {request}'
outputs:
- name: result
type: string
description: Final formatted message indicating the outcome (approved or rejected)
- name: decision
type: string
description: Routing decision produced by the branching node
tags: []
metadata:
source_repo: https://github.com/jwwelbor/AgentMap.git
extracted_at: ''
confidence: 0.92
---
# conditional-request-routing-workflow
Collect a request, classify it via branching logic, and route to an approval or rejection handler to produce a final result
## Steps
1. {'node': 'Start', 'agent_type': 'input', 'description': "Prompt user and capture the request into state field 'request'", 'next': 'Classify'}
2. {'node': 'Classify', 'agent_type': 'branching', 'description': "Evaluate the request and set 'decision' field, routing to Approve on success or Reject on failure", 'input_fields': ['request'], 'output_field': 'decision', 'next_node': 'Approve', 'on_failure': 'Reject'}
3. {'node': 'Approve', 'agent_type': 'default', 'description': 'Format and output an approval message containing the request', 'input_fields': ['request'], 'output_field': 'result', 'prompt': 'Request approved: {request}'}
4. {'node': 'Reject', 'agent_type': 'default', 'description': 'Format and output a rejection message containing the request', 'input_fields': ['request'], 'output_field': 'result', 'prompt': 'Request rejected: {request}'}
## Inputs
- {'name': 'request', 'type': 'string', 'description': 'The input text or request to be evaluated and routed'}
## Outputs
- {'name': 'result', 'type': 'string', 'description': 'Final formatted message indicating the outcome (approved or rejected)'}
- {'name': 'decision', 'type': 'string', 'description': 'Routing decision produced by the branching node'}
## Failure Modes
- Empty or missing request input prevents meaningful classification
- Branching node fails to resolve a valid route and defaults to rejection path
- Prompt template variable missing causes malformed output
## Source
Extracted from: [https://github.com/jwwelbor/AgentMap.git](https://github.com/jwwelbor/AgentMap.git)
Confidence: 0.92
@@ -0,0 +1,6 @@
# Commands: conditional-request-routing-workflow
## Available Commands
- `/skill conditional-request-routing-workflow` — Load this skill
- `/run conditional-request-routing-workflow` — Execute workflow
@@ -0,0 +1,10 @@
# Examples: conditional-request-routing-workflow
## Usage Example
```python
# How to use this skill
# Inputs: {'name': 'request', 'type': 'string', 'description': 'The input text or request to be evaluated and routed'}
# Process: {'node': 'Start', 'agent_type': 'input', 'description': "Prompt user and capture the request into state field 'request'", 'next': 'Classify'} → {'node': 'Classify', 'agent_type': 'branching', 'description': "Evaluate the request and set 'decision' field, routing to Approve on success or Reject on failure", 'input_fields': ['request'], 'output_field': 'decision', 'next_node': 'Approve', 'on_failure': 'Reject'} → {'node': 'Approve', 'agent_type': 'default', 'description': 'Format and output an approval message containing the request', 'input_fields': ['request'], 'output_field': 'result', 'prompt': 'Request approved: {request}'}
# Outputs: {'name': 'result', 'type': 'string', 'description': 'Final formatted message indicating the outcome (approved or rejected)'}, {'name': 'decision', 'type': 'string', 'description': 'Routing decision produced by the branching node'}
```
@@ -0,0 +1,72 @@
{
"name": "conditional-request-routing-workflow",
"version": "1.0.0",
"goal": "Collect a request, classify it via branching logic, and route to an approval or rejection handler to produce a final result",
"inputs": [
{
"name": "request",
"type": "string",
"description": "The input text or request to be evaluated and routed"
}
],
"steps": [
{
"node": "Start",
"agent_type": "input",
"description": "Prompt user and capture the request into state field 'request'",
"next": "Classify"
},
{
"node": "Classify",
"agent_type": "branching",
"description": "Evaluate the request and set 'decision' field, routing to Approve on success or Reject on failure",
"input_fields": [
"request"
],
"output_field": "decision",
"next_node": "Approve",
"on_failure": "Reject"
},
{
"node": "Approve",
"agent_type": "default",
"description": "Format and output an approval message containing the request",
"input_fields": [
"request"
],
"output_field": "result",
"prompt": "Request approved: {request}"
},
{
"node": "Reject",
"agent_type": "default",
"description": "Format and output a rejection message containing the request",
"input_fields": [
"request"
],
"output_field": "result",
"prompt": "Request rejected: {request}"
}
],
"outputs": [
{
"name": "result",
"type": "string",
"description": "Final formatted message indicating the outcome (approved or rejected)"
},
{
"name": "decision",
"type": "string",
"description": "Routing decision produced by the branching node"
}
],
"failure_modes": [
"Empty or missing request input prevents meaningful classification",
"Branching node fails to resolve a valid route and defaults to rejection path",
"Prompt template variable missing causes malformed output"
],
"confidence": 0.92,
"explanation": "Extracted from the ReviewFlow CSV example in the AgentMap README. This is a declarative, CSV-defined LangGraph workflow demonstrating the reusable pattern of input -> branching classification -> conditional handling paths. It can be generalized for ticket triage, content moderation, or any route-by-condition use case.",
"source_repo": "https://github.com/jwwelbor/AgentMap.git",
"score": 1.0
}
@@ -1,4 +1,4 @@
# Tests: branching-agent-pattern # Tests: conditional-request-routing-workflow
## Test Checklist ## Test Checklist