🔗 Provedores de IA
OpenRouter (100+ modelos), Ollama local, interface BaseProvider, failover multi-provedor e seleção de modelo por tarefa.
OpenRouter é um gateway de LLMs que agrega 100+ modelos com uma única chave de API e billing unificado.
Elimina vendor lock-in. Mudar de Claude para GPT-4o é trocar uma string de configuração.
API key, model routing, cost tracking, rate limits por modelo.
Ollama executa modelos como Llama 3, Mistral e Gemma 2 localmente, sem enviar dados para APIs externas.
Para dados sensíveis ou uso intenso, Ollama elimina o custo de API e garante privacidade total dos dados.
Local inference, quantization, GGUF format, context length, GPU acceleration.
BaseProvider define async chat(messages) -> str como único método obrigatório. O Agent nunca acessa LLMs diretamente.
Qualquer LLM que implemente BaseProvider funciona com o Agent sem mudanças. Adicionar Anthropic direto? 20 linhas.
Abstract base class, async interface, message format normalization, error handling.
O ProviderChain tenta o provedor primário e, se falhar, passa para o secundário. Transparente para o Agent.
APIs de LLM têm outages. Sem failover, seu assistente fica offline quando o provedor cai. Com failover, continua funcionando.
Circuit breaker, retry logic, provider priority, health check, fallback chain.
Diferentes tarefas têm diferentes necessidades: código precisa de modelo técnico, resumo pode usar modelo barato, raciocínio complexo precisa do mais capaz.
Usar GPT-4o para tudo é caro e lento. Roteamento inteligente reduz custo em 60-80% sem perda de qualidade perceptível.
Task classification, model routing, cost optimization, quality vs speed tradeoff.
O cost_tracker.py monitora tokens consumidos por sessão, por modelo e por dia, com alertas quando thresholds são atingidos.
LLMs podem gerar custos inesperados rapidamente. Monitoramento proativo evita surpresas na fatura e loops custosos.
Token counting, cost per model, daily budget, alert thresholds, cost breakdown.
🧰 Skills e Ferramentas
Sistema de tools com BaseTool, descoberta automática via registry.py, Google Workspace, GitHub e criação de tools customizadas.
BaseTool define: name (identificador), description (o que a tool faz — enviado ao LLM), parameters (JSON Schema dos argumentos) e async execute(**kwargs) -> str.
O LLM usa description e parameters para decidir quando e como chamar a tool. Uma description bem escrita é tão importante quanto a implementação.
Function calling, JSON Schema, docstring as documentation, return format conventions.
O registry.py escaneia o diretório tools/ e descobre automaticamente todas as classes que estendem BaseTool. Adicionar uma tool nova = criar o arquivo. Zero mudança no Agent.
Sem registro automático, adicionar uma tool exige modificar o Agent. Com o registry, você cria a tool e ela aparece disponível automaticamente na próxima execução.
Plugin architecture, auto-discovery, importlib, class introspection.
GoogleCalendarTool permite criar, listar e atualizar eventos. GoogleDriveTool faz upload, download e busca de arquivos. Autenticação via OAuth2 com token refresh automático.
Para usuários do Google Workspace, integrar o Jarvis com Calendar e Drive cria um assistente que realmente administra sua agenda e documentos.
OAuth2 flow, service account, API quota, token refresh, batch requests.
GitHubTool cobre: criar/fechar issues, revisar PRs, fazer commits, buscar código por semântica no repositório. Usa GitHub API com token de acesso pessoal.
Um Jarvis integrado ao GitHub pode responder 'qual o status do PR #123?', criar issues a partir de bugs relatados na conversa e fazer commits de fixes simples.
GitHub API, personal access token, webhook events, code search, PR review automation.
BrowserTool usa Playwright para navegação headless. Permite pesquisar na web, extrair conteúdo de páginas e preencher formulários com aprovação do usuário.
Um Jarvis sem acesso à web fica limitado ao seu treinamento. BrowserTool dá acesso a informações atualizadas e permite automação de tarefas web repetitivas.
Playwright, headless browser, content extraction, safety wrapper, JavaScript execution.
Criar uma tool: (1) criar arquivo em tools/minha_tool.py, (2) estender BaseTool, (3) definir name, description, parameters, (4) implementar execute(). O registry detecta automaticamente.
O modelo de extensão do INTELECTO é deliberadamente simples. Qualquer API REST, serviço web ou script local pode se tornar uma tool em menos de 50 linhas de código.
Inheritance pattern, async execute, error handling, return string format, type hints.
⚙ Automação e Webhooks
Cron scheduling, Heartbeat para verificações periódicas, webhooks (n8n, Zapier), sub-agentes e colaboração entre agentes.
O cron.py do INTELECTO permite agendar tarefas em formato cron standard. O Jarvis pode gerar relatório diário às 9h, verificar e-mails a cada 30min, ou fazer backup semanal.
Um Jarvis verdadeiramente proativo não espera ser chamado — ele age no momento certo. Cron transforma o assistente de reativo para proativo.
Cron expression, asyncio scheduler, task persistence, timezone handling, error recovery.
O Heartbeat é um loop periódico que verifica condições configuradas: API de terceiros saiu? Deploy falhou? Memória do banco ultrapassou limite? Envia alerta proativo.
Monitoramento reativo (você descobre quando o usuário reclama) é inaceitável para infraestrutura. Heartbeat torna o Jarvis um monitor ativo.
Health checks, threshold monitoring, alert fatigue prevention, escalation policy.
O webhook_server.py expõe endpoints HTTPS que recebem eventos externos. n8n ou Zapier enviam eventos (novo lead, e-mail recebido, issue aberta) que trigeram ações do Jarvis.
Webhooks conectam o Jarvis ao ecossistema de automação existente. Você não precisa reescrever fluxos que já existem — apenas adiciona o Jarvis como um passo inteligente.
FastAPI, HMAC signature verification, event queuing, idempotency, retry handling.
Sub-agentes são instâncias do Agent que rodam em background para tarefas que levam minutos ou horas. O Jarvis principal pode criar sub-agentes para pesquisa, compilação ou análise.
Sem sub-agentes, tarefas longas bloqueiam o Jarvis para outras conversas. Com sub-agentes, o usuário pode continuar conversando enquanto o trabalho acontece em paralelo.
Asyncio tasks, task queue, progress notification, cancellation, result aggregation.
Múltiplos agentes especializados colaboram via mensagens: @coder gera o código, @reviewer analisa, @deployer faz o deploy. Cada agente tem seu SOUL.md especializado.
Um único agente generalista é menos eficaz que especialistas colaborando. O padrão TinyClaw permite composição de agentes para tarefas complexas.
Agent messaging, role specialization, work handoff, consensus mechanism, orchestration.
O metrics.py coleta: latência por request, tokens consumidos, tools chamadas, erros por tipo. Dashboard via Telegram ou endpoint HTTP com as métricas atuais.
Sem observabilidade, você não sabe por que o Jarvis está lento ou caro. Métricas permitem otimização guiada por dados em vez de intuição.
Metrics collection, latency tracking, error rate, cost per action, dashboard design.