Four-Layer Package Architecture
Since v4.6.122+, PraisonAI ships as four independently-installable PyPI packages. Dependencies flow upward — each layer only knows about the layers below it:praisonaiagents alone for pure SDK embedding, praisonai-code for the terminal CLI without gateway/bot features, praisonai-bot[gateway,bot] for a standalone gateway + channel bots without the wrapper, or praisonai for the full stack. Old wrapper imports (praisonai.bots, praisonai.gateway, praisonai.scheduler.executor) still resolve via alias_package shims — no code change required to migrate.
Protocol vs ABC
Bot and gateway protocols live in
praisonaiagents; their implementations live in praisonai-bot, not the wrapper.

