Agent Graph Overview
Every Aden agent is represented as a directed graph consisting of:- Nodes - Individual processing units (LLM calls, routers, functions, human intervention)
- Edges - Connections between nodes that define flow (success, failure, conditional)
- Context - Shared state passed between nodes (memory, tools, LLM access)
Node Types
LLM Node
Executes a language model call with a prompt template and context.- Structured output via JSON schema
- Tool/function calling
- Streaming responses
- Automatic retry with backoff
Router Node
Routes execution to different paths based on conditions or LLM decisions.- Conditional - Based on output values
- LLM-decided - Let the model choose the path
- Weighted - Probabilistic routing for A/B testing
Function Node
Executes custom Python code for business logic, API calls, or data transformation.Human-in-the-Loop Node
Pauses execution for human input with configurable timeouts and escalation.Edge Types
Edges connect nodes and define the execution flow:| Edge Type | Description | Example |
|---|---|---|
on_success | Execute when node completes successfully | LLM response received |
on_failure | Execute when node fails | API error, timeout |
conditional | Execute based on output conditions | when: "score > 0.8" |
SDK-Wrapped Nodes
Every node in Aden is wrapped with the SDK, providing:Shared Memory
Access to global and local memory stores
LLM Access
Built-in access to configured LLM providers
Tool Registry
Access to MCP tools and custom functions
Observability
Automatic logging, tracing, and cost tracking
Node Context
Each node receives a context object with:Agent Specification
Agents are defined in a JSON specification (agent.json):