Skip to main content

Core Types

The Agent User Interaction Protocol Ruby 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.

AudioInputContent

AgUiProtocol::Core::Types::AudioInputContent Represents an audio content fragment inside a multimodal user message.

Context

AgUiProtocol::Core::Types::Context Represents a piece of contextual information provided to an agent.

DocumentInputContent

AgUiProtocol::Core::Types::DocumentInputContent Represents a document content fragment inside a multimodal user message.

ImageInputContent

AgUiProtocol::Core::Types::ImageInputContent Represents an image content fragment inside a multimodal user message.

InputContentDataSource

AgUiProtocol::Core::Types::InputContentDataSource Represents a data source for multimodal input content using base64-encoded data.

InputContentUrlSource

AgUiProtocol::Core::Types::InputContentUrlSource Represents a URL source for multimodal input content.

Interrupt

AgUiProtocol::Core::Types::Interrupt Represents an interrupt that occurred during agent execution for human-in-the-loop workflows.

ReasoningMessage

AgUiProtocol::Core::Types::ReasoningMessage Represents a reasoning message from an agent with chain-of-thought content.

ResumeEntry

AgUiProtocol::Core::Types::ResumeEntry Represents an entry for resuming an interrupted run.

Role

AgUiProtocol::Core::Types::Role Represents the possible roles a message sender can have.

RunAgentInput

AgUiProtocol::Core::Types::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.

Tool

AgUiProtocol::Core::Types::Tool Defines a tool that can be called by an agent.

ToolCall

AgUiProtocol::Core::Types::ToolCall Tool calls are embedded within assistant messages.

FunctionCall

AgUiProtocol::Core::Types::FunctionCall Function invocation descriptor used inside tool calls.

VideoInputContent

AgUiProtocol::Core::Types::VideoInputContent Represents a video content fragment inside a multimodal user message.

Message Types

The SDK includes several message types that represent different kinds of messages in the system.

ActivityMessage

AgUiProtocol::Core::Types::ActivityMessage Represents structured activity progress emitted between chat messages. ActivityMessage intentionally does NOT inherit from BaseMessage because its content is a structured Hash rather than text/multimodal, which is incompatible with BaseMessage#content’s type. It still appears alongside other messages in the stream but is modeled as its own shape.

AssistantMessage

AgUiProtocol::Core::Types::AssistantMessage Represents a message from an assistant.

BinaryInputContent

AgUiProtocol::Core::Types::BinaryInputContent Represents binary data such as images, audio, or files.
Validation: At least one of id, url, or data must be provided.

DeveloperMessage

AgUiProtocol::Core::Types::DeveloperMessage Represents a message from a developer.

SystemMessage

AgUiProtocol::Core::Types::SystemMessage Represents a system message.

TextInputContent

AgUiProtocol::Core::Types::TextInputContent Represents a text fragment inside a multimodal user message.

ToolMessage

AgUiProtocol::Core::Types::ToolMessage Tool result message.

UserMessage

AgUiProtocol::Core::Types::UserMessage Represents a message from a user.

State

State is represented as Any. The state type is flexible and can hold any data structure needed by the agent implementation.