# ElizaOS Developer Update - October 27, 2025

## Core Framework

The core ElizaOS framework has seen major architectural improvements this week, with the merging of the `develop` branch into `main` in PR [#6078](https://github.com/elizaOS/eliza/pull/6078). This introduces several foundational changes:

- **Unified Messaging System**: Added a pluggable `IMessageService` interface with a `DefaultMessageService` implementation, centralizing message handling, deletion, and channel clearing. The new architecture routes all message handling through the runtime message service, improving consistency.

- **Agent Identity System**: Migrated to UUID-only agent identification in PR [#6036](https://github.com/elizaOS/eliza/pull/6036), allowing multiple agents to share the same name. This change affects the core runtime, database schema, and agent loading logic.

- **Improved Runtime Architecture**: The server now uses a unified startup process via `AgentServer.start(config)` with auto-initialization, port resolution, and optional agent loading. This replaces the previous plugin and configuration managers with a cleaner architecture.

- **Better Memory Management**: Enhanced database-level pagination was added to `getMemories` with the introduction of `limit` and `offset` parameters for more efficient memory retrieval in PR [#6032](https://github.com/elizaOS/eliza/pull/6032).

- **Service Optimizations**: The embedding service is now optional when no `TEXT_EMBEDDING` model is registered (PR [#6075](https://github.com/elizaOS/eliza/pull/6075)), improving resource usage for agents that don't require embeddings.

## New Features

### Unified Messaging API

A new unified messaging API is being implemented through the ElizaOS Wrapper as discussed in [Issue #6096](https://github.com/elizaOS/eliza/issues/6096) and PR [#6095](https://github.com/elizaOS/eliza/pull/6095). This will provide a consistent interface for all messaging operations:

```javascript
// New unified messaging API
await elizaOS.sendMessage({
  channel: "discord",
  text: "Hello world",
  threadId: "123456789"
});

// Compared to previous channel-specific implementations
await discord.sendMessage(threadId, "Hello world");
await telegram.sendMessage(chatId, "Hello world");
```

### Text Generation API

A new Promise-based API for direct text generation has been implemented in PR [#6062](https://github.com/elizaOS/eliza/pull/6062):

```javascript
// Simple text generation without agent personality
const response = await agent.generateText("What's the capital of France?");
console.log(response); // "The capital of France is Paris."

// Example usage with streaming
import { createAgent } from "@elizaos/core";

const agent = createAgent({
  // agent configuration
});

await agent.initialize();
const response = await agent.generateText({
  input: "Explain quantum computing in simple terms",
  stream: true,
  onToken: (token) => {
    process.stdout.write(token);
  }
});
```

### Streamdown Integration

Modern AI response rendering with streaming support has been added in PR [#6082](https://github.com/elizaOS/eliza/pull/6082), enabling more responsive and visually appealing AI responses in the client:

```jsx
// Client-side streaming markdown rendering
<AnimatedMarkdown 
  content={message.content} 
  isLoading={isGenerating}
  highlightCode={true}
/>
```

### Artifact-Based Deployment System

A new bootstrapper architecture for deployments has been implemented in PR [#6058](https://github.com/elizaOS/eliza/pull/6058), replacing traditional Docker image builds with lightweight artifacts:

```bash
# New deployment command
elizaos deploy
```

This change significantly improves deployment speed (30-60s vs 5-10 minutes), reduces artifact size (10-50MB vs 500MB-2GB), and enables better version isolation.

## Bug Fixes

Several critical bugs have been addressed this week:

1. **CLI Installation Error**: Fixed a breaking bug in PR [#6087](https://github.com/elizaOS/eliza/pull/6087) where the removal of Claude dependencies caused the CLI to fail with `Cannot find module '@anthropic-ai/claude-code'` errors (Issue [#6088](https://github.com/elizaOS/eliza/issues/6088)).

2. **Plugin Documentation**: Resolved issues with plugin documentation and scaffolding in PR [#6071](https://github.com/elizaOS/eliza/pull/6071), addressing user feedback about "endless issues" and "bad documentation" as major barriers to entry (Issue [#6070](https://github.com/elizaOS/eliza/issues/6070)).

3. **Action Thought Inclusion**: Fixed inconsistent inclusion of agent reasoning in action events (PRs [#6083](https://github.com/elizaOS/eliza/pull/6083) and [#6084](https://github.com/elizaOS/eliza/pull/6084)), ensuring that `actionPlan.thought` is consistently included in both `ACTION_STARTED` and `ACTION_COMPLETED` events.

4. **Dotfile Inclusion**: Resolved an issue where generated projects were missing critical dotfiles like `.gitignore` and `.env.example` (PR [#6080](https://github.com/elizaOS/eliza/pull/6080)).

5. **SessionID Inclusion**: Fixed a bug where `channelId` was missing from session API responses (PR [#6079](https://github.com/elizaOS/eliza/pull/6079)), ensuring reliable WebSocket connections.

## API Changes

Several notable API changes have been made:

1. **`generateText()` API**: Added a new Promise-based text generation API (PR [#6062](https://github.com/elizaOS/eliza/pull/6062)), providing a simpler interface for direct text generation.

2. **Type Refinement**: Replaced `Agent.description` with `bio` in API types (PR [#6085](https://github.com/elizaOS/eliza/pull/6085)) for better semantic clarity.

3. **PATCH Method Support**: Added PATCH HTTP method support to the Route type (PR [#6076](https://github.com/elizaOS/eliza/pull/6076)).

4. **Plugin API Access**: Plugins can now access action results via a new `getActionResults()` method on the runtime (PR [#6081](https://github.com/elizaOS/eliza/pull/6081)):

```javascript
// Get action results within a plugin
export const runOnMessage = async (runtime, message) => {
  // Execute actions
  await runtime.executeAction({ name: "fetch-weather" });
  
  // Access the results
  const actionResults = runtime.getActionResults();
  const weatherData = actionResults.find(r => r.action.name === "fetch-weather");
  
  // Use the result in subsequent logic
  if (weatherData.result.temperature > 30) {
    // Suggest indoor activities
  }
};
```

## Social Media Integrations

Work on social media plugin integrations has continued:

1. **Twitter/X**: Updates to the Twitter plugin are underway with discussions about adding x402 support for ElizaOS agent messaging. Users have reported that implementations without the Twitter API get banned quickly, as noted in Discord discussions.

2. **Multiple Plugins**: Developers have confirmed working with several plugins including `openrouter`, `multi-step bootstrap`, `plugin-relay`, `websearch`, `plugin-cdp`, and `coingecko`.

3. **Web3 Authentication**: Discussions are ongoing about Web3 authentication methods for ElizaOS-based bots, with concerns about private key requirements versus standard Web3 auth flows (like WalletConnect, Metamask).

4. **Security Alert**: A fake PayAI account running an airdrop scam was identified, with team members alerted to inform PayAI about the situation to protect the community from phishing attempts.

## Model Provider Updates

Several updates to model provider integrations are in progress:

1. **OpenRouter Integration**: The development team is actively using and improving the `openrouter` plugin as mentioned in Discord discussions.

2. **Embedding Service Optimization**: The embedding service has been made optional when no `TEXT_EMBEDDING` model is configured (PR [#6075](https://github.com/elizaOS/eliza/pull/6075)), improving resource usage for agents that don't require vector embeddings.

3. **x402 Integration**: Plans to add x402 support to Eliza agent messaging are underway, allowing agents to utilize paid API services through the x402 payment protocol. Integration methods being explored include enabling x402 in the server with an `ENABLE_X402` flag and creating MCPs (Machine Callable Programs) that support x402 payments.

## Breaking Changes

As ElizaOS moves toward a V2 release, developers should be aware of several breaking changes:

1. **Agent Identification**: The migration to UUID-only agent identification in PR [#6036](https://github.com/elizaOS/eliza/pull/6036) means that agents are now identified solely by their UUID, not by name. Applications that rely on agent names for identity will need to be updated.

2. **CLI Dependencies**: The removal of Anthropic Claude dependencies in PR [#6087](https://github.com/elizaOS/eliza/pull/6087) removes AI-powered plugin generation and upgrade functionality. If you were using these features, you'll need to use manual plugin creation.

3. **Server Initialization**: The unified server startup process via `AgentServer.start(config)` replaces the previous plugin and configuration managers. Code that directly used these managers will need to be updated.

4. **Deployment System**: The new artifact-based deployment system replaces the previous Docker-based system, removing several CLI options (`--use-docker`, `--tag`, `--no-build`, `--dockerfile`). Deployment scripts that used these options will need to be updated.

5. **Token Migration**: For those using the AI16Z token, migration to the new ElizaOS token will be required. ElizaOS will be native to Solana but will use CCIP to be cross-chain on Ethereum, Base, and BNB Chain. The migration portal will be open for 90 days once launched, with a migration ratio of 6 ElizaOS tokens per 1 AI16Z token.

---

This update reflects the extensive development work and infrastructure improvements happening across the ElizaOS ecosystem. For more information, please refer to the linked PRs and issues, or join the discussions in the developer Discord channels.