# ElizaOS Developer Update
*Week of October 19, 2025 - October 25, 2025*

## 1. Core Framework

### Agent-to-Agent (A2A) Technology
Our team is developing Agent-to-Agent (A2A) technology with two implementation paths:
- **Quick approach**: Building on NextJS with visualizer and demo agents
- **Comprehensive solution**: Planning for blockchain integration with tokenomics and validator incentives

```typescript
// Simplified example of A2A interaction
const agent1 = await runtime.createAgent({
  id: "agent1",
  name: "Research Agent",
  bio: "I research topics and provide comprehensive data"
});

const agent2 = await runtime.createAgent({
  id: "agent2", 
  name: "Writer Agent",
  bio: "I transform research into coherent articles"
});

// Connection setup
await runtime.connectAgents(agent1.id, agent2.id, {
  messageFormat: "json",
  secureChannel: true
});
```

### MessageService Refactoring
We've introduced a new `MessageService` interface and default implementation, centralizing message handling to improve:
- Message routing and lifecycle management
- Channel clearing/deletion
- Runtime message routing logic

```typescript
// Example: Using the new MessageService API
import { DefaultMessageService } from "@elizaos/core";

const messageService = new DefaultMessageService();
runtime.registerService("messageService", messageService);

// Using the service
await messageService.sendMessage({
  type: "text",
  content: "Hello from one agent to another",
  sender: agent1.id,
  recipient: agent2.id,
  channelId: "shared-channel"
});
```

### Zod v4 Migration (ELIZA-740)
The Zod v4 migration is ongoing with several plugins still awaiting review and merge. This update improves type safety across our ecosystem.

## 2. New Features

### GenerateText API
We've implemented a new Promise-based `generateText()` API for simpler text generation:

```typescript
// Simple text generation without message history management
const response = await agent.generateText({
  prompt: "Summarize the key features of ElizaOS",
  options: {
    temperature: 0.7,
    model: "anthropic/claude-3-opus-20240229"
  }
});

console.log(response.content); // Generated text
```

### Streamdown Integration
Added Streamdown for modern, streaming AI response rendering on the client:

```jsx
// Client-side streaming response rendering
import { AnimatedMarkdown } from 'ui/chat';

function ChatMessage({ content, streaming }) {
  return (
    <AnimatedMarkdown 
      content={content} 
      streaming={streaming}
      codeHighlighting={true}
      animationSpeed="medium"
    />
  );
}
```

### Optional Embedding Service
The embedding service now becomes a no-op when no `TEXT_EMBEDDING` model is registered:

```typescript
// Configuration without embedding model - saves resources
const runtimeConfig = {
  models: {
    TEXT_GENERATION: [{
      provider: "openai",
      model: "gpt-4"
    }],
    // No TEXT_EMBEDDING defined = embedding service disabled
  }
};
```

## 3. Bug Fixes

### CLI Installation Failure (Critical)
**Bug**: CLI installation fails with `Cannot find module '@anthropic-ai/claude-code'` error.

**Fix**: We've removed the Anthropic Claude dependencies and related AI-powered code generation features from the CLI in PR #6087, creating a more lightweight installation. This was released in version 1.6.3.

```bash
# Update to fixed version
npm install -g @elizaos/cli@1.6.3
```

### State Cache and Bootstrap Types
Fixed issues with the bootstrap plugin's access to state cache:
- Exposed `runtime.stateCache` for plugin access
- Refactored bootstrap multistep handling to use the cache properly
- Improved runtime prompt handling

### Plugin Documentation and Scaffolding
Addressed critical documentation issues reported by users:
- Fixed template lookup paths to include monorepo package directories
- Corrected CLI command syntax in documentation
- Improved agent lifecycle help messages

## 4. API Changes

### Agent Identity Using UUID
Agents now use randomly generated UUIDs instead of name-derived identities:
- Allows multiple agents to share the same name
- Loader auto-assigns an ID when missing
- Environment variable prefixing derives from agent ID for consistent configuration

```typescript
// Create agents with duplicate names but unique IDs
const agent1 = await runtime.createAgent({
  name: "Assistant",
  // ID auto-generated as UUID
});

const agent2 = await runtime.createAgent({
  name: "Assistant", // Same name is now allowed
  // Different auto-generated UUID
});

// Or specify a custom UUID
const agent3 = await runtime.createAgent({
  id: "550e8400-e29b-41d4-a716-446655440000",
  name: "Assistant"
});
```

### PATCH Method Support
Added PATCH method support to the Route type for RESTful API operations:

```typescript
// Now you can define PATCH routes in plugins
export const routes: Route[] = [
  {
    method: 'PATCH', // New support for PATCH
    path: '/api/resources/:id',
    handler: async (req, res) => {
      // Partial update logic
    }
  }
];
```

### Agent Description to Bio Renaming
Renamed `Agent.description` to `bio` for clarity and consistency:

```typescript
// Old style (deprecated)
const agent = await runtime.createAgent({
  name: "Assistant",
  description: "I help with various tasks"
});

// New style
const agent = await runtime.createAgent({
  name: "Assistant",
  bio: "I help with various tasks" // Can be string or string[]
});
```

## 5. Social Media Integrations

We're currently addressing issues with our official X (Twitter) accounts, which remain suspended. We're pursuing legal action to restore them. In the meantime, community accounts (@elizaOSc & @elizaOS_news) are available.

Community members have built several interesting social integrations:

### PEPEDAWN Telegram Bot
A community member built a Telegram bot for the Rare Pepes NFT Counterparty community, featuring:
- Card database with fuzzy matching
- AI-powered lore generation
- RAG and MMR diversity clustering
- Knowledge base of embedded Telegram messages

## 6. Model Provider Updates

### OpenAI Beta v6
The team has examined OpenAI's beta v6 release, confirming:
- No breaking changes for existing integrations
- New feature: human approval before tool execution

### Local AI Development
The core team is testing local AI models via Ollama:
- qwen2-coder 32k - being evaluated for development work
- Positive results for code-related tasks
- Performance still being compared to hosted models

## 7. Breaking Changes

### CLI Refactoring
The CLI has been simplified by removing:
- Anthropic Claude dependencies
- AI-powered plugin generation/upgrade features
- Custom module loader (now using server/core directly)

If you were using any of these features, alternatives include:

```bash
# Instead of AI-powered plugin generation
elizaos create --type plugin --name my-plugin

# Instead of AI-powered plugin upgrade
# Manually update plugin to match current standards
```

### Deployment Changes
The deployment system has been migrated from Docker image builds to a bootstrapper architecture:
- Creates lightweight tar.gz artifacts (~50MB vs 500MB+ Docker images)
- Uploads artifacts to Cloudflare R2 via secure API
- Uses minimal shared bootstrapper image

```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
```

Remember to update your deployment pipelines accordingly, as this is a substantial change to the deployment workflow.