# ElizaOS Developer Update: 2025-10-18

## 1. Core Framework

The ElizaOS team has completed a significant migration to UUID-only agent identification ([PR #6036](https://github.com/elizaOS/eliza/pull/6036)). This architectural change means:

- Agents now use randomly generated UUIDs for identity instead of name-based IDs
- Multiple agents can share the same name without conflicts
- All database operations reference agents by UUID only

Additionally, evaluators now run asynchronously in the background ([PR #6066](https://github.com/elizaOS/eliza/pull/6066)), with streamlined error handling and logging:

```typescript
// Previous synchronous execution
await runtime.runEvaluator(message);

// New asynchronous execution
runtime.runEvaluator(message).catch(err => {
  logger.error('Evaluator execution failed', { error: err });
});
```

Character builder logic has been moved from tests to core ([PR #6069](https://github.com/elizaOS/eliza/pull/6069)), providing a standardized approach for creating character plugins with 27 new tests.

## 2. New Features

### Direct Text Generation API

A new Promise-based `generateText()` API ([PR #6062](https://github.com/elizaOS/eliza/pull/6062)) provides a simplified way to generate text without the full messaging pipeline:

```typescript
// New simple text generation API
const response = await agent.generateText("What is the capital of France?");
console.log(response); // "The capital of France is Paris."

// With options
const responseWithOptions = await agent.generateText({
  text: "What is the capital of France?",
  includeCharacter: false, // Skip character personality
  modelOptions: {
    temperature: 0.7
  }
});
```

### Database-Level Pagination

Memory retrieval now supports database-level pagination ([PR #6032](https://github.com/elizaOS/eliza/pull/6032)):

```typescript
// Get the first 10 memories
const firstPage = await runtime.getMemories({ limit: 10, offset: 0 });

// Get the next 10 memories
const secondPage = await runtime.getMemories({ limit: 10, offset: 10 });
```

### Eigen TEE Deployment

The CLI has added a new wrapper for Eigen Trusted Execution Environment deployments ([PR #6065](https://github.com/elizaOS/eliza/pull/6065)), providing:

- Consented installation flow
- PATH detection for Eigen binaries
- Secure deployment to TEEs

## 3. Bug Fixes

Several critical bugs were fixed this week:

1. **Agent Plugins Not Reloading** ([PR #6040](https://github.com/elizaOS/eliza/pull/6040)) - Fixed issue where agent plugins were not properly updated when using PATCH endpoint to modify agent configuration, and resolved a race condition causing service initialization errors during agent restart.

2. **Plugin Documentation and Scaffolding** ([PR #6071](https://github.com/elizaOS/eliza/pull/6071)) - Fixed template lookup paths and incorrect CLI command syntax in documentation:
   ```bash
   # Fixed command syntax
   elizaos create --type plugin
   # Shortened version also supported
   elizaos create -t plugin
   ```

3. **Memory Viewer Filters** ([PR #6067](https://github.com/elizaOS/eliza/pull/6067)) - Fixed issues with current chat and user messages filters in the memory viewer by converting channelId to agent-unique roomId and adding entityId to properly distinguish between user and agent messages.

4. **Foreign Key Violations** ([PR #6059](https://github.com/elizaOS/eliza/pull/6059)) - Resolved foreign key violation errors that occurred when starting agents in PostgreSQL environments by ensuring the agent record exists before creating references.

## 4. API Changes

ElizaOS has transitioned to a modern bootstrapper architecture for deployments ([PR #6058](https://github.com/elizaOS/eliza/pull/6058)), significantly changing how deployment works:

- Replaced Docker image builds with lightweight tar.gz artifacts (~50MB vs 500MB+)
- Uploads artifacts to Cloudflare R2 via secure API
- Uses minimal shared bootstrapper image (~100MB)

Deployment workflow is now:
```bash
# Old (no longer works)
elizaos deploy --use-docker --tag my-image:v1

# New (default behavior)
elizaos deploy

# With existing artifact
elizaos deploy --skip-artifact --artifact-path ./dist/artifact.tar.gz
```

The core API has been expanded to expose configuration and plugin modules ([PR #6037](https://github.com/elizaOS/eliza/pull/6037)), adding:

- Plugin management with auto-install, loading, validation, and dependency resolution
- Configuration utilities for character parsing/validation/defaults
- Environment variable loading from .env
- Secrets population from local env files

## 5. Social Media Integrations

The Twitter/X plugin has undergone significant changes:

- Latest plugin requires a Basic subscription to X API 
- Free usage of old Twitter plugin is deprecated and not recommended for serious applications due to risk of permanent ban
- Installation is now via: `bun i @elizaos/plugin-twitter`

The Instagram plugin has been published to GitHub and can be found at: [https://github.com/elizaos-plugins/plugin-instagram](https://github.com/elizaos-plugins/plugin-instagram)

According to Discord discussions, the team is working on fixing issues with getting agents back on X and exploring integrations with Farcaster and Clanker.

## 6. Model Provider Updates

The team has identified that Chain of Thought (CoT) was disabled in `plugin-anthropic`, making the model "smarter and more expensive". They're addressing this in upcoming updates.

An issue was raised requesting integration with the `n1n.ai` API as a model provider ([#6064](https://github.com/elizaOS/eliza/issues/6064)), which would expand the framework's access to a wide range of large language models and multimodal capabilities.

OpenRouter announced their Responses API Beta launch with improved ID requirements and annotation support.

## 7. Breaking Changes

With the migration to UUID-only agent identification ([PR #6036](https://github.com/elizaOS/eliza/pull/6036)), there are several important changes to note when migrating from V1 to V2:

1. **Agent Creation**: When creating agents, you must now use UUIDs for identification:

   ```typescript
   // V1 (name-based identification)
   const agent = new Agent({ name: "MyAgent" });

   // V2 (UUID-based identification)
   const agent = new Agent({ 
     id: "550e8400-e29b-41d4-a716-446655440000", // Optional, auto-generated if not provided
     name: "MyAgent"
   });
   ```

2. **Environment Variables**: Environment variable prefixing now derives from the agent ID for consistent configuration rather than the name.

3. **API Endpoints**: All API endpoints still function with names for backward compatibility, but internally they now use UUIDs. Updating your code to use UUIDs directly is recommended for future compatibility.

4. **Deployment**: The CLI deployment system has been completely migrated from Docker image builds to a bootstrapper architecture. The following CLI options are no longer supported:
   - `--use-docker`
   - `--tag`
   - `--no-build`
   - `--dockerfile`