# ElizaOS Developer Update: November 22, 2025

## 1. Core Framework

The ElizaOS core framework saw significant improvements this week focused on stability and flexibility:

- **Runtime Architecture**: Added `initPromise: Promise<void>` to `IAgentRuntime` interface, allowing developers to properly sequence initialization tasks and await runtime readiness. This enables more predictable agent startup sequences and prevents race conditions ([PR #6143](https://github.com/elizaOS/eliza/pull/6143)).

- **Plugin System Enhancements**: Improved plugin dependency resolution to support both scoped package names and short names with automatic normalization. This creates a more developer-friendly experience when using plugins:

```typescript
// All these formats now work as plugin dependencies
const plugins = [
  "@elizaos/plugin-discord",
  "plugin-discord",
  "discord"
];
```

- **Server Tests**: Stan optimized the test infrastructure by removing skipped tests and adding proper helpers and fixtures to reduce duplication, improving test reliability and making the codebase more maintainable ([PR #6165](https://github.com/elizaOS/eliza/pull/6165)).

## 2. New Features

### Plugin Name Resolution Flexibility
The framework now accepts multiple formats for plugin names in dependencies, making it easier for developers to reference plugins ([PR #6164](https://github.com/elizaOS/eliza/pull/6164)):

```typescript
// Example showing how the new system resolves plugin references
import { normalizePluginName } from "@elizaos/core";

// All resolve to "@elizaos/plugin-discord"
normalizePluginName("discord");
normalizePluginName("plugin-discord");
normalizePluginName("@elizaos/plugin-discord");

// Usage in agent configuration
const agent = {
  plugins: ["discord", "openai"], // Short names work!
  bootstrap: ["web-search"]      // Bootstrap plugins too
};
```

### Database Provider Selection
Added support for dynamic database selection between MySQL and PostgreSQL through environment configuration:

```typescript
// Configure MySQL
process.env.MYSQL_URL = "mysql://user:pass@localhost:3306/dbname";

// Or use PostgreSQL (default)
process.env.PGLITE_DATA_DIR = "./data";
```

The system automatically loads the appropriate plugin (`@elizaos/plugin-mysql` or `@elizaos/plugin-sql`) based on the environment configuration, ensuring proper database dialect handling.

## 3. Bug Fixes

### Critical Fixes

- **Anthropic Model Integration**: Fixed support for the `topP` parameter in Anthropic model calls, ensuring proper control over response randomness ([PR #6166](https://github.com/elizaOS/eliza/pull/6166)). This addresses an issue where the parameter was being ignored in API calls.

- **Plugin XML Tag Closing**: Addressed an issue with Anthropic's Sonnet 4.0 model not properly closing XML tags, which was causing structured responses to fail. This was related to max token settings causing premature response truncation.

- **MessageBusService Stability**: Fixed integration tests for the MessageBusService following architecture changes, ensuring proper messaging flow between components ([PR #6165](https://github.com/elizaOS/eliza/pull/6165)).

### Technical Debt Reduction

- **Dependency Modernization**: Successfully migrated from the deprecated LangChain v0.3 to `@langchain/textsplitters` v1.0 ([PR #6152](https://github.com/elizaOS/eliza/pull/6152)), ensuring long-term stability:

```typescript
// Old (deprecated)
import { RecursiveCharacterTextSplitter } from 'langchain/text_splitter';

// New
import { RecursiveCharacterTextSplitter } from '@langchain/textsplitters';
```

## 4. API Changes

### Plugin API Enhancement

The plugin system now offers more flexibility in how plugins are referenced and loaded:

- **Plugin Name Resolution**: All forms of plugin names (short, scoped, unscoped) are now properly normalized ([PR #6164](https://github.com/elizaOS/eliza/pull/6164)).

- **Plugin Deduplication**: Enhanced the plugin queue system to properly deduplicate plugin references, preventing duplicate loading.

```typescript
// Both approaches now work correctly and load only once
runtime.use("discord");
runtime.use("@elizaos/plugin-discord");
```

### Runtime API Extension

- Added `skipMigrations` option to `runtime.initialize()` to selectively disable database migrations during initialization:

```typescript
// Skip migrations for faster startup in development
await runtime.initialize({ skipMigrations: true });
```

- Enhanced the `IAgentRuntime` interface with `initPromise` to better handle async initialization.

## 5. Social Media Integrations

The Discord plugin integration received important updates:

- Prematurely merged Discord plugin PR (#23) has been identified for additional review and potential fixes.

- Progress continues on the unified messaging API for the Discord plugin ([elizaos-plugins/plugin-discord#24](https://github.com/elizaos-plugins/plugin-discord/pull/24)), which will provide a more consistent interface for message handling across different platforms.

Developers working with the Twitter/X platform should note that restoration of X accounts is under discussion ([Discord mention by saypleaseno]()), though specific implementation details are still pending.

## 6. Model Provider Updates

### Anthropic

- Fixed support for the `topP` parameter in Anthropic API calls, ensuring proper generation control ([PR #6166](https://github.com/elizaOS/eliza/pull/6166)).

- Identified and began addressing an issue with Anthropic's Sonnet 4.0 model not properly closing XML tags. This appears to be related to max token settings and context window management.

### DeepSeek

- Added a new issue ([#6156](https://github.com/elizaOS/eliza/issues/6156)) proposing DeepSeek API integration, which will expand the available model options for ElizaOS developers.

## 7. Breaking Changes

### Token Migration

The ai16z to ElizaOS token migration continues to be a focus for the community:

- The migration portal will remain open until February (90-day migration period).
- Users with tokens on centralized exchanges (particularly Kraken) are experiencing challenges as exchanges implement the migration.
- Manual migration support is available as a fallback if exchanges fail to implement automatic migration.

```bash
# Important dates for token migration
SNAPSHOT_DATE="2025-11-11T11:40:00Z"
MIGRATION_DEADLINE="2026-02-05T00:00:00Z"

# Migration ratio
AI16Z_TO_ELIZAOS_RATIO=6  # 1 ai16z = 6 elizaOS tokens
```

### V1 to V2 Migration Considerations

- The ElizaOS reference is now directly accessible from the runtime, which may require updates to how your agent interacts with the framework.
- Developers using LangChain for text splitting should update their imports as per PR #6152 to avoid dependency issues.

---

*Note: If you're experiencing issues with token migration, please reach out through the support channel. For development questions, the core team is available in the #core-devs Discord channel.*