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.

Message Types

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

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.