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

InterfaceUse whenComponents
AG-UIA web or mobile frontend speaks the Agent-User Interaction ProtocolAgents, teams
SlackTeams use an agent in channels, direct messages, and threadsAgents, teams, workflows
TelegramUsers reach an agent through direct messages or group chatsAgents, teams, workflows
WhatsAppCustomers interact with an agent through WhatsApp BusinessAgents, teams, workflows
A2AOther agent systems call AgentOS through the Agent-to-Agent ProtocolAgents, 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.

ResponsibilityBehavior
Request handlingParse platform events or protocol messages into Agno run input
Session routingMap the external user and conversation to AgentOS user and session IDs
StreamingTranslate run events into the format supported by the client
MediaPass supported files, images, audio, and video to the component
ResponsesReturn 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.

InterfaceRequest verification
SlackSlack signing secret
TelegramTelegram webhook secret token
WhatsAppMeta webhook signature using the WhatsApp app secret
AG-UIAgentOS bearer authentication and run scopes when configured
A2AAgentOS 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.

Next Steps

TaskGuide
Connect a product frontendAG-UI
Build a workplace agentSlack
Serve a messaging botTelegram
Reach customers on WhatsAppWhatsApp
Expose agents to other agent systemsA2A