This release is a pre-release and may not be stable for production use.
ag-ui-protocol
Python SDK for the Agent-User Interaction (AG-UI) Protocol.
ag-ui-protocol provides Python developers with strongly-typed data structures and event encoding for building AG-UI compatible agent servers. Built on Pydantic for robust validation and automatic camelCase serialization for seamless frontend integration.
Installation
pip install ag-ui-protocol
poetry add ag-ui-protocol
pipenv install ag-ui-protocol
Features
- 🐍 Python-native – Idiomatic Python APIs with full type hints and validation
- 📋 Pydantic models – Runtime validation and automatic JSON serialization
- 🔄 Streaming events – 16 core event types for real-time agent communication
- ⚡ High performance – Efficient event encoding for Server-Sent Events
Quick example
from ag_ui.core import TextMessageContentEvent, EventType
from ag_ui.encoder import EventEncoder
# Create a streaming text event
event = TextMessageContentEvent(
type=EventType.TEXT_MESSAGE_CONTENT,
message_id="msg_123",
delta="Hello from Python!"
)
# Encode for HTTP streaming
encoder = EventEncoder()
sse_data = encoder.encode(event)
# Output: data: {"type":"TEXT_MESSAGE_CONTENT","messageId":"msg_123","delta":"Hello from Python!"}\n\n
Multimodal user message
from ag_ui.core import UserMessage, TextInputContent, ImageInputPart, InputContentUrlSource
message = UserMessage(
id="user-123",
content=[
TextInputContent(text="Please describe this image"),
ImageInputPart(
source=InputContentUrlSource(
value="https://example.com/cat.png",
mime_type="image/png",
)
),
],
)
payload = message.model_dump(by_alias=True)
# {"id": "user-123", "role": "user", "content": [...]}
BinaryInputContentis deprecated. Use modality-specific input parts (ImageInputPart,AudioInputPart,VideoInputPart,DocumentInputPart) withInputContentDataSourceorInputContentUrlSource.
Packages
ag_ui.core– Types, events, and data models for AG-UI protocolag_ui.encoder– Event encoding utilities for HTTP streaming
Documentation
- Concepts & architecture:
docs/concepts - Full API reference:
docs/sdk/python
Contributing
Bug reports and pull requests are welcome! Please read our contributing guide first.
License
MIT © 2025 AG-UI Protocol Contributors
Release files for ag-ui-protocol 0.1.20.dev1785518626
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ag_ui_protocol-0.1.20.dev1785518626.tar.gz | 11.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ag_ui_protocol-0.1.20.dev1785518626-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 26.8 kB
Release files / ag_ui_protocol-0.1.20.dev1785518626.tar.gz
| Download URL | ag_ui_protocol-0.1.20.dev1785518626.tar.gz |
|---|---|
| Size | 11.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7f7fcf9257a87f12a86accf9e1d7a08b87875cc7cc196d7d93a1189ec5c2f13e
|
|
BLAKE2b-256 checksum How to use checksums |
19a07450f35054d49f09e81c17bb0d20439e01c8eda838522275b54bcf3f3253
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / ag_ui_protocol-0.1.20.dev1785518626-py3-none-any.whl
| Download URL | ag_ui_protocol-0.1.20.dev1785518626-py3-none-any.whl |
|---|---|
| Size | 15.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0043273ab1e966de1e8ee7fb0d302d868bd91acc3021c443fbbcfe13b649b207
|
|
BLAKE2b-256 checksum How to use checksums |
116b77b026df2ab8ff1e6d8f96a4b9156d215486107df132e5568aa2da5afc93
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|