Capacidades principales
Un mapa completo de lo que Letaido puede construir hoy. Cada capacidad es una primitiva que compone, no algo que finge hacer.
De un vistazo
| Capacidad | Qué es | Dónde se encuentra |
|---|---|---|
| Archivos | Lectura/escritura/edición real en un sistema de archivos que posees | ~/workspace/ |
| Base de datos | PostgreSQL, el almacenamiento persistente para todo | Tres bases de datos con nombre (ver Datos) |
| Aplicación web interna | Aplicación Flask solo para miembros (la Consola) | console-http, solo para miembros |
| Aplicación web pública | Aplicación Flask de cara a Internet (el sitio público) | site-http, proceso separado detrás de nginx |
| Conectores | Envoltorios de API de terceros tipados (Ahrefs, Slack, HubSpot, ...) | Despachador de conectores local |
| Automatizaciones | Scripts programados, ejecuciones de agentes programadas y ejecuciones activadas por eventos | Automatizaciones registradas en tu espacio de trabajo |
| Webhooks y activadores | Reacciones basadas en eventos a señales de terceros | Activadores de conectores + ad-hoc |
| Habilidades | Manuales reutilizables que el agente lee bajo demanda | ~/workspace/skills/ + plataforma |
| Memoria | Persistencia entre chats de datos que marcas | ~/workspace/.memory.md |
| Investigación | Búsqueda web, obtención de páginas, síntesis multietapa con fuentes | Integrada |
| Acceso a LLM | Llamadas a más de 300 modelos a través de un proxy local | Proxy LLM local |
| Exportaciones de archivos | Generación de PDF y PNG bajo una ruta de renderizado segura en sandbox | Integrada (ver habilidad PDF) |
Archivos
Letaido tiene acceso de lectura/escritura/edición a tu espacio de trabajo. Trata los archivos como el resultado del trabajo, no como espacio de borrador.
- Los borradores, notas y volcados de investigación se guardan como markdown.
- El código, los generadores y los scripts únicos se guardan como
.py. - Los archivos que subas al chat se guardan en
~/workspace/uploads/y se referencian por ruta absoluta. - Los archivos que quieras compartir se guardan en
~/workspace/downloads/y se publican mediante una URL de descarga registrada.
Lo que NO hace: escribir fuera de tu espacio de trabajo en los componentes internos de la plataforma, cambiar la propiedad de archivos o tocar otros espacios de trabajo.
Base de datos
PostgreSQL es el único almacenamiento persistente. Nada de SQLite, nada de JSON en disco, nada de diccionarios en memoria que desaparecen al reiniciar.
Tres bases de datos, cada una con una audiencia diferente (cubierto en Datos y almacenamiento):
- console_db para herramientas internas y estado privado.
- site_db para contenido que sirve el sitio público.
- console_site_db para canales explícitos entre superficies.
Aplicación web interna (la consola)

Cuando pides "una página donde pueda pegar X y obtener Y", el artefacto es una aplicación de consola: un blueprint de Python más una plantilla Jinja, registrados automáticamente en una aplicación Flask solo para miembros.
- Las rutas están activas en URLs predecibles (
/applications/<slug>/). - Las páginas pueden leer de la base de datos, llamar a conectores y renderizar resultados.
- La aplicación se reinicia automáticamente al cambiar archivos; nunca ejecutas
flask runmanualmente.
Aplicación web pública (el sitio público)

Un proceso Flask independiente que sirve a Internet abierta, con su propio rol de base de datos y tres modos de visibilidad (desactivado, autorizado, abierto). Aquí es donde se encuentran las páginas de cara al cliente, los flujos de generación de leads, los informes públicos y esta documentación.
El sitio público puede leer datos precalculados que escribe la consola, pero no puede acceder al estado interno de la consola. Esa separación se aplica a nivel del sistema operativo y de la base de datos, no por convención.
Conectores

Envoltorios tipados alrededor de APIs de terceros. Discovery es un árbol (proveedor → categoría → conector), cada llamada se registra, cada credencial tiene un alcance definido y cada nueva superficie (chat, consola, sitio) requiere su propia aprobación.
Conectadas hoy, agrupadas por su uso habitual:
- Inteligencia de SEO y marketing: Ahrefs (suite completa), Semrush, Apify, Firehose.
- CRM y ventas: HubSpot, Gong, Chargebee, Stripe.
- Comunicación y colaboración: Slack, Notion, Linear, GitHub.
- Contenido y correo electrónico: WordPress, Mailchimp, Resend, SendGrid, Fathom.
- Datos y operaciones: Airtable.
- Infraestructura: Cloudflare, DNSimple.
Se añaden nuevos proveedores con regularidad. Consulta la pestaña Conectores en tu espacio de trabajo para ver la lista actualizada.
Automatizaciones

El trabajo recurrente se registra como automatizaciones, no como "recuérdamelo más tarde" en el chat. Una automatización es un script de Python que se ejecuta en cron, un chat de agente programado que se ejecuta con un prompt fijo, o una ejecución activada por eventos que se dispara ante un evento de terceros. Cada una se envía para la aprobación del propietario/administrador y luego se ejecuta según su programación con stdout y stderr capturados para cada ejecución.
Peticiones típicas: escaneos semanales de la competencia, instantáneas diarias de tráfico, actualizaciones por hora de Brand Radar, resúmenes de los lunes por la mañana como el que actualiza estos documentos.
Webhooks y activadores
Letaido puede escuchar y sondear. Los activadores de conectores (mensajes de Slack, eventos de GitHub, cambios de estado de Linear, cambios de registros de HubSpot) entregan eventos en una cola local que una aplicación o trabajo consume.
Para servicios sin un activador de conector, todavía existe una ruta de webhook ad-hoc con confirmación explícita para que los eventos no se descarten silenciosamente.
Habilidades

Una skill es una carpeta con un archivo SKILL.md y cualquier recurso de apoyo. El agente los lee bajo demanda cuando la tarea coincide. Algunas skills vienen con la plataforma (Postgres, Pydantic, exportación de PDF, búsqueda web). Otras son específicas del espacio de trabajo y se encuentran en ~/workspace/skills/, incluyendo la voz de marca, el manual de diseño, el banco de publicaciones y la estrategia de marketing de tu equipo.
Las habilidades son la forma en que Letaido aprende el estilo de tu casa sin que se filtre en cada chat como texto estándar.
Memoria

Letaido lee ~/workspace/.memory.md al inicio de cada chat. Cuando dices "recuerda esto: X", se añade. Cosas buenas para recordar: rol, vocabulario recurrente, reglas de estilo, objetivos a largo plazo. Cosas malas para recordar: cualquier cosa sensible, cualquier cosa que cambie semanalmente.
También hay un registro de cambios (progress.md) al que el agente añade información después de cada cambio significativo, para que puedas reconstruir lo que ha sucedido a lo largo de las sesiones.
Investigación
- Búsqueda web en la web abierta con fragmentos destacados (a menudo es suficiente; ahorra una búsqueda).
- Obtención de páginas como markdown limpio (elimina anuncios, navegación y texto repetitivo).
- Investigación en varias etapas alternando búsqueda y síntesis cuando la tarea es amplia.
- Lectura de PDFs, transcripciones y presentaciones cargadas, y extracción de resultados estructurados.
Letaido cita fuentes por defecto y te indica cuándo no ha podido verificar una afirmación.
Acceso a LLM

Letaido en sí mismo razona a través de un LLM. También expone esa capacidad a las aplicaciones y tareas a través de un proxy local: cualquier código puede llamar a los últimos modelos de Claude, GPT, Gemini y más de 300 modelos sin gestionar claves API. Esto significa que las aplicaciones de la consola y las tareas en segundo plano que el agente crea para ti pueden ejecutar agentes de IA y llamadas LLM dentro de ellas, no solo en el chat en el que hablas con Letaido.
Esto es lo que impulsa cosas como "una aplicación que toma una URL y devuelve un guion de vídeo de 90 segundos con la voz de nuestra marca", o una tarea que clasifica los leads entrantes de HubSpot con un LLM cada hora.
Exportaciones de archivos
Generación de PDF y PNG en una ruta segura de sandbox. Hay una habilidad dedicada que enumera qué bibliotecas funcionan dentro de este sandbox (Pillow, ReportLab, rutas headless) y cuáles evitar (la mayoría de los exportadores basados en web-canvas).
Si pides "un PDF de este informe", el agente lee primero la habilidad para elegir una ruta que funcione, en lugar de adivinar.
Bajo el capó. Cada capacidad anterior se asigna a un pequeño conjunto de primitivas: una escritura de archivo, una consulta SQL, un blueprint de Flask, una entrada cron, una suscripción a webhook, una invocación de conector. El agente no inventa primitivas. Las compone. Por eso "constrúyeme algo que haga X cada Y y notifique a Z" es una forma de solicitud fiable.