Funzionalità principali
Una mappa completa di ciò che Letaido può costruire oggi. Ogni capacità è una primitiva che compone, non qualcosa che finge di fare.
Panoramica
| Funzionalità | Cos'è | Dove si trova |
|---|---|---|
| File | Lettura/scrittura/modifica reale su un filesystem di tua proprietà | ~/workspace/ |
| Database | PostgreSQL, l'archivio persistente per tutto | Tre DB nominati (vedi Data) |
| App web interna | App Flask riservata ai membri (la Console) | console-http, solo membri |
| App web pubblica | App Flask rivolta a Internet (il sito pubblico) | site-http, processo separato dietro nginx |
| Connettori | Wrapper API di terze parti tipizzati (Ahrefs, Slack, HubSpot, ...) | Dispatcher di connettori locale |
| Automazioni | Script pianificati, esecuzioni di agenti pianificate ed esecuzioni basate su trigger | Automazioni registrate nella tua area di lavoro |
| Webhook e trigger | Reazioni basate su eventi a segnali di terze parti | Trigger dei connettori + ad-hoc |
| Skill | Playbook riutilizzabili che l'agente legge su richiesta | ~/workspace/skills/ + piattaforma |
| Memoria | Persistenza tra chat di fatti che contrassegni | ~/workspace/.memory.md |
| Ricerca | Ricerca web, recupero pagine, sintesi multi-fase con fonti | Integrata |
| Accesso LLM | Chiamate a oltre 300 modelli tramite un proxy locale | Proxy LLM locale |
| Esportazioni file | Generazione di PDF e PNG tramite un percorso di rendering sicuro per sandbox | Integrata (vedi skill PDF) |
Files
Letaido ha accesso in lettura/scrittura/modifica alla tua Area di lavoro. Tratta i file come output del lavoro, non come spazio di lavoro temporaneo.
- Bozze, note e raccolte di ricerche sono in markdown.
- Codice, generatori e script occasionali sono in
.py. - I file che carichi nella chat finiscono in
~/workspace/uploads/e vengono referenziati con il percorso assoluto. - I file che vuoi condividere finiscono in
~/workspace/downloads/e vengono pubblicati tramite un URL di download registrato.
Cosa NON fa: scrivere al di fuori della tua area di lavoro negli elementi interni della piattaforma, modificare la proprietà dei file o toccare altre aree di lavoro.
Database
PostgreSQL è l'unico archivio persistente. Niente SQLite, niente JSON su disco, niente dizionari in memoria che svaniscono al riavvio.
Tre database, ciascuno con un pubblico diverso (trattato in Dati e archiviazione):
- console_db per strumenti interni e stato privato.
- site_db per i contenuti serviti dal sito pubblico.
- console_site_db per canali espliciti tra le superfici.
App web interna (la Console)

Quando chiedi "una pagina dove posso incollare X e ottenere Y", l'artefatto è un'applicazione Console: un blueprint Python più un template Jinja, registrato automaticamente in un'app Flask riservata ai membri.
- Le route sono disponibili a URL prevedibili (
/applications/<slug>/). - Le pagine possono leggere dal database, chiamare i connettori e visualizzare i risultati.
- L'app si riavvia automaticamente quando modifichi i file; non devi mai eseguire
flask runmanualmente.
App web pubblica (il sito pubblico)

Un processo Flask separato che serve l'internet aperto, con il proprio ruolo di database e tre modalità di visibilità (off, authorized, open). Qui si trovano le pagine rivolte ai clienti, i flussi di lead generation, i report pubblici e questa documentazione.
Il sito pubblico può leggere i dati pre-calcolati scritti dalla Console, ma non può accedere allo stato interno della Console. Questa separazione è applicata a livello di sistema operativo e database, non per convenzione.
Connettori

Wrapper tipizzati per API di terze parti. La scoperta è un albero (provider → categoria → connector), ogni chiamata viene registrata, ogni credenziale ha un ambito definito e ogni nuova superficie (chat, Console, sito) richiede la propria approvazione.
Collegati oggi, raggruppati in base al loro utilizzo tipico:
- Intelligence SEO e marketing: Ahrefs (suite completa), Semrush, Apify, Firehose.
- CRM e vendite: HubSpot, Gong, Chargebee, Stripe.
- Comunicazione e collaborazione: Slack, Notion, Linear, GitHub.
- Contenuti ed email: WordPress, Mailchimp, Resend, SendGrid, Fathom.
- Dati e operazioni: Airtable.
- Infrastruttura: Cloudflare, DNSimple.
I nuovi provider vengono aggiunti regolarmente. Consulta la scheda Connectors nella tua Area di lavoro per l'elenco aggiornato.
Automazioni

