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 ofid,url, ordatamust 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.