Add project documentation for intelligent agents; include guides for implementing the crypto analysis

This commit is contained in:
2025-09-04 19:06:34 +02:00
parent a62e9344f6
commit 2cbdc8e758
6 changed files with 110 additions and 235 deletions

73
docs/Piano di Sviluppo.md Normal file
View File

@@ -0,0 +1,73 @@
# Guida alla Realizzazione del Progetto
Questa guida è una lista di controllo per l'implementazione del tuo progetto. È divisa in fasi logiche, ognuna con i compiti specifici da svolgere.
## Fase 1: Preparazione e Architettura di Base
### Impostazione dell'ambiente
* Scegliere il linguaggio di programmazione (es. **Python**).
* Utilizzare la libreria `agno` per la creazione di agenti e **LangChain/LlamaIndex** per la gestione dell'LLM e dell'orchestrazione.
### Definizione dell'Architettura degli agenti
* Definire la classe base per gli agenti, con metodi comuni come `execute()` e `reason()`.
* Delineare i ruoli e le interfacce di tutti gli agenti (`RicercatoreDati`, `AnalistaSentiment`, `MotorePredittivo`, `Orchestratore`), stabilendo come comunicheranno tra loro.
---
## Fase 2: Implementazione degli Agenti Core
### Agente `RicercatoreDati`
* Implementare la logica per connettersi a un'API di exchange (es. **Binance, Coindesk, CoinMarketCap**).
* Testare la capacità di recuperare dati in tempo reale per diverse criptovalute (prezzo, volume, capitalizzazione) e **assicurarsi che la gestione degli errori sia robusta**.
### Agente `AnalistaSentiment`
* **Agente `Social`:**
* Scegliere un metodo per lo scraping di forum e social media (es. **Reddit API, librerie per Twitter/X, BeautifulSoup per web scraping**).
* Implementare un modulo di analisi del testo per classificare il sentiment (positivo, negativo, neutro) utilizzando **modelli pre-addestrati (es. VADER) o fine-tuning di modelli più avanzati**.
* **Agente `News`:**
* Ottenere una chiave API per un servizio di notizie (es. **NewsAPI**).
* Implementare la logica per cercare articoli pertinenti a una criptovaluta specifica o al mercato in generale, e **filtrare le notizie in base a parole chiave rilevanti**.
### Agente `MotorePredittivo`
* Definire la logica per integrare i dati numerici del `RicercatoreDati` con il sentiment dell'`AnalistaSentiment`.
* Creare un **prompt avanzato** per l'LLM che lo guidi a generare previsioni e strategie. Dovrai usare tecniche come la **chain-of-thought** per rendere il ragionamento trasparente. Assicurarsi che il prompt includa vincoli specifici per lo stile di investimento (aggressivo/conservativo).
---
## Fase 3: Costruzione dell'Orchestratore e Test di Integrazione
### Implementazione dell'Agente Orchestratore
* **Gestione dell'Input Utente:** Creare un metodo che riceve la richiesta dell'utente (es. `analizza_cripto('Bitcoin', 'aggressivo')`). Analizzare il tipo di richiesta e le preferenze utente.
* **Recupero della Memoria Utente:** Integrare la logica per recuperare la cronologia delle richieste passate dal database e preparare i dati come contesto aggiuntivo per l'LLM.
* **Orchestrazione e Flusso di Lavoro:** Chiamare gli agenti (`RicercatoreDati`, `AnalistaSentiment`) e passare i risultati combinati all'**Agente `MotorePredittivo`** per generare previsioni e strategie.
* **Valutazione e Selezione Strategica:** Ricevere le previsioni dal `MotorePredittivo` e applicare le regole di valutazione basate sulle preferenze dell'utente per selezionare le strategie più appropriate.
* **Presentazione e Persistenza:** Costruire il report finale e salvare la sessione completa nel database.
---
## Fase 4: Gestione della Persistenza e dell'Interfaccia Utente
* **Database per la persistenza:** Scegli un database (es. **Firestore, MongoDB, PostgreSQL**) per salvare la cronologia delle richieste degli utenti. Implementa la logica per salvare e recuperare le sessioni di consulenza passate, associandole a un ID utente, e **struttura i dati per una ricerca efficiente**.
* **Interfaccia utente (UI):** Costruisci un'interfaccia utente semplice e intuitiva che permetta di inserire i parametri di richiesta. Aggiungi una sezione per visualizzare i risultati, inclusi i grafici e le note che spiegano il ragionamento dell'agente.
---
## Fase 5: Test del Sistema
* **Test unitari:** Esegui test su ogni agente singolarmente per assicurarti che funzioni correttamente (es. l'agente `RicercatoreDati` recupera i dati, l'agente `AnalistaSentiment` classifica correttamente un testo). **Crea dei mock per le API esterne per testare la logica interna senza dipendenze esterne**.
* **Test di integrazione:** Esegui scenari di test completi per l'intero sistema. Verifica che l'orchestrazione tra gli agenti avvenga senza intoppi e che i dati vengano passati correttamente tra di essi.
---
## Fase 6: Valutazione dei Risultati
* **Valutazione della qualità:** Verifica la qualità delle raccomandazioni generate. L'output è logico e ben argomentato?
* **Trasparenza del ragionamento:** Controlla che le note (`Ragionamenti`) siano chiare e forniscano un'effettiva trasparenza del processo decisionale dell'agente.
* **Confronto e validazione:** Confronta le raccomandazioni con dati storici e scenari ipotetici per valutarne la plausibilità.

