Skip to main content

Three-Tier Package Model (C7.1)

Current release: v4.6.110 · praisonaiagents 1.6.110 · praisonai-code 0.0.8 · praisonai 4.6.110
Dependency rule: praisonai-code does not declare praisonai in pyproject.toml. Standalone pip install praisonai-code runs run/chat/code without the wrapper. Optional wrapper features use lazy imports via _wrapper_bridge only.
Publish order: praisonaiagentspraisonai-codepraisonai

C7.1 Boundaries

Full boundary spec, invocation matrix, sign-off

C8+ Backlog

Future package splits and import reduction plan

CLI routing


Package Hierarchy (legacy view)


Core SDK Modules

Purpose: Agent class and execution
Purpose: Tool SDK and registry
Purpose: Memory persistence
Purpose: Hook system and middleware
Purpose: Multi-agent coordination
Purpose: Event bus for pub/sub

Data Flow


Extension Points

Tools

Add capabilities via @tool decorator or BaseTool

Hooks

Intercept events with before_tool, after_tool, etc.

Memory

Custom adapters implementing MemoryProtocol

Workflows

Multi-agent patterns with Route, Parallel, Loop

Repository Map


Design Methodology

1

Three Tiers

praisonaiagents (core) → praisonai-code (terminal CLI) → praisonai (wrapper). Code tier must not PyPI-depend on the wrapper.
2

Protocol First

Define abstract interfaces before implementations
3

Lightweight Core

Keep praisonaiagents minimal - protocols, hooks, base classes only
4

Heavy in Wrapper

Gateway, bots, framework adapters, and heavy integrations stay in praisonai
5

Optional Dependencies

Use pip install praisonaiagents[memory] for extras
6

Lazy Loading

Import heavy deps inside functions, not at module level

Key Files Reference