agentc
GitHubagentc-sh/agentc
agentc
GitHubagentc-sh/agentc
›Introduction
Get started›Concepts in 5 minutes›Build your first agent›Add your first tool›Serve and connect
Concepts›Architecture overview›The manifest›The compilation pipeline›Archetypes›The graph›Tools and capabilities›Runtime libraries›Skills›Agents and prompts›Serving and protocols›Observability
Guides›Author a manifest›Write a tool›Give your agent a filesystem›Control network egress›Connect external tools via MCP›Connect agents via A2A›Use the bash tool›Control tool access with capabilities›Write templated prompts›Manage prompts with Langfuse›Pass context from the client›Configure a model provider›Connect a CopilotKit frontend›Deploy a standalone binary›Deploy with Docker and PostgreSQL›Instrument with OpenTelemetry›Extend code generation with blocks
Reference
Manifest
›build›locals›runtime›filesystem›network
providers
›agent›graph›tool›skill›http_server
Runtime
›Observability

graph

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.acl
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)
      }
    }
  }
}

Fields

FieldTypeRequiredruntime()Description
typestringyesnoGraph implementation name. Currently this must be react.
modelblocknonoDefault model call policy for the ReAct graph.
model.timeoutintegernoyesMaximum time in milliseconds to establish a model response stream.
model.retryblocknonoRetry policy for transient failures while establishing a model response stream.
model.retry.max_attemptsintegeryes when retry is presentyesMaximum number of attempts, including the first request.
model.retry.initial_backoffintegeryes when retry is presentyesDelay in milliseconds before the first retry.
model.retry.max_backoffintegeryes when retry is presentyesMaximum base backoff between attempts, in milliseconds.

ReAct model call defaults

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.

Usage

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.

← PreviousagentNext →tool

© 2026 pogue.dev. All rights reserved.

Creative CommonsCC BY 4.0
On this pageFieldsReAct model call defaultsUsage

Search docs

Search the agentc documentation