Messages
Understanding message structure and communication in AG-UI
Messages
Messages form the backbone of communication in the AG-UI protocol. They represent the conversation history between users and AI agents, and provide a standardized way to exchange information regardless of the underlying AI service being used.
Message Structure
AG-UI messages follow a vendor-neutral format, ensuring compatibility across different AI providers while maintaining a consistent structure. This allows applications to switch between AI services (like OpenAI, Anthropic, or custom models) without changing the client-side implementation.
The basic message structure includes:
Message Types
AG-UI supports several message types to accommodate different participants in a conversation:
User Messages
Messages from the end user to the agent:
Assistant Messages
Messages from the AI assistant to the user:
System Messages
Instructions or context provided to the agent:
Tool Messages
Results from tool executions:
Developer Messages
Internal messages used for development or debugging:
Vendor Neutrality
AG-UI messages are designed to be vendor-neutral, meaning they can be easily mapped to and from proprietary formats used by various AI providers:
This abstraction allows AG-UI to serve as a common interface regardless of the underlying AI service.
Message Synchronization
Messages can be synchronized between client and server through two primary mechanisms:
Complete Snapshots
The MESSAGES_SNAPSHOT
event provides a complete view of all messages in a
conversation:
This is typically used:
- When initializing a conversation
- After connection interruptions
- When major state changes occur
- To ensure client-server synchronization
Streaming Messages
For real-time interactions, new messages can be streamed as they’re generated:
-
Start a message: Indicate a new message is being created
-
Stream content: Send content chunks as they become available
-
End a message: Signal the message is complete
This streaming approach provides a responsive user experience with immediate feedback.
Tool Integration in Messages
AG-UI messages elegantly integrate tool usage, allowing agents to perform actions and process their results:
Tool Calls
Tool calls are embedded within assistant messages:
Example assistant message with tool calls:
Tool Results
Results from tool executions are represented as tool messages:
This creates a clear chain of tool usage:
- Assistant requests a tool call
- Tool executes and returns a result
- Assistant can reference and respond to the result
Streaming Tool Calls
Similar to text messages, tool calls can be streamed to provide real-time visibility into the agent’s actions:
-
Start a tool call:
-
Stream arguments:
-
End a tool call:
This allows frontends to show tools being invoked progressively as the agent constructs its reasoning.
Practical Example
Here’s a complete example of a conversation with tool usage:
Conclusion
The message structure in AG-UI enables sophisticated conversational AI experiences while maintaining vendor neutrality. By standardizing how messages are represented, synchronized, and streamed, AG-UI provides a consistent way to implement interactive human-agent communication regardless of the underlying AI service.
This system supports everything from simple text exchanges to complex tool-based workflows, all while optimizing for both real-time responsiveness and efficient data transfer.