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.

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

Typing Indicators

Keepalive typing indicators

Messaging Bots

Full bot setup guide