Il lavoro ricorrente viene gestito come automazioni registrate, non come "ricordamelo più tardi" nella chat. Un'automazione può essere uno script Python eseguito tramite cron, una chat con agente pianificata che viene eseguita con un prompt fisso, oppure un'esecuzione basata su trigger che si attiva in risposta a un evento di terze parti. Ognuna viene inviata per l'approvazione del proprietario/amministratore e poi viene eseguita secondo la sua pianificazione, con stdout e stderr acquisiti per ogni esecuzione.
Richieste tipiche: scansioni settimanali dei concorrenti, istantanee giornaliere del traffico, aggiornamenti orari di Brand Radar, riepiloghi del lunedì mattina come quello che aggiorna questi documenti.
Webhook e trigger
Letaido può ascoltare oltre che effettuare il polling. I trigger dei connettori (messaggi Slack, eventi GitHub, cambiamenti di stato Linear, modifiche ai record HubSpot) inviano gli eventi in una coda locale che un'app o un job consuma.
Per i servizi senza un trigger del connettore, c'è comunque un percorso webhook ad-hoc con riconoscimento esplicito, così gli eventi non vengono eliminati in modo silenzioso.
Skill

Una skill è una cartella con un file SKILL.md e qualsiasi risorsa di supporto. L'agente li legge su richiesta quando l'attività corrisponde. Alcune skill sono fornite dalla piattaforma (Postgres, Pydantic, esportazione PDF, ricerca web). Altre sono specifiche dell'area di lavoro e si trovano in ~/workspace/skills/, inclusi il tono di voce del brand, il manuale di design, la banca dei post e la strategia di marketing per il tuo team.
Gli Skill sono il modo in cui Letaido impara il tuo stile aziendale senza che questo si infiltri in ogni chat come testo standard.
Memoria

Letaido legge ~/workspace/.memory.md all'inizio di ogni chat. Quando dici "ricorda questo: X," viene aggiunto. Cose utili da ricordare: ruolo, vocabolario ricorrente, regole stilistiche, obiettivi a lungo termine. Cose da non ricordare: informazioni sensibili, qualsiasi cosa che cambia settimanalmente.
C'è anche un registro delle modifiche (progress.md) a cui l'agente aggiunge informazioni dopo ogni cambiamento significativo, così puoi ricostruire cosa è successo nelle varie sessioni.
Ricerca
- Ricerca web su tutto il web aperto con estratti evidenziati (abbastanza spesso; evita un recupero).
- Recupero della pagina come markdown pulito (rimuove annunci, navigazione, contenuti standard).
- Ricerca multi-fase che alterna ricerca e sintesi quando l'attività è ampia.
- Lettura di PDF caricati, trascrizioni, presentazioni ed estrazione di output strutturato.
Letaido cita le fonti per impostazione predefinita e ti avvisa quando non è in grado di verificare un'affermazione.
Accesso LLM

Letaido stesso ragiona attraverso un LLM. Espone anche questa capacità ad app e job attraverso un proxy locale: qualsiasi codice può chiamare gli ultimi modelli Claude, GPT, Gemini e oltre 300 altri modelli senza gestire chiavi API. Questo significa che le app Console e i job in background che l'agente crea per te possono a loro volta eseguire agenti di IA e chiamate LLM al loro interno, non solo nella chat in cui parli con Letaido.
Questo è ciò che alimenta cose come "un'app che prende un URL e restituisce uno script video di 90 secondi nella nostra voce del brand", o un job che classifica i lead in entrata di HubSpot con un LLM ogni ora.
Esportazione di file
Generazione di PDF e PNG in un percorso sicuro per la sandbox. C'è una skill dedicata che elenca quali librerie funzionano all'interno di questa sandbox (Pillow, ReportLab, percorsi headless) e quali evitare (la maggior parte degli esportatori basati su web-canvas).
Se chiedi "un PDF di questo report", l'agente legge prima la skill per scegliere un percorso funzionante, invece di tirare a indovinare.
Sotto il cofano. Ogni funzionalità sopra descritta corrisponde a un piccolo insieme di primitive: una scrittura di file, una query SQL, un blueprint Flask, una voce cron, una sottoscrizione webhook, un'invocazione di connettore. L'agente non inventa primitive. Le compone. Ecco perché "costruiscimi qualcosa che faccia X ogni Y e notifichi Z" è una richiesta dalla forma affidabile.