> ## Documentation Index
> Fetch the complete documentation index at: https://praison.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# plugins • AI Agent SDK

> Plugin Module for PraisonAI Agents.

# plugins

<Badge color="blue">AI Agent</Badge>

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:

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
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 None
```

## Import

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import plugins
```

## Functions

<CardGroup cols={2}>
  <Card title="maybe_enable_from_config()" icon="function" href="../functions/maybe_enable_from_config">
    Enable plugins once per process when config or env requests it.
  </Card>

  <Card title="enable()" icon="function" href="../functions/enable">
    Enable the plugin system.
  </Card>

  <Card title="disable()" icon="function" href="../functions/disable">
    Disable plugins.
  </Card>

  <Card title="list_plugins()" icon="function" href="../functions/list_plugins">
    List all discovered plugins.
  </Card>

  <Card title="is_enabled()" icon="function" href="../functions/is_enabled">
    Check if plugins are enabled.
  </Card>

  <Card title="get_plugin_registry()" icon="function" href="../functions/get_plugin_registry">
    Return a truthful, unified view of all discoverable plugins.
  </Card>
</CardGroup>

### 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__}...` |

***

## Related Documentation

<CardGroup cols={2}>
  <Card title="Plugins Feature" icon="plug" href="/docs/docs/features/plugins" />
</CardGroup>
