Overview
The Eliza plugin system is a comprehensive extension mechanism that allows developers to add functionality to agents through a well-defined interface. This analysis examines the complete plugin architecture by analyzing the source code and comparing it with the documentation.Core Plugins
ElizaOS includes two essential core plugins that provide foundational functionality:Bootstrap Plugin
The core message handler and event system for ElizaOS agents. Provides essential functionality for message processing, knowledge management, and basic agent operations.
SQL Plugin
Database integration and management for ElizaOS. Features automatic schema migrations, multi-database support, and a sophisticated plugin architecture.
1. Complete Plugin Interface
Based on/Users/studio/Documents/GitHub/eliza/packages/core/src/types/plugin.ts, the full Plugin interface includes:
2. Action, Provider, and Evaluator Interfaces
Action Interface
From/Users/studio/Documents/GitHub/eliza/packages/core/src/types/components.ts:
Provider Interface
Evaluator Interface
3. Plugin Initialization Lifecycle
Based on/Users/studio/Documents/GitHub/eliza/packages/core/src/runtime.ts, the initialization process:
-
Plugin Registration (
registerPluginmethod):- Validates plugin has a name
- Checks for duplicate plugins
- Adds to active plugins list
- Calls plugin’s
init()method if present - Handles configuration errors gracefully
-
Component Registration Order:
4. Service System Integration
From/Users/studio/Documents/GitHub/eliza/packages/core/src/types/service.ts:
Service Abstract Class
Service Types
The system includes predefined service types:- TRANSCRIPTION, VIDEO, BROWSER, PDF
- REMOTE_FILES (AWS S3)
- WEB_SEARCH, EMAIL, TEE
- TASK, WALLET, LP_POOL, TOKEN_DATA
- DATABASE_MIGRATION
- PLUGIN_MANAGER, PLUGIN_CONFIGURATION, PLUGIN_USER_INTERACTION
5. Route Definitions for HTTP Endpoints
From the Plugin interface:6. Event System Integration
From/Users/studio/Documents/GitHub/eliza/packages/core/src/types/events.ts:
Event Types
Standard events include:- World events: WORLD_JOINED, WORLD_CONNECTED, WORLD_LEFT
- Entity events: ENTITY_JOINED, ENTITY_LEFT, ENTITY_UPDATED
- Room events: ROOM_JOINED, ROOM_LEFT
- Message events: MESSAGE_RECEIVED, MESSAGE_SENT, MESSAGE_DELETED
- Voice events: VOICE_MESSAGE_RECEIVED, VOICE_MESSAGE_SENT
- Run events: RUN_STARTED, RUN_ENDED, RUN_TIMEOUT
- Action/Evaluator events: ACTION_STARTED/COMPLETED, EVALUATOR_STARTED/COMPLETED
- Model events: MODEL_USED
Plugin Event Handlers
7. Database Adapter Plugins
From/Users/studio/Documents/GitHub/eliza/packages/core/src/types/database.ts:
The IDatabaseAdapter interface is extensive, including methods for:
- Agents, Entities, Components
- Memories (with embeddings)
- Rooms, Participants
- Relationships
- Tasks
- Caching
- Logs

