Skip to content

Plugin Discovery

XYBEROS uses Python entry points for plugin auto-discovery. All pluggable modules are registered in pyproject.toml under entry-point groups.

Entry Point Groups

Group What it discovers Count
xyberos.processors Perception processors 10
xyberos.providers Language, entities, safety, etc. 6
xyberos.memory Memory tier providers 6
xyberos.knowledge Knowledge providers 4
xyberos.embeddings Embedding models 1
xyberos.llm_backends LLM backends 9
xyberos.agents Specialized agents 4
xyberos.skills Built-in skills 3
xyberos.strategies Reasoning + decision strategies 16
xyberos.storage Storage providers 2
xyberos.database Database providers 2
xyberos.tools Pluggable tools 4
xyberos.security Security providers 2

Registering a Custom Plugin

In your package's pyproject.toml:

[project.entry-points."xyberos.tools"]
my_tool = "my_package:MyTool"

[project.entry-points."xyberos.skills"]
my_skill = "my_package:MySkill"

Then instantiate and they'll be auto-discovered:

from xyberos.tools import ToolManager

manager = ToolManager()  # auto-discovers my_tool
tool = manager.get_tool("my_tool")

The Provider Pattern

Every plugin extends Provider from xyberos.common.provider:

from xyberos.common.provider import Provider


class MyProvider(Provider):
    @property
    def name(self) -> str:
        return "my_provider"

    @property
    def priority(self) -> int:
        return 10  # Higher = runs first

    @property
    def enabled(self) -> bool:
        return True