Agent e Worker Node
Questa sezione documenta l'architettura e l'implementazione dell'Agente LangGraph e del Worker Node che costituiscono il cuore del sistema di elaborazione intelligente della piattaforma Tidiko.
Architettura del Sistema
Il sistema è composto da due componenti principali che lavorano in sinergia:
Agente LangGraph (node-agent)
L'agente è il componente frontend che gestisce le interazioni con gli utenti e coordina le operazioni complesse. Utilizza il framework LangGraph per orchestrare flussi di lavoro intelligenti basati su AI.
Caratteristiche principali:
- API REST per comunicazione con il frontend
- Streaming in tempo reale per risposte immediate
- Gestione conversazioni con memoria persistente
- Ricerca prodotti intelligente con AI
- Elaborazione documenti e RAG (Retrieval Augmented Generation)
- Sistema di autenticazione e sicurezza
Worker Node (node-worker)
Il worker è il motore di elaborazione che esegue le operazioni pesanti in background, garantendo performance ottimali e scalabilità.
Funzionalità principali:
- Elaborazione URL e crawling web
- Processamento documenti (PDF, Word, etc.)
- Generazione embeddings per ricerca semantica
- Elaborazione prodotti e cataloghi
- Sistema di logging avanzato
- Gestione code e task asincroni
Deploy Docker Unificato con Profiles
I due progetti Node.js sono mantenuti nella stessa repository per facilitare il deploy Docker unificato. A partire dalla versione corrente, utilizziamo Docker Compose Profiles per gestire tutti gli ambienti con un singolo file di configurazione.
Vantaggi del Deploy Unificato con Profiles
- Sincronizzazione delle versioni: Garantisce che agent e worker utilizzino sempre versioni compatibili delle dipendenze
- Gestione semplificata: Un singolo
docker-compose.ymlcon profiles per tutti gli ambienti (dev, staging, prod) - Comunicazione ottimizzata: I servizi possono comunicare tramite rete Docker interna
- Deploy atomico: Aggiornamenti coordinati senza disallineamenti tra componenti
- Monitoraggio centralizzato: Logs e metriche unificati per debugging e osservabilità
- Configurazione condivisa: Variabili d'ambiente e configurazioni comuni
- Nessuna duplicazione: Un solo file da manutenere invece di 3+ file separati
- Cambio ambiente istantaneo: Basta cambiare il profile per passare da dev a prod
Struttura del Deploy
tidiko-node-agent/
├── main/ # Agente LangGraph
│ ├── src/
│ ├── package.json
│ ├── Dockerfile # Build produzione
│ └── Dockerfile.dev # Build development
├── hatchet/ # Worker Node
│ ├── src/
│ ├── package.json
│ ├── Dockerfile.worker # Build produzione
│ └── Dockerfile.worker.dev # Build development
├── docker-compose.yml # Orchestrazione unificata con profiles
├── deploy.sh # Script helper Linux/Mac
├── deploy.ps1 # Script helper Windows
├── env.dev.example # Template config dev
├── env.staging.example # Template config staging
└── env.prod.example # Template config prod
Quick Start
# 1. Copia configurazione ambiente
cp env.dev.example .env
# 2. Modifica .env con i tuoi valori
# 3. Avvia ambiente desiderato
./deploy.sh up dev # Development
./deploy.sh up staging # Staging
./deploy.sh up prod # Production
# Windows PowerShell
.\deploy.ps1 up dev
Flusso di Lavoro
- Frontend invia richieste all'Agente LangGraph
- Agente analizza la richiesta e crea task per il Worker
- Worker elabora i task in background
- Agente riceve i risultati e li formatta per l'utente
- Frontend presenta la risposta all'utente
Documentazione Dettagliata
- Agente LangGraph - Configurazione e API dell'agente
- Worker Node - Funzionalità e processi del worker
- Deploy e Monitoraggio - Guida completa al deploy
Tecnologie Utilizzate
- LangGraph: Orchestrazione di flussi AI
- Node.js: Runtime JavaScript
- TypeScript: Tipizzazione statica
- Docker: Containerizzazione
- Redis: Cache e gestione code
- PostgreSQL: Database persistente
- OpenAI: Modelli di linguaggio
- Vector Store: Ricerca semantica
Questa architettura garantisce scalabilità, manutenibilità e performance ottimali per il sistema Tidiko.