You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
New messengers are Python modules under praisonai/bots/ registered in _BUILTIN_PLATFORMS or via register_platform() at runtime — no packaged plugin manifest, versioned channel package format, or marketplace flow comparable to OpenClaw’s channel-plugin story in this repo.
Gap type
Extensibility model — contributor path is edit core tree or imperativeregister_platform, not “drop in channel plugin package.”
Takeaway: Adding a new first-class channel today implies shipping a new module under praisonai.bots.* and editing_BUILTIN_PLATFORMS (or relying on register_platform at process start — see below).
Takeaway: This is a process-local registry hook — powerful, but not equivalent to OpenClaw’s channel plugin SDK (manifest, entrypoints, install UX, versioning, isolation). There is noplugins/ channel bundle layout in-tree for third parties.
No subdirectory such as plugins/, third_party_channels/, or dynamic wheel-loading samples in this trace.
5. Architecture (Mermaid)
OpenClaw (conceptual — channel plugins)
flowchart LR
H[Channel hub / SDK]
P1[Plugin pkg A]
P2[Plugin pkg B]
H --> P1
H --> P2
Loading
PraisonAI (this repo)
flowchart TB
REG[_BUILTIN_PLATFORMS dict]
MOD[praisonai.bots.* modules]
CUST[register_platform at runtime]
REG --> MOD
CUST --> REG
Loading
Gap:No third box for installable channel plugin packages with stable ABI documented like OpenClaw.
6. Comparison matrix
Dimension
OpenClaw (documented)
PraisonAI (this repo)
Add channel
Plugin SDK / bundles
New module in bots/ + registry edit orregister_platform
Discovery
Community / registry story
Code + docs
Versioning
Plugin versioning
Praison release cadence
Isolation
Plugin boundary
Shared process / imports
7. MCP / webhooks (related, not duplicate)
Praison can integrate external systems via MCP and webhooks elsewhere in the stack — this issue is only about in-process channel adapter parity with OpenClaw’s channel plugin model. MCP is a different integration style.
8. Suggested engineering directions
Wontfix: Position MCP + webhooks as the extension path; close with rationale.
[Gap] Channels ship in-tree + register_platform(), not installable plugin packs — vs OpenClaw channel SDK
Executive summary
praisonai/bots/registered in_BUILTIN_PLATFORMSor viaregister_platform()at runtime — no packaged plugin manifest, versioned channel package format, or marketplace flow comparable to OpenClaw’s channel-plugin story in this repo.register_platform, not “drop in channel plugin package.”1. Built-in platforms — static dictionary + lazy import
File:
src/praisonai/praisonai/bots/_registry.pyResolution loads the module by string path:
Takeaway: Adding a new first-class channel today implies shipping a new module under
praisonai.bots.*and editing_BUILTIN_PLATFORMS(or relying onregister_platformat process start — see below).2. Runtime registration API (no package format)
File:
src/praisonai/praisonai/bots/_registry.pyTakeaway: This is a process-local registry hook — powerful, but not equivalent to OpenClaw’s channel plugin SDK (manifest, entrypoints, install UX, versioning, isolation). There is no
plugins/channel bundle layout in-tree for third parties.3. Public package surface — fixed lazy exports
File:
src/praisonai/praisonai/bots/__init__.py__getattr__hard-codes imports for TelegramBot, DiscordBot, SlackBot, WhatsAppBot, EmailBot, AgentMailBot, Bot, BotOS, approval helpers (__init__.py:25–65).__all__lists the same concrete names (__init__.py:68–73).Takeaway: The documented ergonomic API is tied to known bots — not “
load_plugin('acme-slack-fork')”.4. Directory inventory (in-tree channels)
Under
src/praisonai/praisonai/bots/(authoring snapshot):telegram.py,discord.py,slack.py,whatsapp.py,email.py,agentmail.pybot.py,botos.py,_registry.py, shared_*.pyhelpersNo subdirectory such as
plugins/,third_party_channels/, or dynamic wheel-loading samples in this trace.5. Architecture (Mermaid)
OpenClaw (conceptual — channel plugins)
PraisonAI (this repo)
Gap: No third box for installable channel plugin packages with stable ABI documented like OpenClaw.
6. Comparison matrix
bots/+ registry edit orregister_platform7. MCP / webhooks (related, not duplicate)
Praison can integrate external systems via MCP and webhooks elsewhere in the stack — this issue is only about in-process channel adapter parity with OpenClaw’s channel plugin model. MCP is a different integration style.
8. Suggested engineering directions
praisonai-channel-*.whlmanifest (name, entrypoint class, config schema) +praisonai bots plugin install.importlib.metadata) behind feature flag.9. Acceptance criteria
10. Out of scope
Appendix — files cited
src/praisonai/praisonai/bots/_registry.pyregister_platform+resolve_adaptersrc/praisonai/praisonai/bots/__init__.py__all__src/praisonai/praisonai/bots/*.pyEvidence from PraisonAI
src/praisonai/; re-verify after refactors.