Skip to main content

Evolutionary Local LLM Agent - Self-improving AI assistant

Project description

๐Ÿงฌ ELLMa - Evolutionary Local LLM Agent

Evolutionary Local LLM Agent - Self-improving AI assistant that evolves with your needs

PyPI version Python Support License: MIT Code style: black

๐Ÿš€ What is ELLMa?

ELLMa is a revolutionary self-evolving AI agent that runs locally on your machine. Unlike traditional AI tools, ELLMa learns and improves itself by:

  • ๐Ÿงฌ Self-Evolution: Automatically generates new capabilities based on usage patterns
  • ๐Ÿ  Local-First: Runs entirely on your machine with complete privacy
  • ๐Ÿš Shell-Native: Integrates seamlessly with your system and workflows
  • ๐Ÿ› ๏ธ Command Execution: Executes commands in a structured format
  • ๐Ÿ“ฆ Modular: Extensible architecture that grows with your needs

โšก Quick Start

Prerequisites

  • Python 3.8+
  • pip
  • Git (for development)

Installation

Option 1: Install from source

# Clone the repository
git clone https://github.com/wronai/ellma.git
cd ellma

# Install in development mode
pip install -e .

# Or install with all dependencies
pip install -e ".[dev]"

Option 2: Install via pip

pip install ellma

First Steps

  1. Initialize ELLMa (creates config in ~/.ellma)

    ellma init
    
  2. Download the model (or let it auto-download when needed)

    ellma setup --download-model
    
  3. Start the interactive shell

    ellma shell
    
  4. Or execute commands directly

    # Basic system commands
    ellma exec system.scan
    
    # Web interaction
    ellma exec web.read 'https://example.com'
    

Development Installation

For development, you'll need additional dependencies:

# Install with development dependencies
pip install -e ".[dev]"

# Run tests
make test

# Run linters
make lint

Your First Evolution

# Let ELLMa analyze itself and improve
ellma evolve

๐ŸŽฏ Core Features

๐Ÿงฌ Self-Evolution Engine

ELLMa continuously improves by analyzing its performance and automatically generating new modules:

$ ellma evolve
๐Ÿงฌ Starting evolution process...
๐Ÿ“Š Analyzing current capabilities...
๐ŸŽฏ Identified 3 improvement opportunities:
   โœ… Added: advanced_file_analyzer
   โœ… Added: network_monitoring
   โœ… Added: code_optimizer
๐ŸŽ‰ Evolution complete! 3 new capabilities added.

๐Ÿš Powerful Shell Interface

Natural language commands that translate to system operations:

ellma> system scan network ports
ellma> generate bash script for backup
ellma> analyze this log file for errors
ellma> create docker setup for web app

๐Ÿ› ๏ธ Multi-Language Code Generation

Generate production-ready code in multiple languages:

# Generate Bash scripts
ellma generate bash --task="Monitor system resources and alert on high usage"

# Generate Python code  
ellma generate python --task="Web scraper with rate limiting"

# Generate Docker configurations
ellma generate docker --task="Multi-service web application"

# Generate Groovy for Jenkins
ellma generate groovy --task="CI/CD pipeline with testing stages"

๐Ÿ“Š Intelligent System Integration

ELLMa understands your system and can:

  • Scan and analyze system configurations
  • Monitor processes and resources
  • Automate repetitive tasks
  • Generate custom tools for your workflow

๐Ÿ—๏ธ Architecture

ellma/
โ”œโ”€โ”€ core/                   # Core agent and evolution engine
โ”‚   โ”œโ”€โ”€ agent.py           # Main LLM Agent class
โ”‚   โ”œโ”€โ”€ evolution.py       # Self-improvement system
โ”‚   โ””โ”€โ”€ shell.py           # Interactive shell interface
โ”œโ”€โ”€ commands/               # Modular command system
โ”‚   โ”œโ”€โ”€ system.py          # System operations
โ”‚   โ”œโ”€โ”€ web.py             # Web interactions
โ”‚   โ””โ”€โ”€ files.py           # File operations
โ”œโ”€โ”€ generators/             # Code generation engines
โ”‚   โ”œโ”€โ”€ bash.py            # Bash script generator
โ”‚   โ”œโ”€โ”€ python.py          # Python code generator
โ”‚   โ””โ”€โ”€ docker.py          # Docker configuration generator
โ”œโ”€โ”€ modules/                # Dynamic module system
โ”‚   โ”œโ”€โ”€ registry.py        # Module registry and loader
โ”‚   โ””โ”€โ”€ [auto-generated]/  # Self-created modules
โ””โ”€โ”€ cli/                   # Command-line interface
    โ”œโ”€โ”€ main.py            # Main CLI entry point
    โ””โ”€โ”€ shell.py           # Interactive shell

