Auragen is a modern, TypeScript-based conversational AI framework designed to overcome the limitations of existing frameworks like Eliza. By focusing on scalability, security, and developer experience, Auragen provides a robust foundation for building conversational agents with ease.
While Eliza has been a groundbreaking framework, it suffers from several technical, architectural, and performance-related limitations. Auragen is built to address these challenges and offer a better experience for developers and end-users.
- Monolithic Design: Difficult to deploy or scale specific components.
- Tight Coupling: Core components are highly interdependent, limiting flexibility.
- Complex Setup: Requires WSL2 for Windows and multiple dependencies.
- Node.js Dependency: Requires Node.js 23+, limiting deployment flexibility.
- Python 2.7 Dependency: Outdated and deprecated, creating compatibility issues.
- Poor Documentation: Limited guides and examples for beginners.
- Complex Configuration: Configuration is spread across
.envfiles and JSON. - Plugin Development: No clear guidelines for plugin creation.
- Lack of Type Safety: Inconsistent usage of strong typing.
- Testing Infrastructure: Limited tools for testing and debugging.
- Single-Threaded: Processes agent responses sequentially, creating bottlenecks.
- No Rate Limiting: Cannot handle high-traffic environments efficiently.
- Local Caching: Relies on local file system, which is slow and prone to corruption.
- Memory Issues: Struggles with large conversations.
- Exposed API Keys: Model API keys are stored in plaintext in character configs.
- Limited Access Control: Lacks fine-grained permission management.
- No Content Filtering: Unable to detect and block malicious or inappropriate content.
- No Secret Management: Weak handling of sensitive information.
Auragen is designed to solve the above challenges with a modern approach. Built with TypeScript and following modular, scalable principles, Auragen focuses on:
- Scalable Architecture: Modular design and dependency injection.
- Developer Experience: Type-safe plugins, clear documentation, and better tooling.
- Enhanced Performance: Message queues, distributed caching, and horizontal scaling.
- Robust Security: Content filtering, secret management, and access control.
- Modular Design: Clear boundaries between components for flexible deployments.
- Dependency Injection: Decoupled components for easier testing and maintenance.
- Secure Runtime:
class SecurityManager { validateRequest(context: RequestContext): boolean; sanitizeOutput(response: AgentResponse): AgentResponse; auditLog(event: SecurityEvent): void; }
- Type-Safe Plugin System:
interface Plugin<TConfig extends PluginConfig> { id: string; validate(config: TConfig): ValidationResult; initialize(runtime: Runtime): Promise<void>; }
- Centralized Configuration Management:
class ConfigManager { loadConfig<T>(path: string): ValidatedConfig<T>; validateSchema<T>(config: T, schema: Schema): ValidationResult; mergeConfigs(...configs: Config[]): Config; }
- Message Queue System:
class MessageQueue { async enqueue(message: Message): Promise<void>; async processQueue(): Promise<void>; async scaleWorkers(load: number): Promise<void>; }
- Distributed Caching:
interface CacheProvider { get<T>(key: string): Promise<T | null>; set<T>(key: string, value: T, ttl?: number): Promise<void>; invalidate(pattern: string): Promise<void>; }
- Secret Management:
class SecretManager { async getSecret(key: string): Promise<string>; async rotateSecrets(): Promise<void>; async auditSecretAccess(key: string): Promise<void>; }
- Content Filtering:
class ContentFilter { async filterInput(content: string): Promise<FilterResult>; async filterOutput(content: string): Promise<FilterResult>; updateFilters(rules: FilterRules): void; }
- Pure TypeScript implementation (no Python dependency).
- Built-in observability and monitoring.
- Containerized deployment support (e.g., Docker).
- Clear plugin development API.
- Comprehensive testing utilities.
- Built-in rate limiting and quota management.
- Horizontal scaling support.
- Real-time metrics and logging.
- API versioning for backward compatibility.
To install Auragen, run:
npm install auragen```typescript
import { AuraRuntime, LoggerPlugin } from 'auragen';
async function main() {
const runtime = new AuraRuntime({
id: 'test-runtime',
name: 'Test Runtime',
version: '1.0.0',
model: 'test',
provider: 'test',
settings: {},
});
const logger = new LoggerPlugin({
level: 'debug',
prefix: 'TEST',
});
runtime.registerPlugin(logger);
await runtime.initialize();
logger.info('Runtime is ready!');
}
main().catch(console.error);
```
- Build comprehensive documentation with examples.
- Develop a plugin marketplace for community-contributed plugins.
- Add advanced conversational AI features (e.g., sentiment analysis, proactive agents).
- Implement native integrations with third-party services (e.g., OpenAI, AWS).