Skip to main content

Core Types

The Agent User Interaction Protocol SDK is built on a set of core types that represent the fundamental structures used throughout the system. This page documents these types and their properties.

RunAgentInput

Input parameters for running an agent. In the HTTP API, this is the body of the POST request. tools contains tools provided by the client for this run. Backend-defined tools should remain in the backend agent or framework configuration, and may be advertised separately through agent capabilities.

ResumeEntry

One per-interrupt response inside RunAgentInput.resume, addressing an interrupt from the previous run. See Interrupts for the full resume contract.
metadata follows the same conventions as metadata everywhere else in the protocol: open by key, any JSON value allowed under a key including null, the object itself absent or an object but never null, and the ag-ui key reserved. A resume entry is a request field, so nothing merges into it; see Metadata.

Message Types

The SDK includes several message types that represent different kinds of messages in the system.
Every message type carries an optional metadata object (Record<string, any>), and so does ToolCall. Both are omitted from the per-type tables below for brevity. It is open by key — any JSON value is allowed under a key, including null — and the object itself may be absent but is never null. The ag-ui key is reserved for AG-UI’s own use. Metadata accumulates as a message is built from its events; see Metadata for the merge rules.

Role

Represents the possible roles a message sender can have.

DeveloperMessage

Represents a message from a developer.

SystemMessage

Represents a system message.

AssistantMessage

Represents a message from an assistant.

UserMessage

Represents a message from a user.

InputContent

Union of supported multimodal fragments.

InputContentSource

TextInputContent

ImageInputContent

AudioInputContent

VideoInputContent

DocumentInputContent

ToolMessage

Represents a message from a tool.

ActivityMessage

Represents structured activity progress emitted between chat messages.

ReasoningMessage

Represents a reasoning/thinking message from an agent’s internal thought process.

Message

A union type representing any type of message in the system.

ToolCall

Represents a tool call made by an agent.

FunctionCall

Represents function name and arguments in a tool call.

Context

Represents a piece of contextual information provided to an agent.

Tool

Defines a tool that can be called by an agent.

State

Represents the state of an agent during execution.
The state type is flexible and can hold any data structure needed by the agent implementation.

AgentCapabilities

Typed capability declaration returned by getCapabilities(). All fields are optional — agents only declare what they support.
See Capabilities for the full category type definitions and usage patterns.