Interface GraphNode

A single vertex in the compiled execution graph.

Nodes are immutable once compiled; all runtime state lives in GraphState.

interface GraphNode {
    id: string;
    type: "tool" | "extension" | "voice" | "gmi" | "human" | "guardrail" | "router" | "subgraph";
    executorConfig: NodeExecutorConfig;
    executionMode: NodeExecutionMode;
    effectClass: EffectClass;
    timeout?: number;
    retryPolicy?: RetryPolicy;
    checkpoint: "both" | "none" | "before" | "after";
    inputSchema?: Record<string, unknown>;
    outputSchema?: Record<string, unknown>;
    complexity?: number;
    llm?: NodeLlmConfig;
    memoryPolicy?: MemoryPolicy;
    discoveryPolicy?: DiscoveryPolicy;
    personaPolicy?: PersonaPolicy;
    guardrailPolicy?: GuardrailPolicy;
}

Properties

id: string

Unique identifier within the parent CompiledExecutionGraph. Must not equal START or END.

type: "tool" | "extension" | "voice" | "gmi" | "human" | "guardrail" | "router" | "subgraph"

Coarse type label kept in sync with executorConfig.type for fast switching.

executorConfig: NodeExecutorConfig

Full executor configuration; discriminated union determines runtime strategy.

executionMode: NodeExecutionMode

Controls the LLM turn budget for this node.

effectClass: EffectClass

Classifies the side-effects this node may produce.

timeout?: number

Maximum wall-clock execution time in milliseconds before the node is aborted.

retryPolicy?: RetryPolicy

Automatic retry configuration for transient failures.

checkpoint: "both" | "none" | "before" | "after"

When the runtime should persist a checkpoint snapshot.

  • before — snapshot taken before executor runs (enables re-entry on crash).
  • after — snapshot taken after executor succeeds.
  • both — snapshot taken at both points.
  • none — no snapshot for this node.
inputSchema?: Record<string, unknown>

JSON-Schema-compatible description of the expected input shape.

outputSchema?: Record<string, unknown>

JSON-Schema-compatible description of the expected output shape.

complexity?: number

Optional planner-estimated node complexity (0-1).

Optional per-node LLM provider/model override.

memoryPolicy?: MemoryPolicy

Memory read/write configuration applied by the runtime around execution.

discoveryPolicy?: DiscoveryPolicy

Dynamic capability discovery configuration applied before execution.

personaPolicy?: PersonaPolicy

Persona layer configuration injected into the prompt context.

guardrailPolicy?: GuardrailPolicy

Declarative guardrails evaluated on input and/or output payloads.