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

http_server

The http_server block enables and configures the built-in HTTP server.

The http_server block enables the built-in HTTP server. It is optional. If omitted, the agent runs as a process without an HTTP interface.

agent.acl
http_server {
  host = runtime("HTTP_HOST", "127.0.0.1")
  port = runtime("HTTP_PORT", 8080)
  max_request_size = runtime("HTTP_MAX_REQUEST_SIZE", 2097152)

  protocol {
    ag_ui {}
    a2a {}
  }
}

Fields

FieldTypeRequiredruntime()DefaultDescription
hoststringnoyes"127.0.0.1"Host address to bind the server to. Overridable via the HTTP_HOST environment variable.
portintegernoyes8080Port to listen on. Overridable via the HTTP_PORT environment variable.
max_request_sizeintegernoyes2097152Maximum accepted request body size, in bytes. Requests exceeding it are rejected with 413 Payload Too Large. Overridable via the HTTP_MAX_REQUEST_SIZE environment variable.
protocolblocknoEnables optional protocol implementations.

protocol block

The protocol block enables specific protocol implementations on the HTTP server. Supported protocols are ag_ui and a2a.

ag_ui

protocol {
  ag_ui {
    path = "/ag-ui"
  }
}

Enabling ag_ui mounts the AG-UI streaming protocol on the server. This allows frontend UIs and clients to connect to the agent and receive real-time execution events as a Server-Sent Events stream.

FieldTypeRequiredDefaultDescription
pathstringno"/ag-ui"Base URL path at which the AG-UI endpoint is mounted. The run endpoint is served at <path>/run.

See AG-UI for the full protocol documentation, event types, and client connection examples.

a2a

protocol {
  a2a {
    path = "/a2a"
  }
}

Enabling a2a mounts the foundational Agent2Agent protocol surface on the server. This allows upstream agents to discover the agent, send work as tasks, stream basic task updates, inspect a known task, and cancel a task.

This setting exposes the current agent as an inbound A2A server. To let the current agent call another A2A server, configure an A2A tool with tool { kind = "a2a" }.

FieldTypeRequiredDefaultDescription
pathstringno"/a2a"Base URL path at which the A2A endpoints are mounted.

See A2A for the supported endpoint shapes and current implementation scope. See Connect agents via A2A for outbound A2A tools.

← PreviousskillNext →Runtime

© 2026 pogue.dev. All rights reserved.

Creative CommonsCC BY 4.0
On this pageFieldsprotocol blockag_uia2a

Search docs

Search the agentc documentation