Skip to main content
Each channel declares what it supports — live message edits, reactions, typing indicators, and text limits — so engines adapt automatically without platform-specific agent code.
The user receives a reply; channel capabilities tell PraisonAI how to stream, react, and chunk on that platform.

How It Works

Quick Start

1

Create your agent

2

Start bots on each channel

Capability Reference

Per-Channel Matrix

Interactive widget capabilities (buttons, selects, native rendering shape) are governed separately by PresentationLimits — see Bot Presentations and Message Presentation.

Table & Chart Support

Native table and chart rendering is governed by PresentationLimits and defaults to off on every channel — see Table & Chart Blocks. A channel author opts in by returning an updated PresentationLimits (e.g. supports_tables=True) from its capability method. The max_table_rows and max_table_cols clamps bound the size a native renderer receives; when a flag is False, blocks degrade deterministically to a markdown table or text summary.

Graceful Degradation

DraftStreamer, StatusReactions, and TypingManager inspect bot.capabilities and silently no-op when a feature is unsupported — WhatsApp still delivers a single final message; Email skips reactions entirely.

Custom Adapters

Best Practices

Turn on streaming=True and status_reactions=True on every bot; DraftStreamer, StatusReactions, and TypingManager no-op automatically when a channel lacks support.
Discord caps at 2000 characters, Telegram at 4096. Long replies are split or truncated — design agent output accordingly rather than assuming unlimited length.
Implement the capabilities property on new platform bots so rate limits (edit_rate_limit, reaction_rate_limit) and feature flags propagate correctly.
Verify WhatsApp and Email bots still deliver a final message when live edits and reactions are unavailable — users should never see a silent failure.

Streaming Replies

Live draft message edits

Status Reactions

Run-state emoji reactions

Agent Reactions

Agent-driven emoji reactions via send_message

Gateway Threads

Open native platform threads under a channel

Typing Indicators

Keepalive typing indicators

Messaging Bots

Full bot setup guide