> ## Documentation Index
> Fetch the complete documentation index at: https://praison.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Presentation Renderer Protocol • AI Agent SDK

> PresentationRendererProtocol: Contract a channel presentation renderer implements.

# PresentationRendererProtocol

> Defined in the [**protocols**](https://praison.ai/docs/sdk/reference/praisonaiagents/modules/protocols.md) module.

AI Agent

Contract a channel presentation renderer implements.

A renderer converts a portable :class:`MessagePresentation` into a native,
platform-specific payload (Telegram inline keyboard, Slack blocks, …). It
should run `adapt_presentation` against its own :meth:`get_limits` first
so capability-driven degradation is applied uniformly.

This protocol is the core seam that lets *any* channel — built-in or a
pip-installed plugin — register a native renderer via
`register_presentation_renderer`, mirroring how a channel already
contributes config via :class:`ChannelDescriptor`. Heavy renderer
implementations still live in `praisonai-bot`; only the contract and the
registry live in core.

## Methods

> [card] [get\_limits()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/PresentationRendererProtocol-get_limits.md)
>
> Return this channel's capability limits.

> [card] [render()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/PresentationRendererProtocol-render.md)
>
> Render *presentation* into a native, platform-specific payload.

## Source

> [card] [View on GitHub](https://github.com/MervinPraison/PraisonAI/blob/main/src/praisonai-agents/praisonaiagents/bots/protocols.py#L1404)
>
> `praisonaiagents/bots/protocols.py` at line 1404


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.