Skip to main content

Package Hierarchy


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


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

Protocol First

Define abstract interfaces before implementations
class MemoryProtocol(Protocol):
    def store(self, text: str) -> str: ...
    def search(self, query: str) -> List: ...
2

Lightweight Core

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

Heavy in Wrapper

Database integrations, CLI, UI go in praisonai wrapper
4

Optional Dependencies

Use pip install praisonaiagents[memory] for extras
5

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