37
docs/Progetto Esame.md Normal file
View File

@@ -0,0 +1,37 @@
# Agente di Analisi e Consulenza Crypto
L'obiettivo è quello di creare un sistema di consulenza finanziaria basato su LLM Agents che analizza il mercato delle criptovalute per fornire consigli di investimento personalizzati. Inoltre il sistema deve dimostrare la capacità di ragionare, gestire la persistenza dei dati, utilizzare fonti esterne e presentare un'analisi comprensibile e razionale, offrendo sia una consulenza ad ampio spettro che su una singola criptovaluta.
## Input Utente e Personalizzazione
L'utente interagisce con una semplice interfaccia per fornire una richiesta di analisi. L'agente integra la memoria utente per fornire un'esperienza personalizzata e continuativa.
* **Tipologia di richiesta**: Analisi ad ampio spettro per un portafoglio diversificato o analisi specifica di una singola criptovaluta.
* **Dettagli specifici**: Stile di investimento (aggressivo o conservativo).
* **Fattori da considerare**: Intervallo di tempo dell'analisi (es. "prossime 24 ore") e, se richiesto, il nome della criptovaluta da analizzare.
* **Memoria**: L'Agente Orchestratore recupera la cronologia delle richieste passate dell'utente per fornire una consulenza che tenga conto delle scelte precedenti.
## Processo di Analisi e Acquisizione Dati
Questo processo si basa sulla collaborazione di più agenti specializzati, in linea con l'approccio dei modelli di ragionamento.
* Agente `RicercatoreDati`: Accede ad API di exchange (come [Binance](https://www.binance.com/it/binance-api), [Coindesk](https://developers.coindesk.com/documentation/data-api/introduction) o [ConMarketCap](https://coinmarketcap.com/api/documentation/v1/)) per recuperare i dati di trading (prezzo, volume, capitalizzazione di mercato) di un vasto set di criptovalute.
* Agente `AnalistaSentiment`: Questo agente opera su due fronti, analizzando dati non strutturati per valutare il sentimento del mercato:
* Agente `Social`: Esegue lo scraping di forum (es. Reddit) e social media (es. Twitter/X) per analizzare il sentiment del pubblico.
* Agente `News`: Interroga API di notizie (es. [NewsAPI](https://newsapi.org)) per individuare informazioni rilevanti (es. annunci di partnership, nuovi regolamenti) che potrebbero influenzare il mercato.
* Agente `MotorePredittivo`: Utilizza i dati numerici e le analisi di sentiment per generare previsioni e strategie plausibili per ogni criptovaluta analizzata, in linea con un modello di ragionamento trasparente.
## Valutazione e Selezione Strategica
L'Agente `Orchestratore` valuta le previsioni generate e, basandosi sul suo ragionamento e sulle preferenze dell'utente, seleziona le strategie più appropriate.
* **Valutazione Logica**: L'agente analizza i dati raccolti per identificare le criptovalute più sicure per un utente conservativo (es. alta capitalizzazione, bassa volatilità) o quelle con un alto potenziale di crescita per un utente aggressivo.
* **Analisi Integrata**: L'agente scarta o modifica le strategie se l'analisi del sentiment indica che sono presenti fattori di rischio non evidenti dai soli dati di mercato.
## Presentazione dei Risultati e Persistenza
Infine, il sistema presenta all'utente un riepilogo dettagliato di tutte le raccomandazioni e salva la sessione per un futuro utilizzo.
* **Consulenza Dettagliata**: La proposta include una serie di possibili investimenti. Per ogni criptovaluta suggerita, il sistema indica la percentuale di portafoglio da investire, la durata consigliata dell'investimento e le ragioni che supportano la scelta.
* **Ragionamenti (Note)**: Vengono aggiunte note esplicative che descrivono il processo decisionale degli agenti, dimostrando il "perché" di una certa scelta.
* **Persistenza Utente**: Tutti i dati della sessione vengono salvati in un database, permettendo all'utente di richiedere una nuova consulenza in futuro per valutare l'andamento del portafoglio e la validità delle scelte fatte.

View File

@@ -1,60 +0,0 @@
### **Progetto di Esame: Agente di Pianificazione Corsi Intelligente**
#### **Obiettivo del Progetto**
Creare un sistema basato su **LLM Agents** capace di generare un piano didattico completo e personalizzato per un corso, a partire da input dell'utente. Il sistema dovrà dimostrare capacità di **ragionamento** , **pianificazione adattiva** e **collaborazione tra agenti** per produrre output strutturati e coerenti.
---
### **1. Architettura del Sistema**
Il sistema è basato su un'architettura a **due livelli** : una **UI** per l'input e un **sistema multi-agente** lato server per l'elaborazione.
* **Interfaccia Utente (UI)** : Frontend semplice e intuitivo che raccoglie i parametri del corso.
* **Input obbligatori** : Argomento del corso, ore totali, numero di lezioni.
* **Input opzionali** : Descrizione aggiuntiva, livello degli studenti (basso, medio, alto), generazione esercizi (toggle), parte pratica (toggle), upload di file (per libri, dispense, ecc.).
* **Motore di Ragionamento (Server)** : Core del sistema, dove agenti autonomi collaborano per produrre i materiali didattici.
---
### **2. Flusso di Lavoro e Ruolo degli Agenti**
Il processo si svolge in una sequenza di passaggi orchestrati dall' **Agente Principale** .
* **Agente `PianificatoreCorso` (Orchestratore)**
* **Funzione** : Riceve tutti gli input dalla UI. È responsabile della coerenza e della coesione del progetto.
1. **Validazione** : Valuta la coerenza degli input (es. se le ore totali corrispondono a `lezioni * ore_per_lezione`).
2. **Ragionamento e Pianificazione** : Genera una bozza di piano del corso, suddividendo l'argomento principale in lezioni e argomenti secondari, bilanciando teoria e pratica in base alle richieste.
3. **Orchestrazione Agenti** : Delega la creazione dei contenuti specifici (presentazioni, dispense, esercizi) agli agenti specializzati, fornendo loro gli input necessari.
* **Agente `GeneratoreContenuti` (Collaboratore)**
* **Funzione** : Crea i documenti testuali per le dispense e le note del relatore per ogni lezione.
* **Input** : Argomenti specifici per la lezione, livello degli studenti.
* **Tool** : Utilizza un LLM (es. `Ollama` o API `OpenAI`) per la generazione di testo dettagliato.
* **Output** : Un file `.md` o `.txt` per ogni lezione.
* **Agente `GeneratorePresentazioni` (Collaboratore)**
* **Funzione** : Realizza le presentazioni `.pptx` per ogni lezione, basandosi sul contenuto generato e su un tema predefinito.
* **Input** : Punti chiave e testo delle slide per ogni argomento, tema grafico.
* **Tool** : Combina un LLM per la generazione del testo delle slide con la libreria **`python-pptx`** per la creazione del file.
* **Output** : Un file `.pptx` per ogni lezione.
* **Agente `GeneratoreEsercizi` (Collaboratore, Opzionale)**
* **Funzione** : Crea esercizi pratici a partire dagli argomenti teorici, in base al livello degli studenti.
* **Input** : Argomenti specifici, tipo di corso (pratico/teorico), livello.
* **Tool** : Utilizza un LLM per descrivere gli esercizi in formato testuale.
* **Output** : Un file di testo con la descrizione degli esercizi per ogni lezione.
* **Agente `RicercatoreWeb` (Collaboratore, Opzionale)**
* **Funzione** : Convalida e arricchisce il piano del corso con informazioni aggiornate o conferme sugli argomenti.
* **Input** : Argomenti del corso.
* **Tool** : Utilizza uno strumento di ricerca web (ad esempio, un'API di ricerca) per trovare riferimenti o dati aggiuntivi.
* **Output** : Dati di supporto da passare agli altri agenti.
---
### **3. Output Finale**
Una volta che tutti gli agenti hanno completato i loro compiti, il programma finale raccoglie i documenti prodotti (`.md`, `.txt`, `.pptx`). L'output sarà una **cartella compressa (`.zip`)** che conterrà tutti i materiali, organizzati per lezione (es. `Lezione_1_Intro_Python/`, `Lezione_2_Variabili/`). Questa struttura permette all'utente di avere subito un pacchetto pronto all'uso.

View File

@@ -1,46 +0,0 @@
### **Progetto di Esame: Agente di Analisi e Consulenza Crypto/Scommesse**
#### **Obiettivo**
Creare un sistema di consulenza basato su **LLM Agents** che analizza dati di mercato in tempo reale per fornire raccomandazioni strategiche e motivate su criptovalute o scommesse sportive. L'obiettivo è dimostrare la capacità dell'agente di interpretare dati complessi, ragionare su di essi e presentare un'analisi comprensibile e razionale.
---
#### **1. Input Utente e Analisi Preliminare**
L'utente fornisce una richiesta di analisi che include:
* **Tipo di analisi:** Criptovalute o scommesse sportive.
* **Dettagli specifici:** Nome della criptovaluta (es. "Ethereum") o nome dell'evento sportivo (es. "Partita di calcio Juventus vs. Inter").
* **Fattori da considerare:** Intervallo di tempo (es. "prossime 24 ore"), infortuni, condizioni meteo.
* **Stile di approccio:** Stile di investimento (aggressivo, conservativo) o tipo di scommessa.
L'**Agente Orchestratore** riceve queste informazioni e le prepara per gli agenti successivi.
---
#### **2. Processo di Analisi e Acquisizione Dati**
Questo processo si basa sulla collaborazione di più agenti specializzati, in linea con l'approccio dei modelli di ragionamento.
* **Agente RicercatoreDati:** Recupera dati di trading da API di exchange (es. Binance) per le criptovalute, o da database di statistiche sportive per le scommesse.
* **Agente AnalistaSentiment:** Esegue l'analisi di news e post su forum e social media per valutare il sentiment del mercato o del pubblico, individuando trend ed emozioni che possono influenzare l'andamento.
* **Agente MotorePredittivo:** Combina i dati numerici e le analisi di sentiment per generare previsioni e strategie plausibili, come un **modello di ragionamento trasparente** .
---
#### **3. Valutazione e Selezione Strategica**
L'**Agente Orchestratore** valuta le previsioni generate e, in base al suo ragionamento, seleziona le strategie più appropriate per l'utente.
* **Valutazione Logica:** Analizza i dati raccolti, come volumi di scambio o statistiche di gioco.
* **Analisi Integrata:** Scarta o modifica le strategie se i dati del sentiment o altri fattori esterni lo rendono necessario. Ad esempio, potrebbe consigliare di non puntare su una squadra anche se le statistiche sono a suo favore, a causa di un report di infortunio.
---
#### **4. Presentazione dei Risultati**
Infine, il sistema presenta all'utente le raccomandazioni strategiche.
* **Consulenza Dettagliata:** Ogni proposta include un riassunto della strategia, le ragioni che la supportano e i dati presi in considerazione.
* **Ragionamenti (Note):** Vengono aggiunte note esplicative che descrivono il processo decisionale degli agenti, dimostrando il "perché" di una certa scelta. Ad esempio: "Questa strategia è consigliata perché l'analisi del sentiment indica un forte interesse nella criptovaluta X, nonostante un recente calo di prezzo."

View File

@@ -1,47 +0,0 @@
### **Progetto di Esame: Agente di Pianificazione Viaggi Intelligente**
#### **Obiettivo**
Creare un sistema di pianificazione viaggi basato su **LLM Agents** che genera itinerari personalizzati e adattivi in base a vincoli e informazioni in tempo reale. L'obiettivo è dimostrare la capacità del sistema di ragionare, adattarsi a eventi esterni e comunicare in modo intelligente.
---
#### **1. Input Utente e Analisi Preliminare**
L'utente interagisce con una semplice interfaccia, fornendo una richiesta di viaggio che include:
* **Vincoli finanziari:** Budget massimo.
* **Preferenze di viaggio:** Tipologia di vacanza (es. mare, montagna, città) e mezzo di trasporto preferito (es. treno, aereo).
* **Tempistiche:** Date di viaggio e durata.
L'**Agente di Comunicazione** riceve queste informazioni e, usando un **LLM**, le interpreta e le formatta per gli agenti successivi.
---
#### **2. Processo di Pianificazione e Acquisizione Dati**
Questo processo si basa sulla collaborazione di più agenti specializzati, in linea con l'approccio dei modelli di ragionamento.
* **Agente Pianificatore:** Sulla base della richiesta iniziale, questo agente genera internamente una serie di **idee di viaggio** iniziali.
* **Agente Meteo:** Per ogni destinazione, richiede le previsioni del tempo tramite un'API REST, come quella di `open-meteo.com` e `openstreetmap.org`.
* **Agente Notizie:** Interroga un'API di notizie (`newsapi.com`) per rilevare eventuali eventi imprevisti o avvisi importanti per le località considerate.
* **Agente Ricerca:** Per ogni idea di viaggio, raccoglie informazioni essenziali sui **punti di interesse**, sfruttando un database statico o un'API semplificata, come suggerito nelle linee guida del progetto.
* **Agente Logistico:** Ottiene dati simulati su opzioni di viaggio (voli, treni) e costi per ciascuna destinazione o da una API esterna (`serpapi.com/google-flights-api`)
---
#### **3. Valutazione e Selezione Adattiva**
L'**Agente Pianificatore** valuta le idee di viaggio in base alle informazioni raccolte dagli altri agenti.
* **Valutazione Logica:** Analizza il budget e la compatibilità dei mezzi di trasporto.
* **Adattabilità:** Scarta o modifica le proposte se le condizioni esterne lo rendono necessario. Ad esempio, non proporrà un viaggio al mare se sono previste forti piogge, o cambierà l'ordine delle tappe in base a notizie rilevanti.
---
#### **4. Presentazione dei Risultati**
Infine, il sistema presenta all'utente un massimo di tre proposte di viaggio.
* **Itinerari Dettagliati:** Ogni proposta include un riepilogo del viaggio, le tappe suggerite e i costi stimati.
* **Ragionamenti (Note):** Vengono aggiunte note esplicative che descrivono il processo decisionale degli agenti, dimostrando il "perché" della scelta fatta. Ad esempio, "Abbiamo evitato la città A perché le notizie riportano un evento di traffico locale".

View File

@@ -1,82 +0,0 @@
### **1. Proposta: Agente di Pianificazione Corsi Intelligente**
#### **Descrizione Dettagliata**
L'agente si concentra sulla generazione dinamica di programmi didattici completi e personalizzati. A differenza dei sistemi statici, questo progetto utilizza un'architettura multi-agente per ragionare sul contenuto, adattarsi a diversi livelli di competenza e produrre materiali didattici pronti all'uso. Il focus è sulla capacità del sistema di pianificare, generare e validare informazioni complesse, trasformando input semplici in una serie di documenti coerenti.
**Features Principali**
* **Pianificazione Adattiva** : Il sistema bilancia automaticamente gli argomenti teorici e pratici in base alle ore disponibili e al livello degli studenti.
* **Generazione di Contenuti Multipli** : Produce non solo il programma, ma anche dispense, presentazioni e note per il relatore, dimostrando la capacità di creare diversi tipi di output da un'unica fonte di dati.
* **Gestione di Dati Eterogenei** : Accetta input strutturati (ore, lezioni) e non strutturati (descrizioni, file di riferimento), dimostrando flessibilità.
* **Output Coerente** : Organizza tutti i materiali generati in una cartella compressa per una consegna facile e organizzata.
#### **Input Utente**
* **Argomento del corso** : Tema principale (es. "Introduzione a Python").
* **Ore totali** : Durata complessiva del corso.
* **Numero di lezioni** : Suddivisione del tempo.
* **Livello studenti** : Basso, medio o alto.
* **Opzioni Aggiuntive** : Toggle per esercizi e parte pratica, upload di file di riferimento.
#### **Agenti Lato Server**
* **Agente `PianificatoreCorso`** : L'orchestratore che riceve l'input, ragiona sulla struttura del corso e delega i compiti agli altri agenti.
* **Agente `GeneratoreDispense`** : Crea documenti testuali formattati per ogni lezione.
* **Agente `GeneratorePresentazioni`** : Genera file PowerPoint (.pptx) usando il contenuto fornito dall'LLM e la libreria `python-pptx`.
* **Agente `GeneratoreEsercizi`** : Produce esercizi pratici descritti testualmente, adattati al livello degli studenti.
---
### **2. Proposta: Agente di Analisi e Consulenza Crypto**
#### **Descrizione Dettagliata**
Il progetto crea un consulente virtuale che utilizza gli **LLM** per analizzare il mercato delle criptovalute. A differenza dei semplici tracker di prezzo, questo agente combina dati di mercato in tempo reale con l'analisi del sentiment online per fornire raccomandazioni strategiche e il ragionamento che le supporta. L'intelligenza del sistema risiede nella sua capacità di elaborare grandi quantità di dati non strutturati (news, social media) e di presentarli in una forma comprensibile e contestualizzata per l'utente.
**Features Principali**
* **Analisi in Tempo Reale** : Si connette a un'API per monitorare prezzi e volumi di scambio.
* **Sentiment Analysis** : Scansiona fonti online per rilevare il sentiment del mercato e i trend.
* **Consigli Strategici** : Non si limita a mostrare i dati, ma propone una strategia (es. "compra", "vendi", "hold") e ne spiega le motivazioni.
* **Ragionamento Trasparente** : Fornisce un resoconto dettagliato del processo decisionale, elencando i fattori che hanno portato a una specifica raccomandazione.
#### **Input Utente**
* **Nome della criptovaluta** : La moneta da analizzare (es. "Bitcoin", "Ethereum").
* **Intervallo di tempo** : Ore, giorni o settimane.
* **Stile di trading** : Aggressivo, conservativo.
#### **Agenti Lato Server**
* **Agente `RicercatoreMercato`** : Recupera dati di trading da API pubbliche.
* **Agente `AnalistaSentiment`** : Esegue lo scraping di notizie e post sui social per l'analisi del sentiment.
* **Agente `ConsulenteStrategico`** : Combina i dati raccolti, il sentiment e le preferenze dell'utente per formulare una strategia e le sue motivazioni.
---
### **3. Proposta: Agente di Pianificazione Viaggi Intelligente**
#### **Descrizione Dettagliata**
Questo progetto è un sistema che pianifica viaggi personalizzati e adattivi. L'agente intelligente non si limita a proporre un itinerario fisso, ma ragiona e modifica il piano in base a informazioni in tempo reale, dimostrando la sua capacità di adattamento a eventi imprevisti. La forza del progetto sta nel mostrare come un LLM può integrare dati da fonti eterogenee (meteo, notizie, punti di interesse) per prendere decisioni complesse e generare un output coerente e personalizzato.
**Features Principali**
* **Adattabilità in Tempo Reale** : Il piano di viaggio si adatta a variabili come le condizioni meteorologiche o gli eventi locali.
* **Pianificazione Basata su Dati** : Il sistema utilizza informazioni reali e simulazioni per ottimizzare il viaggio in base ai vincoli dell'utente e alle condizioni esterne.
* **Ragionamento Esplicito** : Spiega all'utente il "perché" di ogni decisione presa (es. "Abbiamo evitato la città A a causa di un evento locale imprevisto").
* **Output Organizzato** : Il risultato è un itinerario chiaro e dettagliato con tutte le informazioni necessarie per l'utente.
#### **Input Utente**
* **Vincoli finanziari** : Budget massimo.
* **Preferenze di viaggio** : Mare, montagna, città, ecc.
* **Tempistiche** : Date di viaggio e durata.
#### **Agenti Lato Server**
* **Agente `Pianificatore`** : L'orchestratore che crea l'itinerario e lo adatta in base alle informazioni degli altri agenti.
* **Agente `Meteo`** : Interroga un'API per le previsioni meteorologiche.
* **Agente `Notizie`** : Cerca eventi locali e notizie che potrebbero influenzare il viaggio.
* **Agente `Ricerca`** : Recupera informazioni sui punti di interesse, voli e treni da database o API.