plugins • AI Agent SDK
Plugin Module for PraisonAI Agents.
plugins
AI Agent
Plugin Module for PraisonAI Agents.
Provides dynamic plugin loading and hook-based extension system.
Features:
- Dynamic plugin discovery and loading
- Hook-based extension points
- Protocol-driven plugin interfaces
- Built-in plugins (logging, metrics)
- Plugin SDK for easy plugin development
Folder Structure:
- plugins/sdk/ – Plugin SDK (base classes, decorators)
- plugins/builtin/ – Built-in plugins (logging, metrics)
- plugins/protocols.py – Plugin protocols for type safety
Usage:
from praisonaiagents.plugins import PluginManager, Plugin, PluginHook
# Create plugin manager
manager = PluginManager()
# Load plugins from directory
manager.load_from_directory("./plugins")
# Use built-in plugins
from praisonaiagents.plugins.builtin import LoggingPlugin, MetricsPlugin
manager.register(LoggingPlugin())
# Use plugin SDK
from praisonaiagents.plugins.sdk import plugin
@plugin(name="my_plugin", hooks=[PluginHook.BEFORE_TOOL])
def my_plugin_func(hook_type, *args, **kwargs):
return args[0] if args else NoneImport
from praisonaiagents import pluginsFunctions
maybe_enable_from_config()
Enable plugins once per process when config or env requests it.
enable()Enable the plugin system.
disable()Disable plugins.
list_plugins()List all discovered plugins.
is_enabled()Check if plugins are enabled.
get_plugin_registry()Return a truthful, unified view of all discoverable plugins.
Constants
| Name | Value |
|---|---|
_LAZY_IMPORTS | {'PluginManager': (f'{__name__}.manager', 'PluginManager'), 'get_plugin_manager': (f'{__name__}.manager', 'get_plugin_manager'), 'Plugin': (f'{__name__}.plugin', 'Plugin'), 'PluginHook': (f'{__name__}... |