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.
TierPackageInstallOwns
1praisonaiagentspip install praisonaiagentsAgent, tools, memory, hooks, protocols
2praisonai-codepip install praisonai-codeTerminal CLI, runtime, LLM, tool resolution
3praisonaipip install praisonaiGateway, bots, framework adapters, train, serve
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

Commandpraisonai-code onlyFull praisonai
praisonai-code run "prompt"YesYes
praisonai gateway …NoYes
praisonai run --file agents.yaml --framework crewaiNoYes

Package Hierarchy (legacy view)


Core SDK Modules

Purpose: Agent class and execution
FileDescription
agent.pyMain Agent class (6549 LOC)
protocols.pyAgentProtocol, RunnableAgentProtocol
handoff.pyAgent-to-agent handoff
autonomy.pyAutonomous execution
Purpose: Tool SDK and registry
FileDescription
base.pyBaseTool class
decorator.py@tool decorator
registry.pyToolRegistry
protocols/tool_protocol.pyToolProtocol
Purpose: Memory persistence
FileDescription
protocols.pyMemoryProtocol, DeletableMemoryProtocol
memory.pyMemory implementation
file_memory.pyFile-based adapter
Purpose: Hook system and middleware
FileDescription
events.pyHook event types
registry.pyHook registration
middleware.pyMiddleware chains
Purpose: Multi-agent coordination
FileDescription
workflows.pyWorkflow engine
PatternsRoute, Parallel, Loop, Repeat
Purpose: Event bus for pub/sub
FileDescription
bus.pyEventBus class
event.pyEvent types

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

praisonai-package/src/praisonai-agents/
├── praisonaiagents/
│   ├── agent/         # Agent execution
│   ├── agents/        # Multi-agent (Agents class)
│   ├── tools/         # Tool SDK
│   ├── memory/        # Memory adapters
│   ├── hooks/         # Hook system
│   ├── workflows/     # Workflow engine
│   ├── bus/           # Event bus
│   ├── policy/        # Policy engine
│   ├── knowledge/     # RAG/Knowledge
│   ├── context/       # Context management
│   ├── trace/         # Tracing
│   └── eval/          # Evaluation
├── tests/             # Test suite
└── AGENTS.md          # This guide

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
class MemoryProtocol(Protocol):
    def store(self, text: str) -> str: ...
    def search(self, query: str) -> List: ...
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

WhatLocation
Agent classpraisonaiagents/agent/agent.py
Tool decoratorpraisonaiagents/tools/decorator.py
BaseToolpraisonaiagents/tools/base.py
Memory protocolspraisonaiagents/memory/protocols.py
Hook eventspraisonaiagents/hooks/events.py
Event buspraisonaiagents/bus/bus.py
Workflow enginepraisonaiagents/workflows/workflows.py
Policy enginepraisonaiagents/policy/engine.py
Package exportspraisonaiagents/__init__.py
AGENTS guidepraisonai-agents/AGENTS.md