diff --git a/README.md b/README.md index 4eea18d..985a64f 100644 --- a/README.md +++ b/README.md @@ -1,118 +1,138 @@ # MaxClaw Agent -A configurable agent harness using DeepAgents that supports multiple LLM providers. +Un agente configurabile basato su DeepAgents che supporta più provider LLM. -## Features +## Caratteristiche -- **Provider Agnostic**: Works with OpenAI, Ollama, OpenRouter, and any other provider supported by LangChain's `init_chat_model` -- **Built on DeepAgents**: Includes planning, filesystem access, subagents, and context management out of the box -- **Easy Configuration**: Set environment variables to choose your provider and model -- **Persistent Configuration**: Store and manage configurations via CLI or TUI -- **Extensible**: Add custom tools, modify prompts, and configure subagents as needed +- **Indipendente dal provider**: Funziona con OpenAI, Ollama, OpenRouter e qualsiasi altro provider supportato da `init_chat_model` di LangChain +- **Basato su DeepAgents**: Include pianificazione, accesso al filesystem, sub-agenti e gestione del contesto out of the box +- **Configurazione semplice**: Imposta le variabili d'ambiente per scegliere il tuo provider e modello +- **Configurazione persistente**: Gestisci e conserva le configurazioni tramite CLI o TUI +- **Estensibile**: Aggiungi strumenti personalizzati, modifica i prompt e configura i sub-agenti secondo le tue esigenze -## Installation +## Installazione -1. Clone this repository -2. Install the required packages: +1. Clona questo repository +2. Installa i pacchetti richiesti: ```bash pip install -r requirements.txt ``` -## Configuration +## Configurazione -You can configure MaxClaw Agent in several ways: +Puoi configurare MaxClaw Agent in diversi modi: -### 1. Environment Variables (Quick Start) +### 1. Variabili d'ambiente (Avvio Rapido) -Set the following environment variables to configure your LLM provider: +Imposta le seguenti variabili d'ambiente per configurare il tuo provider LLM: -- `MODEL_PROVIDER`: The provider to use (e.g., "openai", "ollama", "openrouter") -- `MODEL_NAME`: The specific model name (e.g., "gpt-4o", "gemma2:9b") -- Provider-specific variables: - - For OpenAI: `OPENAI_API_KEY` - - For Ollama: `OLLAMA_BASE_URL` (defaults to http://localhost:11434) - - For OpenRouter: `OPENROUTER_API_KEY` and optionally `OPENROUTER_BASE_URL` (defaults to https://openrouter.ai/api/v1) +- `MODEL_PROVIDER`: Il provider da utilizzare (es. "openai", "ollama", "openrouter") +- `MODEL_NAME`: Il nome specifico del modello (es. "gpt-4o", "gemma2:9b") +- Variabili specifiche per il provider: + - Per OpenAI: `OPENAI_API_KEY` + - Per Ollama: `OLLAMA_BASE_URL` (predefinito a http://localhost:11434) + - Per OpenRouter: `OPENROUTER_API_KEY` e opzionalmente `OPENROUTER_BASE_URL` (predefinito a https://openrouter.ai/api/v1) -### Example Configurations +### Esempi di Configurazione #### OpenAI ```bash export MODEL_PROVIDER="openai" export MODEL_NAME="gpt-4o" -export OPENAI_API_KEY="your-openai-api-key" +export OPENAI_API_KEY="la-tua-chiave-api-openai" ``` -#### Ollama (local) +#### Ollama (locale) ```bash export MODEL_PROVIDER="ollama" export MODEL_NAME="gemma2:9b" -export OLLAMA_BASE_URL="http://localhost:11434" +export OLLAMA_BASE_URL="http://192.168.0.50:11434" ``` #### OpenRouter ```bash export MODEL_PROVIDER="openrouter" export MODEL_NAME="anthropic/claude-3.5-sonnet" -export OPENROUTER_API_KEY="your-openrouter-api-key" +export OPENROUTER_API_KEY="la-tua-chiave-api-openrouter" ``` -### 2. Persistent Configuration (Recommended) +### 2. Configurazione Persistente (Consigliato) -Use the CLI or TUI to manage configurations that persist across sessions. +Utilizza la CLI o la TUI per gestire le configurazioni che persistono tra le sessioni. -#### CLI Usage +#### Utilizzo della CLI ```bash -# List configurations +# Elenca le configurazioni python config_cli.py list -# Add a new configuration interactively +# Aggiungi una nuova configurazione interattivamente python config_cli.py add -# Add a new configuration non-interactively -python config_cli.py add --name "my-ollama" --provider "ollama" --model "gemma2:9b" --base-url "https://ollama.solarpi.net" --set-active +# Aggiungi una nuova configurazione in modo non interattivo +python config_cli.py add --name "mio-ollama" --provider "ollama" --model "gemma2:9b" --base-url "http://192.168.0.50:11434" --set-active -# Remove a configuration -python config_cli.py remove "my-ollama" +# Rimuovi una configurazione +python config_cli.py remove "mio-ollama" -# Set active configuration -python config_cli.py set-active "my-ollama" +# Imposta la configurazione attiva +python config_cli.py set-active "mio-ollama" -# Show active configuration +# Mostra la configurazione attiva python config_cli.py active + +# Testa la connessione a una configurazione +python config_cli.py test "mio-ollama" ``` -#### TUI Usage +#### Utilizzo della TUI ```bash -# Launch the Text User Interface +# Avvia l'Interfaccia Utente Testuale python config_tui.py ``` -Navigate using arrow keys, press Enter to select, and 'q' to quit. +Naviga usando le frecce direzionali, premi Invio per selezionare e 'q' per uscire. -## Usage +## Utilizzo -Run the agent: +Esegui l'agente: ```bash python main.py ``` -You can then interact with the agent in the terminal. Type 'exit' to quit. +Puoi quindi interagire con l'agente nel terminale. Digita 'exit' per uscire. -## Customization +## Personalizzazione -To customize the agent, edit `main.py`: +Per personalizzare l'agente, modifica `main.py`: -- Change the default system prompt in `create_maxclaw_agent` -- Add custom tools to the `create_deep_agent` call -- Configure subagents or other DeepAgents features +- Cambia il prompt di sistema predefinito in `create_maxclaw_agent` +- Aggiungi strumenti personalizzati alla chiamata `create_deep_agent` +- Configura i sub-agenti o altre funzionalità di DeepAgents -## Testing +## Test -Run the test script: +Esegui lo script di test: ```bash python test_agent.py ``` -## License +## Sicurezza -MIT \ No newline at end of file +MaxClaw Agent implementa misure di sicurezza avanzate: + +- **Crittografia a riposo**: Tutte le informazioni sensibili (chiavi API) sono crittografate usando la crittografia simmetrica Fernet +- **Permessi di file sicuri**: La directory di configurazione e i file sono impostati con accesso solo al proprietario (700 per le directory, 600 per i file) +- **Gestione automatica delle chiavi**: Le chiavi di crittografia vengono generate e memorizzate automaticamente in modo sicuro +- **Validazione completa**: Tutte le configurazioni vengono validate prima del salvataggio per prevenire errori + +## Licenza + +MIT + +## Contribuire + +I contributi sono i benvenuti! Sentiti libero di aprire issue o inviare pull request. + +## Contatti + +Per domande o supporto, apri una issue nel repository. \ No newline at end of file