The graph block selects the graph implementation that drives the agent.
The graph block chooses which graph implementation drives an agent block. It lives inside the
agent block because the graph is part of the agent's definition, not a separate top-level build
choice. In this distribution, the only shipped graph is react.
agent "assistant" {
graph {
type = "react"
model {
timeout = runtime("MODEL_TIMEOUT_MS", 30000)
retry {
max_attempts = runtime("MODEL_MAX_ATTEMPTS", 3)
initial_backoff = runtime("MODEL_INITIAL_BACKOFF_MS", 250)
max_backoff = runtime("MODEL_MAX_BACKOFF_MS", 5000)
}
}
}
}| Field | Type | Required | runtime() | Description |
|---|---|---|---|---|
type | string | yes | no | Graph implementation name. Currently this must be react. |
model | block | no | no | Default model call policy for the ReAct graph. |
model.timeout | integer | no | yes | Maximum time in milliseconds to establish a model response stream. |
model.retry | block | no | no | Retry policy for transient failures while establishing a model response stream. |
model.retry.max_attempts | integer | yes when retry is present | yes | Maximum number of attempts, including the first request. |
model.retry.initial_backoff | integer | yes when retry is present | yes | Delay in milliseconds before the first retry. |
model.retry.max_backoff | integer | yes when retry is present | yes | Maximum base backoff between attempts, in milliseconds. |
The optional model block sets startup defaults for calls made by the ReAct graph. Constant values
are compiled into the generated configuration. A runtime() value creates an environment mapping
that is resolved when the generated agent starts, so operators can tune the policy without compiling
the agent again.
The timeout covers response stream establishment. It does not limit the total duration of a healthy streaming response. Retry applies only to transient failures that occur before the response stream is returned, including handshake timeouts and retryable provider failures. A stream that has already started is never restarted.
Clients may supply a model object when starting a ReAct run. Client timeout and retry values take
precedence over these manifest defaults independently. For example, a request can replace the timeout
while continuing to use the compiled retry policy. Provider, model, and inference parameter overrides
remain request-only values and are not configured by this manifest block.
Graph selection is explicit. If a manifest omits the graph block, the compiler rejects it. That
keeps the selected graph visible in the manifest and makes it possible for the compiler to compose
the correct runtime pieces around it.
See The graph for the conceptual model,
agent for the agent block that contains this block, and
ReAct for the behavior and prompt variables of the shipped graph.
© 2026 pogue.dev. All rights reserved.
CC BY 4.0Search the agentc documentation