AG-UI protocol integration for Agent Framework, enabling seamless integration with AG-UI's web interface and streaming protocol.
pip install agent-framework-ag-uifrom fastapi import FastAPI
from agent_framework import ChatAgent
from agent_framework.azure import AzureOpenAIChatClient
from agent_framework.ag_ui import add_agent_framework_fastapi_endpoint
# Create your agent
agent = ChatAgent(
name="my_agent",
instructions="You are a helpful assistant.",
chat_client=AzureOpenAIChatClient(
endpoint="https://your-resource.openai.azure.com/",
deployment_name="gpt-4o-mini",
api_key="your-api-key",
),
)
# Create FastAPI app and add AG-UI endpoint
app = FastAPI()
add_agent_framework_fastapi_endpoint(app, agent, "/")
# Run with: uvicorn main:app --reloadimport asyncio
from agent_framework import TextContent
from agent_framework.ag_ui import AGUIChatClient
async def main():
async with AGUIChatClient(endpoint="http://localhost:8000/") as client:
# Stream responses
async for update in client.get_streaming_response("Hello!"):
for content in update.contents:
if isinstance(content, TextContent):
print(content.text, end="", flush=True)
print()
asyncio.run(main())The AGUIChatClient supports:
- Streaming and non-streaming responses
- Hybrid tool execution (client-side + server-side tools)
- Automatic thread management for conversation continuity
- Integration with
ChatAgentfor client-side history management
- Getting Started Tutorial - Step-by-step guide to building AG-UI servers and clients
- Server setup with FastAPI
- Client examples using
AGUIChatClient - Hybrid tool execution (client-side + server-side)
- Thread management and conversation continuity
- Examples - Complete examples for AG-UI features
This integration supports all 7 AG-UI features:
- Agentic Chat: Basic streaming chat with tool calling support
- Backend Tool Rendering: Tools executed on backend with results streamed to client
- Human in the Loop: Function approval requests for user confirmation before tool execution
- Agentic Generative UI: Async tools for long-running operations with progress updates
- Tool-based Generative UI: Custom UI components rendered on frontend based on tool calls
- Shared State: Bidirectional state sync between client and server
- Predictive State Updates: Stream tool arguments as optimistic state updates during execution
The package uses a clean, orchestrator-based architecture:
- AgentFrameworkAgent: Lightweight wrapper that delegates to orchestrators
- Orchestrators: Handle different execution flows (default, human-in-the-loop, etc.)
- Confirmation Strategies: Domain-specific confirmation messages (extensible)
- AgentFrameworkEventBridge: Converts Agent Framework events to AG-UI events
- Message Adapters: Bidirectional conversion between AG-UI and Agent Framework message formats
- FastAPI Endpoint: Streaming HTTP endpoint with Server-Sent Events (SSE)
- New to AG-UI? Start with the Getting Started Tutorial
- Want to see examples? Check out the Examples for AG-UI features
MIT