Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 27789456db |
@@ -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,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: branching-agent-pattern
|
# Tests: conditional-input-routing
|
||||||
|
|
||||||
## Test Checklist
|
## Test Checklist
|
||||||
|
|
||||||
Reference in New Issue
Block a user