Ultima verifica:
Letta è il progetto che un tempo si chiamava MemGPT, ora rinominato e distribuito sotto uno sponsor commerciale vero e proprio. È l’approccio open source più pulito agli agenti stateful che abbia mai usato. Il rovescio della medaglia è che il valore sta nello strato di memoria, e quello strato di memoria è un vero database PostgreSQL più pgvector. Questo cambia il tipo di VPS da scegliere.
Per questo articolo ho fatto girare Letta per undici settimane su due macchine, confrontando come reggono le query di memoria man mano che cresce il numero di agenti.
Di cosa ha davvero bisogno Letta
Il runtime dell’agente è leggero: FastAPI, un worker per il loop degli step dell’agente, uno strato websocket. Forse 250-400 MB di RAM residente anche con venti agenti.
Il vero fattore di costo è il database. Postgres più pgvector per la memoria vettoriale, più storage di archiviazione per i blocchi di passaggi a lungo termine. Con un uso intenso si osserva:
- Qualche centinaio di MB di working set in Postgres per gli indici
- Un uso del disco che cresce costantemente man mano che si accumulano conversazioni e passaggi inseriti
- Picchi di CPU quando una nuova conversazione innesca una query di recall su tutti i blocchi
Per questo l’I/O del disco conta di più per Letta che per un agente stateless.
Confronto VPS per Letta
| Provider | Piano | vCPU | RAM | Disco | Mensile | Ideale per |
|---|---|---|---|---|---|---|
| Hetzner Cloud | CCX13 | 2 | 8 GB | 80 GB NVMe | 42.99 EUR | Scelta predefinita, utente singolo o team piccolo |
| Contabo VPS | VPS S | 4 | 8 GB | 100 GB NVMe | 4.50 EUR | Scelta economica, accetta un provisioning più lento |
| DigitalOcean | Premium AMD 2 GB | 2 | 4 GB | 80 GB NVMe | 21 USD | Team USA, carico leggero |
| Hetzner | EX44 dedicated | 6 cores | 64 GB | 2x 512 GB NVMe | 51 EUR | Produzione intensiva con molti agenti |
Hetzner Cloud CCX13: la scelta predefinita
NVMe e vCPU dedicata rendono le query pgvector scattanti. Con un centinaio di agenti e qualche migliaio di passaggi memorizzati, il recall di memoria resta sotto i 200 ms a questo livello, che è quanto serve perché il loop dell’agente sembri reattivo. Lo strato di memoria di archiviazione di Letta genera moltissimi piccoli insert, e l’I/O di Hetzner è abbastanza costante da evitare il rallentamento di tardo pomeriggio che si vede su alcune piattaforme condivise.
I vantaggi che contano qui:
- L’NVMe gestisce il pattern di scrittura di pgvector senza problemi
- La regione di Falkenstein resta sotto gli 80 ms verso Anthropic e OpenAI
- API più Terraform significa poter ricostruire rapidamente da uno snapshot
Lo svantaggio reale: il livello CCX più economico si ferma a 8 GB. Una volta superato, si passa al CCX23 a un prezzo quasi doppio.
Prendi Hetzner qui: Hetzner Cloud.
Contabo VPS S: la scelta economica
4 vCPU e 8 GB a 4.50 EUR sono difficili da battere sulla carta, e i piani NVMe più recenti reggono bene per Letta finché non si superano poche centinaia di agenti. Il fastidio è il tempo di provisioning, che si misura in ore e non in secondi. Se configuri la macchina una volta sola e la lasci girare, non te ne accorgerai nemmeno.
Il compromesso: la latenza in uscita verso gli endpoint di OpenAI e Anthropic è sistematicamente peggiore di 100-200 ms rispetto a Hetzner dai data center europei di Contabo. Per Letta questo si traduce in step dell’agente più lenti quando è il modello a fare il lavoro pesante.
Prendi Contabo: Contabo VPS.
DigitalOcean Premium AMD 2 GB: la configurazione USA orientali
Se il team è in Nord America, i nodi Premium AMD di DigitalOcean a NYC3 offrono la latenza più bassa verso OpenAI e Anthropic tra i provider mainstream. 4 GB di RAM bastano per una manciata di utenti con pochi agenti. Oltre quella soglia passerei direttamente al piano da 8 GB.
Nota negativa onesta: 21 USD per 4 GB è caro rispetto a Hetzner. Si paga per la regione e per il sistema di snapshot.
Configura DigitalOcean: DigitalOcean.
Hetzner EX44 dedicato: quando Letta diventa produzione
Quando Letta diventa la spina dorsale di un prodotto, i livelli cloud condivisi iniziano a sembrare stretti. L’EX44 con 6 core e 64 GB di RAM offre il margine necessario per tunare Postgres a dovere, tenere l’indice vettoriale in RAM e non preoccuparsi dei vicini rumorosi. Il prezzo è abbastanza competitivo da sorprendermi che non più persone ci saltino direttamente sopra.
Prendi un server dedicato Hetzner: Hetzner Robot.
Consigli di sizing di Postgres per Letta
Tre cose che avrei voluto sapere prima:
- Imposta shared_buffers al 25 percento della RAM. Il valore predefinito di 128 MB è sbagliato per qualsiasi carico di lavoro reale. Letta sollecita molto la buffer cache durante il recall di memoria.
- Sposta il WAL su un disco separato se puoi. Su un server dedicato è un grande vantaggio. Su un VPS cloud a disco singolo, saltalo.
- Fai il vacuum spesso. Gli insert della memoria di archiviazione e gli aggiornamenti dei passaggi creano molte dead tuple. Imposta autovacuum_naptime a 30 secondi quando l’uso è intenso.
Cosa sceglierei davvero
La maggior parte delle persone vuole una di queste opzioni:
- UE, uso quotidiano predefinito: Hetzner CCX13
- UE, spesa minima, macchina di lunga durata: Contabo VPS S
- Team USA: DigitalOcean Premium AMD 4 GB o 8 GB
- Produzione con molti utenti: Hetzner EX44 dedicato
Per il quadro completo, vedi il confronto SelfHostVPS. Letta si evolve rapidamente e aggiorno questa pagina quando lo schema del database o lo strato di storage cambiano in modo significativo.
Frequently asked questions
Qual è la configurazione minima del VPS per ospitare Letta in autonomia?
2 vCPU e 4 GB di RAM sono il minimo se Letta punta a un'API del modello remota. Il grosso del carico deriva dal database PostgreSQL più pgvector, dal server FastAPI e dal runtime dell'agente. Con dieci o venti agenti attivi si resta comodamente sotto i 2 GB residenti. Non appena si iniziano a memorizzare decine di migliaia di passaggi di memoria, conviene passare a 8 GB perché l'indice vettoriale resti in RAM.
Letta ha bisogno di un proprio server PostgreSQL?
Letta include una modalità SQLite integrata per i test e una modalità PostgreSQL più pgvector per l'uso reale. Per l'hosting autonomo conviene la modalità Postgres, sullo stesso VPS oppure su un database gestito. SQLite va bene per il primo weekend, ma diventa un disastro al terzo mese.
Si può far girare Letta su un VPS Contabo da 5 dollari?
Sì, per un singolo utente con una manciata di agenti. Il server Letta in sé è leggero. Il punto di rottura arriva quando ci sono molti agenti con blocchi di memoria grandi. A quella scala la ricerca di similarità di pgvector diventa il collo di bottiglia e servono dischi più veloci e più RAM.
Serve una GPU sul VPS per Letta?
Solo se si ospita il modello linguistico in autonomia. Letta è puramente un livello di orchestrazione e storage, senza inferenza locale. Una macchina solo CPU, come un Hetzner CCX o un'istanza Contabo NVMe, è la configurazione normale, con la chiave API del modello che punta a OpenAI, Anthropic o a un proprio server vLLM altrove.