Verificando acesso...

TRILHA 3

👥 Multi-usuário

Jarvis para um time, não para uma pessoa. Identidade por usuário, memória compartilhada vs privada, orquestrador multi-tenant, canais paralelos e operação com custo atribuível.

6
Módulos
36
Tópicos
~7h
Duração
Avançado
Nível

Mapa da trilha

Conteúdo detalhado

3.1~60 min

💥 Por que single-user quebra

Diagnóstico claro do que falha quando você joga 2+ pessoas no mesmo agente.

O que é:

Qualquer dado que vive fora de "request do user X" — current_user, last_query, active_project.

Por que aprender:

Single-user esconde estado global. Multi-user expõe imediatamente.

Conceitos-chave:

Stateless functions, contextvars Python, scope por request.

O que é:

User A pergunta sobre projeto X; user B pergunta sobre projeto Y. Agente responde A com Y.

Por que aprender:

Bug mais embaraçoso possível. Vaza dado de um cliente pra outro.

Conceitos-chave:

async with lock, request_id como chave, sem caches mutáveis globais.

O que é:

Tabela memory sem coluna user_id, busca retorna fatos de qualquer user.

Por que aprender:

Único bug grave que LGPD pune. Não pode acontecer.

Conceitos-chave:

user_id como FK obrigatória, row-level security, namespace separators.

O que é:

Sem atribuição de tokens por user, não dá pra cobrar nem identificar abuso.

Por que aprender:

Modelo de negócio depende disso. Sem custo por user, não há SaaS sustentável.

Conceitos-chave:

Token accounting por request, agregação diária, rate limit por user.

O que é:

Quando um user reclama, você não consegue reproduzir o problema sem audit log por user.

Por que aprender:

Suporte ruim derruba retenção. Especialmente em produto premium.

Conceitos-chave:

Audit log com user_id, request_id rastreável, replay tool.

O que é:

Lista que diz se seu agente sobrevive ao 2º user: user_id em tudo, lock em estado mutável, sessão por request.

Por que aprender:

Falhar nesse checklist = retrabalho ou incidente.

Conceitos-chave:

Stateless por design, audit log inicial, tests com 2 users simulados.

Ver Completo
3.2~75 min

🆔 Identidade & sessão

Workspace por usuário, auth-profiles inspirados no padrão openclaw/codex OAuth.

O que é:

Tabela users com colunas mínimas. user_id é UUID, não inteiro sequencial.

Por que aprender:

UUID evita ID enumeration. Roles desde dia 1 = permissions depois.

Conceitos-chave:

UUID v4, roles JSON ['admin','user'], audit no created_at.

O que é:

Pasta dedicada por usuário com memory.db, files/, preferences.json. Isolamento FS-level.

Por que aprender:

Backup, exportar dados (LGPD art. 18), delete account vira simples.

Conceitos-chave:

FileTool com workspace=user.workspace, MemoryStore com path por user.

O que é:

Estrutura JSON com tokens por provider (google, anthropic, openai) por usuário, encriptados.

Por que aprender:

Cada user traz suas credenciais. Você não paga as APIs deles.

Conceitos-chave:

~/.config/app/auth.json estrutura aninhada, refresh automático, sentinel pra expirado.

O que é:

Objeto Session com user, request_id, timestamp, tools_enabled — passado por toda a chain.

Por que aprender:

Toda função recebe Session. Audit fica automático.

Conceitos-chave:

Dataclass frozen, contextvars como alternativa, log inicial e final.

O que é:

/start no Telegram inicia conversa estruturada que cria user, pede preferências, ativa tools.

Por que aprender:

Onboarding inline tem 3x mais conversão que "preencha esse form".

Conceitos-chave:

State machine simples, save partial progress, escape /cancel sempre.

O que é:

/logout invalida tokens. /delete remove workspace completo + audit log mantém só metadados.

Por que aprender:

LGPD obriga. E user confia mais quando vê que pode sair.

