TRILHA 3

🎯 Estratégias de Uso

Tire o OpenHuman do "instalado" e leve para o "indispensável". Esta trilha mostra como conectar canais reais, deixar a memória trabalhar por você e estender o agente com skills, tools e gatilhos.

3
Módulos
18
Tópicos
~2h30
Duração
Intermed.
Nível

Mapa da trilha

Conteúdo detalhado

3.1 ~50 min

📡 Conectar canais

Como o OpenHuman aparece dentro do Slack, WhatsApp, Gmail e companhia — webviews CEF, scanners CDP e por que os provedores migrados rodam com zero JavaScript injetado.

O que é:

O OpenHuman fala com pessoas através de provedores externos (Slack, Discord, WhatsApp, Telegram, iMessage, Gmail, Google Meet, LinkedIn). Cada provedor é uma conta de webview hospedada dentro da própria desktop app.

Por que aprender:

Saber quais canais existem e como eles se autenticam é o ponto de partida para qualquer fluxo de comunicação. Não há "adapter remoto" — tudo roda na sua máquina.

Conceitos-chave:

Webview account, CEF, provedor migrado vs legacy, OAuth vs cookie-auth.

O que é:

Você faz login dentro da janela embarcada exatamente como faria no navegador. A sessão (cookies, storage) fica isolada por provedor em um perfil CEF persistente.

Por que aprender:

Esse modelo elimina API tokens manuais e funciona com provedores que não têm API pública (web.whatsapp.com, web.telegram.org).

Conceitos-chave:

CEF profile, perfil isolado por conta, persistência de sessão, re-login só quando o provedor expira.

O que é:

Provedores migrados (whatsapp, telegram, slack, discord) são lidos via Chrome DevTools Protocol — Network.*, Page.*, Emulation.* — sem injetar nenhum JavaScript dentro da página de terceiro.

Por que aprender:

Reduz superfície de ataque, evita quebra silenciosa quando o provedor atualiza, e mantém o código host fora de origens que não controlamos.

Conceitos-chave:

CDP, scanner por provedor (src/*_scanner/), regra "nenhum init script novo", scraping observável a partir do Rust.

O que é:

Antes da migração CDP, alguns provedores usavam um pequeno runtime.js injetado para fazer scraping. Esses ficaram "grandfathered" — funcionam, mas não devem crescer.

Por que aprender:

Você vai encontrar código legacy ao depurar Gmail/LinkedIn. Saber o limite ("não adicione JS novo") evita PRs rejeitados.

Conceitos-chave:

Init script, recipe files, política "shrink, not grow", risco de injetar em origem de terceiro.

O que é:

Mensagens entram via scanner CDP → domínio channels → event bus (DomainEvent::Channel) → ChannelInboundSubscriber → memória / agente / regras.

Por que aprender:

Sem entender o pipeline você fica adivinhando onde uma mensagem "se perdeu". Saber o caminho permite logar no ponto certo.

Conceitos-chave:

Event bus tipado, publish_global, subscriber por domínio, ingest fan-out.

O que é:

Falhas comuns: cookies expirados, 2FA novo, QR do WhatsApp expirou, perfil CEF corrompido. Diagnóstico vai do log do scanner até reset do perfil.

Por que aprender:

A maior parte do "OpenHuman não me responde no Slack" é pareamento, não bug no agente.

Conceitos-chave:

Logs com prefixo [scanner]/[channels], reset de perfil, re-login forçado, status no painel de Channels.

Ver Completo
3.2 ~55 min

🧠 Memória e contexto

O pipeline que transforma sua avalanche diária de mensagens, e-mails e reuniões em contexto que cabe no LLM — sem perder o fio.

O que é:

A memória é um pipeline: ingest → tokenjuice → tree summarizer → embeddings → store. Vários domínios Rust (memory, memory_tree, memory_store, memory_archivist, embeddings) cooperam.

Por que aprender:

Ver as etapas torna óbvio onde otimizar custo (TokenJuice) e onde melhorar recall (embeddings).

Conceitos-chave:

Memory tree, chunks, sources, fila de processamento.

O que é:

Loop de fundo (heartbeat) que avalia tasks de sistema e usuário a cada tick (5+ min). Cada tarefa recebe decisão Skip/Act/Escalate via modelo local.

Por que aprender:

É o que faz o OpenHuman se mexer sem você. Saber como funciona separa "tarefa esquecida" de "tarefa decidiu não agir".

Conceitos-chave:

Heartbeat, system tasks, user tasks, write-intent vs read-only, approval gate.

O que é:

Estrutura hierárquica de resumos: chunks folha → resumos intermediários → resumo de fonte → resumo global. Permite recall barato no nível certo de granularidade.

Por que aprender:

Sem essa árvore, recuperar contexto vira "dump tudo no prompt". Com ela, o agente puxa só o galho que importa.

Conceitos-chave:

Chunk, summary node, top-down recall, entity index.

O que é:

Cada chunk vira um vetor. memory.recall busca por similaridade, memory.search faz keyword. Ambos expostos via MCP e JSON-RPC.

Por que aprender:

Saber quando usar recall (conceito difuso) vs search (termo exato) muda a qualidade do contexto recuperado.

Conceitos-chave:

Vetor, similaridade cosseno, top-k, recall vs search.

O que é:

Threads são a unidade canônica de conversa no OpenHuman pós-unificação (`/chat`). Conversations legadas foram absorvidas. Cada thread tem mensagens, participantes e contexto vinculado.

Por que aprender:

Entender o modelo evita confusão entre "rota antiga" e "rota nova" e ajuda a depurar quando uma mensagem cai na thread errada.

Conceitos-chave:

Thread store, participantes, canal de origem, unificação `/chat`.

O que é:

Overlay de regras JSON (builtin → user → project) que comprime saída verbosa de ferramentas (git, cargo, emails) antes de entrar no contexto do LLM.

Por que aprender:

É o que faz processar 6 meses de e-mail custar dólares em vez de centenas. Saber escrever uma regra é alto ROI.

Conceitos-chave:

3 camadas, classify→match→reduce, regra JSON, debug com RUST_LOG.

Ver Completo
3.3 ~50 min

🧩 Skills e tools

Como o agente cresce: tools nativos, MCP, skills (metadata-only hoje) e gatilhos (webhooks, cron) que disparam fluxos sem ninguém digitar.

O que é:

O runtime QuickJS que executava skills foi removido. Hoje src/openhuman/skills/ guarda só metadados — descobrir, instalar, parsear e injetar referências.

Por que aprender:

Evita expectativa errada de "vou rodar meu JS dentro do core". O caminho atual é tools nativos + MCP.

Conceitos-chave:

Metadata-only, ops_install, ops_discover, injeção via prompt.

O que é:

Catálogo dinâmico de ferramentas disponíveis para o agente, montado a partir do controller registry, MCP, e integrações ativas. Documentado em gitbooks/developing/architecture/agent-harness.md.

Por que aprender:

Entender o harness mostra por que uma tool aparece (ou não) para o agente em determinado contexto.

Conceitos-chave:

Tool registry, allowed agents, schema input/output, tags.

O que é:

openhuman-core mcp roda o core como servidor MCP read-only — expõe memory.search, memory.recall, tree.browse, etc. via stdin/stdout.

Por que aprender:

Permite usar a memória do OpenHuman dentro de Claude Desktop, Cursor, Zed — sem dependência de cloud.

Conceitos-chave:

stdio, clientInfo provenance, read gate, ferramentas curadas.

O que é:

Cada domínio Rust registra controllers (em schemas.rs) e cada controller pode virar tool exposta no harness com tool_id estável.

Por que aprender:

Esse é o caminho oficial para estender o agente. Você escreve Rust, ganha CLI + JSON-RPC + tool de uma vez.

Conceitos-chave:

Controller registry, ControllerSchema, tool_registry_list, naming openhuman.<ns>_<fn>.

O que é:

Os domínios cron e webhooks publicam DomainEvent no event bus. Subscribers (CronDeliverySubscriber, WebhookRequestSubscriber) disparam fluxos do agente.

Por que aprender:

É a maneira nativa de fazer automação recorrente ("toda segunda às 8h…") ou reativa ("quando o Linear criar issue…").

Conceitos-chave:

Cron schedule, webhook trigger, settings page /settings/webhooks-triggers, event bus.

O que é:

Combinações comuns: cron diário + recall de memória + post no Slack; webhook do GitHub + summarizer + e-mail; subconscious task + tool nativa de busca.

Por que aprender:

Padrões prontos cortam horas. Você adapta em vez de partir do zero.

Conceitos-chave:

Receita = trigger + tool + memória + canal. Compor é a competência.

Ver Completo
← Trilha 2: Instalação Trilha 4: Técnicas Avançadas →