๐Ÿ“š Usage Examples

System Administration

# Monitor system health
ellma exec "system.health"

# Generate monitoring script
ellma generate bash --task="Check disk space and send alerts"

# Analyze log files
ellma exec "files.analyze /var/log/syslog --pattern=error"

Development Tasks

# Generate project structure
ellma generate python --task="FastAPI project with authentication"

# Create deployment configuration
ellma generate docker --task="Production ready web app with nginx"

# Generate test scripts
ellma generate bash --task="Integration testing for REST API"

Web Automation

# Read and summarize web content
ellma exec "web.read https://news.ycombinator.com --summarize"

# Generate web scraping code
ellma generate python --task="Scrape product prices with retry logic"

๐Ÿ”ง Configuration

ELLMa stores its configuration in ~/.ellma/:

# ~/.ellma/config.yaml
model:
  path: ~/.ellma/models/mistral-7b.gguf
  context_length: 4096
  temperature: 0.7

evolution:
  enabled: true
  auto_improve: true
  learning_rate: 0.1

modules:
  auto_load: true
  custom_path: ~/.ellma/modules

๐Ÿงฌ How Evolution Works

  1. Performance Analysis: ELLMa monitors execution times, success rates, and user feedback
  2. Gap Identification: Identifies missing functionality or optimization opportunities
  3. Code Generation: Uses its LLM to generate new modules and improvements
  4. Testing & Integration: Automatically tests and integrates new capabilities
  5. Continuous Learning: Learns from each interaction to become more useful

๐Ÿš€ Advanced Features

Custom Module Development

# Create custom modules that ELLMa can use and improve
from ellma.core.module import BaseModule

class MyCustomModule(BaseModule):
    def execute(self, *args, **kwargs):
        # Your custom functionality
        return result

API Integration

from ellma import ELLMa

# Use ELLMa programmatically
agent = ELLMa()
result = agent.execute("system.scan")
code = agent.generate("python", task="Data analysis script")

Web Interface (Optional)

# Install web dependencies
pip install ellma[web]

# Start web interface
ellma web --port 8000

๐Ÿ›ฃ๏ธ Roadmap

Version 0.1.6 - MVP โœ…

  • Core agent with Mistral 7B
  • Basic command system
  • Shell interface
  • Evolution foundation

Version 0.2.0 - Enhanced Shell

  • Advanced command completion
  • Command history and favorites
  • Real-time performance monitoring
  • Module hot-reloading

Version 0.3.0 - Code Generation

  • Multi-language code generators
  • Template system
  • Code quality analysis
  • Integration testing

Version 0.4.0 - Advanced Evolution

  • Performance-based learning
  • User feedback integration
  • Predictive capability development
  • Module marketplace

Version 1.0.0 - Autonomous Agent

  • Full self-management
  • Advanced reasoning capabilities
  • Multi-agent coordination
  • Enterprise features

๐Ÿค Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Setup

# Clone repository
git clone https://github.com/ellma-ai/ellma.git
cd ellma

# Install in development mode
pip install -e .[dev]

# Run tests
pytest

# Run linting
black ellma/
flake8 ellma/

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • Built on top of llama-cpp-python
  • Inspired by the vision of autonomous AI agents
  • Powered by the amazing Mistral 7B model

๐Ÿ“ž Support


ELLMa: The AI agent that grows with you ๐ŸŒฑโ†’๐ŸŒณ

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ellma-0.1.7.tar.gz (94.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ellma-0.1.7-py3-none-any.whl (107.3 kB view details)

Uploaded Python 3

File details

Details for the file ellma-0.1.7.tar.gz.

File metadata

  • Download URL: ellma-0.1.7.tar.gz
  • Upload date:
  • Size: 94.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.12.4 Linux/6.14.9-300.fc42.x86_64

File hashes

Hashes for ellma-0.1.7.tar.gz
Algorithm Hash digest
SHA256 3b930d1254aba84ac4dbf0a21e4b43110aad1811c2408cd5abebb0122b4889e8
MD5 b2df8f96815e96645f9235ebb873a824
BLAKE2b-256 d993e2af862de177bf627bcfa9cc16d65c6bf2e65d333bdb7cd611dc4ec9114c

See more details on using hashes here.

File details

Details for the file ellma-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: ellma-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 107.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.12.4 Linux/6.14.9-300.fc42.x86_64

File hashes

Hashes for ellma-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 a20c4db7dd63de98ee49722d1eee4fc0399a68d4cb5eda83ba40fc4ea2fb9529
MD5 37cc479c59caea9843989cf618dc185a
BLAKE2b-256 b58946e8a483ce918344cd5b7c4096f085be0ac9ea6022c4361be6c2283441b1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page