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: