Principais recursos
Um mapa completo do que o Letaido pode construir hoje. Cada capacidade é uma primitiva que ele compõe, não algo que finge fazer.
Visão geral
| Capacidade | O que é | Onde fica |
|---|---|---|
| Arquivos | Leitura/gravação/edição real em um sistema de arquivos seu | ~/workspace/ |
| Banco de dados | PostgreSQL, o armazenamento persistente para tudo | Três BDs nomeados (veja Dados) |
| Aplicativo web interno | Aplicativo Flask exclusivo para membros (o Console) | console-http, exclusivo para membros |
| Aplicativo web público | Aplicativo Flask voltado para a internet (o site público) | site-http, processo separado atrás do nginx |
| Conectores | Wrappers de API de terceiros tipados (Ahrefs, Slack, HubSpot, ...) | Dispatcher de conector local |
| Automações | Scripts agendados, execuções de agente agendadas e execuções acionadas por gatilho | Automações registradas na sua área de trabalho |
| Webhooks e gatilhos | Reações orientadas por eventos a sinais de terceiros | Gatilhos de conector + ad-hoc |
| Habilidades | Playbooks reutilizáveis que o agente lê sob demanda | ~/workspace/skills/ + plataforma |
| Memória | Persistência entre chats de fatos que você sinaliza | ~/workspace/.memory.md |
| Pesquisa | Busca na web, busca de páginas, síntese em várias etapas com fontes | Integrado |
| Acesso a LLM | Chamadas para mais de 300 modelos através de um proxy local | Proxy LLM local |
| Exportações de arquivo | Geração de PDF e PNG sob um caminho de renderização seguro em sandbox | Integrado (veja habilidade de PDF) |
Arquivos
O Letaido tem acesso de leitura/gravação/edição à sua área de trabalho. Ele trata os arquivos como resultado do trabalho, não como espaço de rascunho.
- Rascunhos, notas e dumps de pesquisa ficam como markdown.
- Código, geradores e scripts únicos ficam como
.py. - Uploads que você solta no chat ficam em
~/workspace/uploads/e são referenciados por caminho absoluto. - Arquivos que você quer compartilhar ficam em
~/workspace/downloads/e são publicados via URL de download registrada.
O que ele NÃO faz: escrever fora da sua área de trabalho nos componentes internos da plataforma, alterar a propriedade de arquivos ou acessar outras áreas de trabalho.
Banco de dados
O PostgreSQL é o único armazenamento persistente. Sem SQLite, sem JSON em disco, sem dicionários em memória que desaparecem ao reiniciar.
Três bancos de dados, cada um com um público diferente (abordado em Dados e armazenamento):
- console_db para ferramentas internas e estado privado.
- site_db para conteúdo que o site público serve.
- console_site_db para canais explícitos entre superfícies.
Aplicativo da web interno (o Console)

Quando você pede "uma página onde eu possa colar X e obter Y", o artefato é um aplicativo de Console: um blueprint Python mais um template Jinja, registrado automaticamente em um aplicativo Flask exclusivo para membros.
- As rotas ficam ativas em URLs previsíveis (
/applications/<slug>/). - As páginas podem ler do banco de dados, chamar conectores e renderizar resultados.
- O aplicativo reinicia automaticamente quando há alteração de arquivo; você nunca executa
flask runmanualmente.
Aplicativo web público (o site público)

Um processo Flask separado que atende à internet aberta, com sua própria função de banco de dados e três modos de visibilidade (desativado, autorizado, aberto). É aqui que ficam as páginas voltadas para o cliente, fluxos de geração de leads, relatórios públicos e estes documentos.
O site público pode ler dados pré-computados que o Console grava, mas não pode acessar o estado interno do Console. Essa separação é imposta no nível do sistema operacional e do banco de dados, não por convenção.
Conectores

Wrappers tipados em torno de APIs de terceiros. A descoberta é uma árvore (provedor → categoria → conector), cada chamada é registrada, cada credencial tem escopo definido e cada nova superfície (chat, Console, site) requer sua própria aprovação.
Conectados hoje, agrupados pelo que normalmente são usados para:
- Inteligência de SEO e marketing: Ahrefs (conjunto completo), Semrush, Apify, Firehose.
- CRM e vendas: HubSpot, Gong, Chargebee, Stripe.
- Comunicação e colaboração: Slack, Notion, Linear, GitHub.
- Conteúdo e e-mail: WordPress, Mailchimp, Resend, SendGrid, Fathom.
- Dados e operações: Airtable.
- Infraestrutura: Cloudflare, DNSimple.
Novos provedores são adicionados regularmente. Consulte a guia Conectores na sua Área de trabalho para ver a lista atualizada.
Automações

O trabalho recorrente fica registrado como automações, não como "lembre-me mais tarde" no chat. Uma automação pode ser um script Python executado no cron, um chat de agente agendado que é executado com um prompt fixo ou uma execução acionada por gatilho que é disparada por um evento de terceiros. Cada uma é enviada para aprovação do proprietário/administrador e depois é executada conforme o agendamento, com stdout e stderr capturados para cada execução.
Solicitações típicas: verificações semanais de concorrentes, instantâneos diários de tráfego, atualizações horárias do Brand Radar, resumos de segunda-feira de manhã como o que atualiza esses documentos.
Webhooks e gatilhos
O Letaido pode ouvir e também fazer polling. Os gatilhos do conector (mensagens do Slack, eventos do GitHub, mudanças de estado do Linear, mudanças de registro do HubSpot) entregam eventos em uma fila local que um aplicativo ou trabalho consome.
Para serviços sem um gatilho de conector, ainda existe um caminho de webhook ad-hoc com confirmação explícita para que os eventos não sejam descartados silenciosamente.
Habilidades

Uma habilidade é uma pasta com um arquivo SKILL.md e quaisquer recursos de suporte. O agente os lê sob demanda quando a tarefa corresponde. Algumas habilidades são fornecidas pela plataforma (Postgres, Pydantic, exportação de PDF, pesquisa na web). Outras são específicas da Área de trabalho e ficam em ~/workspace/skills/, incluindo a voz da marca, manual de design, banco de postagens e estratégia de marketing para sua equipe.
Habilidades são como o Letaido aprende o estilo da sua empresa sem que isso vaze para cada conversa como texto padrão.
Memória

Entendido! O Letaido lê ~/workspace/.memory.md no início de cada conversa. Quando você diz "lembre-se disso: X", ele adiciona ao arquivo. Coisas boas para lembrar: função, vocabulário recorrente, regras de estilo, objetivos de longo prazo. Coisas ruins para lembrar: qualquer coisa sensível, qualquer coisa que mude semanalmente.
Há também um registro de alterações (progress.md) que o agente anexa após cada mudança significativa, para que você possa reconstruir o que aconteceu entre as sessões.
Pesquisa
- Pesquisa na web em toda a internet aberta com trechos destacados (geralmente suficiente; economiza uma busca).
- Busca de página como markdown limpo (remove anúncios, navegação, texto padrão).
- Pesquisa em várias etapas alternando busca e síntese quando a tarefa é ampla.
- Leitura de PDFs, transcrições e apresentações enviados, e extração de resultados estruturados.
O Letaido cita fontes por padrão e avisa quando não consegue verificar uma afirmação.
Acesso ao LLM

O próprio Letaido raciocina por meio de um LLM. Ele também expõe essa capacidade para aplicativos e tarefas por meio de um proxy local: qualquer código pode chamar os modelos mais recentes do Claude, GPT, Gemini e mais de 300 outros modelos sem precisar lidar com chaves de API. Isso significa que os aplicativos do Console e as tarefas em segundo plano que o agente cria para você podem, eles mesmos, executar agentes de IA e chamadas de LLM dentro deles, não apenas o chat no qual você conversa com o Letaido.
Isso é o que alimenta coisas como "um aplicativo que pega uma URL e retorna um roteiro de vídeo de 90 segundos na voz da nossa marca" ou uma tarefa que classifica leads de entrada do HubSpot com um LLM a cada hora.
Exportações de arquivos
Geração de PDF e PNG em um caminho seguro para sandbox. Há uma habilidade dedicada que lista quais bibliotecas funcionam dentro deste sandbox (Pillow, ReportLab, caminhos headless) e quais evitar (a maioria dos exportadores baseados em web-canvas).
Se você pedir "um PDF deste relatório", o agente lê a habilidade primeiro para escolher uma rota funcional, em vez de adivinhar.
Nos bastidores. Cada capacidade acima mapeia para um pequeno conjunto de primitivas: uma gravação de arquivo, uma consulta SQL, um blueprint Flask, uma entrada cron, uma assinatura de webhook, uma invocação de conector. O agente não inventa primitivas. Ele as compõe. É por isso que "construa algo que faça X a cada Y e notifique Z" é um formato confiável de solicitação.