Interfaces
Expose agents, teams, and workflows through AI frontends, messaging platforms, and agent protocols.
Interfaces expose AgentOS applications through AI frontends, messaging platforms, and agent protocols. AG-UI, Slack, Telegram, WhatsApp, and A2A are available as interfaces.
from agno.agent import Agent
from agno.models.openai import OpenAIResponses
from agno.os import AgentOS
from agno.os.interfaces.slack import Slack
support_agent = Agent(
id="support-agent",
model=OpenAIResponses(id="gpt-5.4"),
)
agent_os = AgentOS(
agents=[support_agent],
interfaces=[Slack(agent=support_agent)],
)
app = agent_os.get_app()The Slack interface mounts its webhook routes on the AgentOS application and routes each conversation to support_agent.
Choose an Interface
| Interface | Use when | Components |
|---|---|---|
| AG-UI | A web or mobile frontend speaks the Agent-User Interaction Protocol | Agents, teams |
| Slack | Teams use an agent in channels, direct messages, and threads | Agents, teams, workflows |
| Telegram | Users reach an agent through direct messages or group chats | Agents, teams, workflows |
| Customers interact with an agent through WhatsApp Business | Agents, teams, workflows | |
| A2A | Other agent systems call AgentOS through the Agent-to-Agent Protocol | Agents, teams, workflows |
Discord uses the standalone DiscordClient integration from agno.integrations.discord. See the Discord guide.
How Interfaces Work
Each interface mounts a FastAPI router on AgentOS and translates between the external protocol and an Agent, Team, or Workflow.
| Responsibility | Behavior |
|---|---|
| Request handling | Parse platform events or protocol messages into Agno run input |
| Session routing | Map the external user and conversation to AgentOS user and session IDs |
| Streaming | Translate run events into the format supported by the client |
| Media | Pass supported files, images, audio, and video to the component |
| Responses | Return text, generated media, progress, and human-in-the-loop state through the interface |
Support varies by interface. Use each interface guide for its events, media types, and response behavior.
Authentication
Messaging platforms authenticate their own webhook routes. Protocol interfaces follow the AgentOS authentication mode and scope mappings.
| Interface | Request verification |
|---|---|
| Slack | Slack signing secret |
| Telegram | Telegram webhook secret token |
| Meta webhook signature using the WhatsApp app secret | |
| AG-UI | AgentOS bearer authentication and run scopes when configured |
| A2A | AgentOS bearer authentication and resource scopes when configured |
The regular AgentOS REST routes continue to use the runtime's configured authentication and authorization.
Mount Multiple Interfaces
One AgentOS application can expose the same component through several interfaces:
from agno.os.interfaces.agui import AGUI
from agno.os.interfaces.slack import Slack
agent_os = AgentOS(
agents=[support_agent],
interfaces=[
AGUI(agent=support_agent),
Slack(agent=support_agent),
],
)
app = agent_os.get_app()The agent keeps one implementation while each interface owns protocol handling, routing, and response formatting.