Bot platform adapters now ship in the
praisonai-bot package. praisonai bot serve still works exactly as documented here; for a standalone install see praisonai-bot Migration.Quick Start
1
Enable with one flag
2
Customise emoji via dict
3
Full control with StatusConfig
How It Works
The user sends a message and watches a single emoji on that message move through each run stage.Stall Signals
When the agent falls quiet for too long — a slow LLM or a stuck tool — the same reaction slot switches to ⏳ afterstall_soft_s (default 20 s) and ⚠️ after stall_hard_s (default 60 s), and any real progress clears the signal immediately.
Label Fallback (channels without reactions)
On channels wherecapabilities["reactions"] is False — WhatsApp, Email, and Slack in “label” mode — the same phase state machine renders as a single status label the bot edits in place (queued → thinking… → using a tool… → done) instead of an emoji reaction, and the adapter picks the mode automatically from the channel’s capabilities with no extra config.
Configuration Options
Reactions auto-skip on channels where
capabilities["reactions"] is False (WhatsApp, Email). On Slack, Unicode emoji map to Slack :text_name: form (e.g. 🤔 → thinking_face).Best Practices
Use distinct emoji for tool vs thinking
Use distinct emoji for tool vs thinking
Helps users tell when an external API call is in progress.
Leave immediate_terminal enabled
Leave immediate_terminal enabled
Users see done/error states instantly without debounce delay.
Tune stall thresholds to your longest reasonable tool call
Tune stall thresholds to your longest reasonable tool call
If a legitimate tool takes 40 s (web scraping, image generation), raise
stall_soft_s to 45–60 s so users don’t see ⏳ while everything is still healthy.Trust the automatic fallback on Email / WhatsApp
Trust the automatic fallback on Email / WhatsApp
Reactions silently degrade to a status label edit — no per-channel code required.
Custom integrators: use RunStatusController directly
Custom integrators: use RunStatusController directly
See Run Status Controller for the low-level API.
Related
Channel Capabilities
Which channels support reactions
Typing Indicators
Complementary typing feedback
Streaming Replies
Live token-by-token responses

