edges array is a WorkflowEdge. It represents a connection between an output port on one node and an input port on another.
Schema
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Unique edge identifier (e.g., "e-loader-analyzer"). |
source | string | Yes | ID of the source node. |
target | string | Yes | ID of the target node. |
sourceHandle | string | No | ID of the specific output port. See Handle IDs. |
targetHandle | string | No | ID of the specific input port. See Handle IDs. |
selectable | boolean | No | Whether the edge can be selected in the editor. |
deletable | boolean | No | Whether the edge can be deleted by the user. |
data.label | string | No | Display label on the edge. |
data.condition | string | No | Condition expression (used with gateway branches). |
data.metadata.edgeType | EdgeCategory | No | Visual styling category. |
data.metadata.sourcePortDataType | string | No | Data type of the source output port. |
Handle IDs
Port handles follow a deterministic naming pattern:content_loader.1-output-items— the “items” output port on nodecontent_loader.1analyzer.1-input-content— the “content” input port on nodeanalyzer.1router.1-output-high— the “high” branch output on a gateway node
Edge Categories
TheedgeType field controls the visual style of the edge on the canvas:
| Category | Visual Style | When Used |
|---|---|---|
data | Solid gray line | Default — general data flow between nodes. |
trigger | Solid line with trigger color | Control flow connections (port dataType: "trigger"). |
tool | Dashed amber line | Tool interface connections (port dataType: "tool"). |
loopback | Dashed gray line | Loop iteration connections (targets a loop_back port). |
edgeType automatically based on the source port’s data type. You generally don’t need to set it manually in JSON.
Examples
Data Edge
A simple data connection between two ports:Trigger Edge
A control-flow connection that triggers execution:Tool Edge
A dashed connection linking an agent to a tool:Gateway Branch Edge
A conditional edge from a gateway branch:Connection Validation
The editor validates connections automatically before creating edges:- Type compatibility — only compatible port data types can connect
- Cycle detection — prevents circular dependencies (O(V+E) algorithm)
- Loopback prevention — nodes cannot connect to themselves
Next Steps
- Node Structure — the nodes that edges connect
- Port System & Data Types — port definitions and compatibility rules
- Workflow Structure — the top-level document containing edges