Skip to main content

Overview

The elizaOS 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 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.

Knowledge Plugin

Advanced knowledge base and RAG system for elizaOS. Provides semantic search, contextual embeddings, and intelligent document processing.

DeFi Plugins

Blockchain and DeFi integrations for Web3 functionality:

EVM Plugin

Multi-chain EVM support with token transfers, swaps, bridging, and governance across 30+ networks including Ethereum, Base, Arbitrum, and more.

Solana Plugin

High-performance Solana blockchain integration with SOL/SPL transfers, Jupiter swaps, and real-time portfolio tracking.

Platform Integrations

Connect your agent to popular platforms:

Discord

Full Discord integration with voice, commands, and rich interactions.

Telegram

Telegram bot functionality with inline keyboards and media support.

Twitter

Twitter/X integration for posting, replying, and timeline management.

Farcaster

Farcaster social network integration with casting and engagement.

LLM Providers

Choose from various language model providers:

OpenAI

GPT-4, GPT-3.5, and other OpenAI models.

Anthropic

Claude 3 and other Anthropic models.

OpenRouter

OpenRouter models for advanced routing and customization.

Community Plugin Registry

Explore the complete collection of community-contributed plugins in our dedicated registry.

Browse Plugin Registry

Access the full plugin registry with real-time updates, detailed plugin information, version tracking, and easy installation instructions for all v1 compatible elizaOS plugins.

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:
  1. Plugin Registration (registerPlugin method):
    • 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
  2. 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:
Example from starter plugin:

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
Example: SQL Plugin creates database adapters: