Skip to content

hamzzaaamalik/AuragenAI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Auragen Framework

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.


Why Auragen?

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.


Limitations in Eliza

1. Technical Architecture

  • 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.

2. Development Experience

  • Poor Documentation: Limited guides and examples for beginners.
  • Complex Configuration: Configuration is spread across .env files 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.

3. Performance

  • 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.

4. Security

  • 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.

Introducing Auragen

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.

Key Features of Auragen

1. Better Architecture

  • 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;
    }

2. Improved Developer Experience

  • 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;
    }

3. Enhanced Performance

  • 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>;
    }

4. Better Security

  • 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;
    }

5. Additional Improvements

  • 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.

Getting Started

Installation

To install Auragen, run:

npm install auragen

Example Usage

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

Roadmap

  • 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).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors