# ElizaOS Developer Update - August 17, 2025

## Core Framework

This week, the ElizaOS team has been focused on a significant restructuring of the backend architecture to support a more code-first approach. The goal is to make Eliza more modular, allowing developers to import specific actions and services directly.

A major refactor introduced a Hono server and overhauled the agent registry, enabling agent interaction via an OpenAI-compatible API ([#5753](https://github.com/elizaOS/eliza/pull/5753)). The chat completions API was also updated to expose intermediate tool calls while maintaining full OpenAI API compliance ([#5755](https://github.com/elizaOS/eliza/pull/5755)).

Work is also underway to address some critical memory persistence issues where agents forget previous conversations after code changes trigger a rebuild. The team has identified that the problem occurs immediately after plugins are loaded.

```typescript
// Current logging approach for debugging memory issues
// Set this in your .env file or use with elizaos start command
LOG_LEVEL=debug

// Then check the Model Calls tab at localhost:3000 for detailed agent execution
```

## New Features

### EVM Plugin Integration

A significant new capability has been added with the integration of a new EVM plugin ([#5752](https://github.com/elizaOS/eliza/pull/5752)), providing essential wallet and blockchain tooling:

```typescript
// Example: Getting wallet balance with the new EVM plugin
const balance = await runtime.actions.getWalletBalance({
  address: "0x1234567890abcdef",
  chain: "ethereum"
});

console.log(`Balance: ${balance.amount} ${balance.symbol}`);
```

### Character Type System

A new character type system has been introduced to improve API consistency across different agent personas ([#5756](https://github.com/elizaOS/eliza/pull/5756)). This includes a new Jesse Pollak (jesseXBT) character focused on Base ecosystem support:

```typescript
// Character type validation using Zod
const CharacterSchema = z.object({
  id: z.string().uuid(),
  name: z.string().min(1),
  bio: z.string().optional(),
  avatar: z.string().url().optional(),
  type: z.enum(['assistant', 'specialist', 'persona']).default('assistant'),
  capabilities: z.array(z.string()).optional(),
  // ... additional fields
});
```

### Sessions API

The new Sessions API provides a simplified interface for messaging between users and agents, abstracting away the complexity of servers, channels, and participants ([#5717](https://github.com/elizaOS/eliza/pull/5717)):

```typescript
// Sessions API usage example
import { ElizaAPIClient } from '@elizaos/api-client';

const client = new ElizaAPIClient({ baseUrl: 'http://localhost:3000' });

// Create a new session
const session = await client.sessions.create({
  agentId: '123e4567-e89b-12d3-a456-426614174000',
  userId: 'user-123',
  metadata: { context: 'support' }
});

// Send a message in the session
const response = await client.sessions.sendMessage({
  sessionId: session.id,
  content: 'Hello, can you help me?',
  userId: 'user-123'
});
```

## Bug Fixes

A critical issue with the plugin publishing workflow has been identified and fixed ([#5763](https://github.com/elizaOS/eliza/pull/5763)). The `elizaos publish --npm` command was falsely reporting success even when the package failed to publish to the registry:

```bash
# Before fix
elizaos publish --npm  # Would report success even when failing

# After fix
elizaos publish --npm  # Now properly reports failures and provides detailed error info
```

A database connection issue during Phala deployment was identified where migrations fail with:
```
Database connection failed: connect ECONNREFUSED 127.0.0.1:5432
```

The team is working on resolving this issue by updating the connection configuration to properly handle TEE environments.

## API Changes

The Sessions API has been added to the API client SDK, providing a simplified interface for managing stateful conversations between users and agents ([#5717](https://github.com/elizaOS/eliza/pull/5717)):

```typescript
// New API endpoints
GET    /api/sessions            // List all sessions
POST   /api/sessions            // Create a new session
GET    /api/sessions/:id        // Get a specific session
DELETE /api/sessions/:id        // Delete a session
GET    /api/sessions/:id/messages  // Get all messages in a session
POST   /api/sessions/:id/messages  // Send a message in a session
```

Import paths have been standardized using `@/` aliases to improve consistency ([#5751](https://github.com/elizaOS/eliza/pull/5751)), though this change was partially reverted ([#5750](https://github.com/elizaOS/eliza/pull/5750)) to ensure compatibility with existing code.

## Social Media Integrations

Work on social platform integrations has been slowed by some account-related issues. Several users reported that the AI16Z Twitter account was suspended. Team members are investigating the suspension and looking into alternative approaches.

The team is making progress on documentation for adding Eliza/ai16z agents to Nifty Island, which was shared with the community. This integration will allow for more seamless agent experiences across platforms.

## Model Provider Updates

The OpenAI-compliant tool calls visibility feature has been added to chat completions API ([#5755](https://github.com/elizaOS/eliza/pull/5755)), enhancing transparency in model interactions while maintaining API compatibility:

```typescript
// Example response with tool calls visible
{
  "id": "chatcmpl-123",
  "object": "chat.completion",
  "created": 1677858242,
  "model": "gpt-3.5-turbo-0613",
  "choices": [{
    "message": {
      "role": "assistant",
      "content": "The current weather in San Francisco is 72°F.",
      "tool_calls": [
        {
          "id": "call_abc123",
          "type": "function",
          "function": {
            "name": "get_current_weather",
            "arguments": "{\"location\":\"San Francisco, CA\"}"
          }
        }
      ]
    },
    "index": 0,
    "finish_reason": "stop"
  }],
  "usage": {
    "prompt_tokens": 9,
    "completion_tokens": 12,
    "total_tokens": 21
  }
}
```

## Breaking Changes

A significant refactoring of the message bus architecture is in progress, with discussions about moving bus code into core and how to handle message events across different platforms. This may affect how plugins interact with the messaging system.

Developers should be aware that several plugins need updates due to significant changes in Eliza's logger functions. The team is working on a comprehensive guide for migrating to the new logging patterns:

```typescript
// Old logger pattern (now deprecated)
logger.info("Loading plugin", pluginName);

// New structured logging pattern
logger.info({ plugin: pluginName }, "Loading plugin");
```

For testing, a note that the `mock.module` approach for logger mocking has been replaced with `spyOn` for consistent testing ([#5748](https://github.com/elizaOS/eliza/pull/5748)):

```typescript
// Old approach (no longer works)
jest.mock('@elizaos/core', () => ({
  ...jest.requireActual('@elizaos/core'),
  logger: { info: jest.fn(), error: jest.fn() }
}));

// New approach
const loggerSpy = jest.spyOn(logger, 'info').mockImplementation();
```

A new .dockerignore configuration update is needed to prevent Docker build failures when e2e Test suite is added to index.ts. This affects TEE deployment configurations.