Conceitos-chave:

Soft delete primeiro (7 dias), hard delete via cron, e-mail confirmação.

Ver Completo
3.3~80 min

🧠 Memória compartilhada vs privada

SQLite por usuário, vector store comum, escopos explícitos. O modelo que escala sem vazar.

O que é:

User scope (privado), team scope (compartilhado entre members), world scope (público, ex: docs).

Por que aprender:

Sem escopo explícito, tudo vira "world" e vaza tudo pra todos.

Conceitos-chave:

Coluna scope (enum), default user, promover requer ação explícita.

O que é:

~/.app/users/<uuid>/memory.db isolado. Backup/restore por user trivial.

Por que aprender:

Isolamento real (não só lógico). Falha em 1 user não derruba os outros.

Conceitos-chave:

Pool de conexões por DB, vacuum periódico, backup com .dump.

O que é:

1 instância Pinecone/Chroma com namespaces user_uuid e team_uuid. Query filtra por namespace.

Por que aprender:

Vector store é caro de rodar N vezes. Compartilhar com namespace é o padrão.

Conceitos-chave:

Filter por metadata, namespace prefix, defesa em profundidade.

O que é:

Comando /share <memory_id> que copia para namespace team, audita quem promoveu.

Por que aprender:

Conhecimento que vira ativo do time só existe se for fácil promover.

Conceitos-chave:

Confirmation step, link de origem, revogar = unshare audit completo.

O que é:

API que recebe lista de escopos permitidos. Default = ['user']. /search-team inclui ['user','team'].

Por que aprender:

Forçar escolha consciente evita escapes acidentais.

Conceitos-chave:

Default mais restrito, exception se vazio, audit do scope efetivamente usado.

O que é:

Cron que remove memórias de user deletado, dedupica entries idênticas, comprime antigas.

Por que aprender:

Sem GC, o sistema acumula lixo e degrada busca.

Conceitos-chave:

SQL CASCADE em delete, hash de content para dedup, dry-run primeiro.

Ver Completo
3.4~70 min

🎼 Orquestrador multi-tenant

Chief-of-staff pattern adaptado para múltiplos clientes. Roteamento, sub-agentes, governança.

O que é:

Um agente "chief" que recebe a request, decompõe, delega para sub-agentes especialistas.

Por que aprender:

Padrão com maior ganho de qualidade documentado em multi-agent research.

Conceitos-chave:

Decompor, delegar, reconciliar respostas, decidir quando parar.

O que é:

Configuração por user/tier que define quais modelos e tools estão disponíveis.

Por que aprender:

Free user usa Haiku + 3 tools; Pro usa Opus + todas. Sem refatorar.

Conceitos-chave:

Tabela tiers (JSON config), feature flags por user, sobrepor preferences.

O que é:

Cada sub-agente tem seu CLAUDE.md, set de tools restrito, contexto limpo.

Por que aprender:

Contexto pequeno + foco = qualidade. Generalista vira mediano.

Conceitos-chave:

Subagent task como ferramenta, summary report, isolamento de falha.

O que é:

Limites por minuto/hora/dia. Circuit breaker quando tool externa falha N vezes.

Por que aprender:

Sem limit, 1 user em loop ferra os outros e a fatura.

Conceitos-chave:

Token bucket por user_id, decay automático, half-open state.

O que é:

Protocolo que permite agentes em máquinas/repos diferentes se chamarem. Mensagens estruturadas com auth.

Por que aprender:

Escala horizontal sem virar monorepo gigante.

Conceitos-chave:

Bearer token compartilhado, envelope com correlation_id, replay protection.

O que é:

Tool com flag requires_approval=True pausa execução e manda mensagem ao humano.

Por que aprender:

"Mandar e-mail pra cliente" precisa de OK. "Listar arquivos" não.

Conceitos-chave:

Pending state em DB, timeout em 24h, audit do aprovador.

Ver Completo
3.5~65 min

📡 Canais paralelos

Telegram + Slack + Web ao mesmo tempo, mesmo "cérebro". User reconhecido entre canais.

O que é:

Tabela channel_links mapeia telegram_chat_id, slack_user_id, web_session_id → user_id.

Por que aprender:

User entra no Slack continuando conversa do Telegram. Magia experimentada.

Conceitos-chave:

Pareamento via código de 6 dígitos, e-mail como ponte, audit do link.

O que é:

Implementa Channel via Slack Bolt SDK em Socket Mode (sem URL pública necessária).

Por que aprender:

Slack é onde empresas vivem. Bot em DM ou canal.

Conceitos-chave:

App token vs bot token, event subscriptions, thread_ts preserva contexto.

O que é:

Endpoint /chat com SSE pra streaming. Cookie httpOnly pra session.

Por que aprender:

Nem todo user usa Telegram/Slack. Página web democratiza.

Conceitos-chave:

Server-Sent Events vs WebSocket, CSRF, rate limit por IP.

O que é:

Channel.send sem incoming antes. Agente reporta evento (relatório matinal, alerta).

Por que aprender:

Diferença entre chatbot (reativo) e agente (proativo). Push muda relação.

Conceitos-chave:

Preferência por canal (user pode escolher), quiet hours, opt-out granular.

O que é:

Output do agente é estruturado (markdown + blocks). Channel renderiza nativo.

Por que aprender:

Slack tem blocks, Telegram tem MarkdownV2, Web tem HTML. Não pode tratar igual.

Conceitos-chave:

Intermediate AST, renderer por channel, fallback para plain text.

O que é:

Lista priorizada de canais. Se primary falha em N tentativas, tenta secondary.

Por que aprender:

Alertas críticos não podem depender de 1 canal estar funcionando.

Conceitos-chave:

Backoff exponencial, audit do canal usado, alerta se todos falharem.

Ver Completo
3.6~80 min

🚦 Operação

Dashboard de métricas, audit log, custos por usuário, kill switch. Como ops de IA realmente é.

O que é:

Web page com 4 cards: usuários ativos hoje, custo do dia, erros últimas 24h, latência p95.

Por que aprender:

Sem dashboard, ops é "alguém me avisa quando quebra".

Conceitos-chave:

SQL agregado, refresh a cada 30s, cache 60s, sem build (HTML + Tailwind).

O que é:

Arquivo .jsonl com event_type, user_id, request_id, timestamp, payload (sem PII).

Por que aprender:

Compliance e debug. "Mostra o que o user X fez quinta passada" tem resposta.

Conceitos-chave:

Rotação por dia, retenção 90 dias, redact via regex, hash de PII.

O que é:

Tabela usage com user, day, model, tokens_in, tokens_out, cost_usd. Agregada diariamente.

Por que aprender:

Sem isso, modelo de pricing é palpite. Com isso, é decisão informada.

Conceitos-chave:

Tabela de preços versionada (modelos mudam), alerta de outlier, top 10 users.

O que é:

Cron a cada 5 min checa thresholds: custo > X, latência > Y, erros > Z.

Por que aprender:

Alerta proativo > user reclamando depois.

Conceitos-chave:

Threshold em config, deduplicate (não alertar 100x), snooze.

O que é:

Flag em DB que, se true, todas as requests retornam "em manutenção". Endpoint /killall pra ativar.

Por que aprender:

Loop infinito, vazamento, alucinação grave — você precisa parar em 30s.

Conceitos-chave:

Flag global checada em cada request, kill por user específico, audit.

O que é:

Daily Active Users, custo médio por user, taxa de respostas com 👍 vs 👎.

Por que aprender:

Métrica errada = decisão errada. DAU e custo unitário são os 2 que sempre importam.

Conceitos-chave:

Botão de feedback inline, conversion funnel, churn detection.

Ver Completo
← Trilha 2: Builder Próxima: iAmasters OS →