Communitygithub.com

arquitetura-de-agente-sempre-ativo

Arquitetura e design de sistemas para construir agentes de IA sempre ativos com memória episódica. Abrange a hierarquia de memória (núcleo/recordação/arquivo), camadas de persistência, infraestrutura de servidor de agente, armazenamentos vetoriais e seleção de frameworks. Fornece padrões concretos de implantação para agentes que mantêm identidade e aprendem entre sessões.

O que é arquitetura-de-agente-sempre-ativo?

Este skill fornece um guia completo para projetar a arquitetura de agentes de IA persistentes que lembram de interações passadas, mantêm contexto e evoluem ao longo do tempo. Ele se concentra na hierarquia de memória (núcleo, recordação e arquivo) e em como rotear dados entre esses níveis com base no tipo de informação. O skill inclui uma árvore de decisão para selecionar o framework de memória mais adequado (como Letta, Zep/Graphiti, Mem0, LangMem, pgvector ou Chroma), critérios para escolher bancos de dados vetoriais (Qdrant, pgvector, Weaviate, Pinecone, Chroma) e métricas para acionar a compactação e remoção de memória. Além disso, aborda modos de falha comuns, como corrupção de memória, degradação da busca vetorial, deadlock na camada de persistência e explosão da janela de contexto, fornecendo procedimentos de recuperação. Um exemplo prático de construção de um assistente de pesquisa pessoal mostra como implementar o loop do agente e quais erros novatos e especialistas cometem. O skill é destinado a desenvolvedores que já têm algum conhecimento de banco de dados e agentes, sendo útil para plataformas como Claude Code, Cursor e Codex que suportam a definição de skills customizados.

Funciona com~Claude Code~Codex CLI~Cursor✓Antigravity
npx skills add https://github.com/curiositech/windags-skills/tree/HEAD/skills/always-on-agent-architecture

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

/arquitetura-de-agente-sempre-ativo — Construindo Agentes Que Nunca Esquecem

Você está projetando a arquitetura para um agente de IA sempre ativo com memória episódica. Isto não é um chatbot com uma longa janela de contexto. Isto é um sistema que persiste estado entre sessões, gerencia sua própria hierarquia de memória, executa como um serviço e mantém identidade por semanas e meses. O insight central: trate o LLM como uma CPU que opera em memória gerenciada, não como uma função sem estado.

Pontos de Decisão

Árvore de Seleção de Framework de Memória

Q1: Você quer um runtime de agente completo (servidor, APIs, ferramentas)?
├─ Sim → Use Letta (mais completo, pronto para produção)
└─ Não, eu tenho meu próprio loop de agente
   ├─ Q2: Você precisa de rastreamento temporal/de relacionamentos?
   │  ├─ Sim → Use Zep/Graphiti (melhor grafo de conhecimento temporal)
   │  └─ Não → Vá para Q3
   │     ├─ Q3: Você precisa de híbrido grafo + vetorial?
   │     │  ├─ Sim → Use Mem0 (modo grafo)
   │     │  └─ Não → Vá para Q4
   │     │     ├─ Q4: Já está usando LangGraph?
   │     │     │  ├─ Sim → Use LangMem
   │     │     │  └─ Não → Use pgvector ou Chroma
   └─ Quer zero dependências? → SQLite personalizado + embeddings locais

Gatilhos Centrais de Remoção de Memória

GatilhoLimiarAção
Estouro de TamanhoMemória núcleo > 4KBSumarizar bloco menos recente, mover resumo para arquivo
Decaimento por IdadeDados não usados > 30 diasMarcar para revisão de compactação
Queda de RelevânciaPontuação de acesso < 0,3Mover para memória de arquivo com tag de decaimento
Substituição pelo UsuárioUsuário diz "esqueça X"Remoção imediata + lápide de arquivo
Detecção de ConflitoFatos contraditórios armazenadosSolicitar que o agente reconcilie ou pergunte ao usuário

Critérios de Seleção de BD Vetorial

Se latência_de_consulta_necessária < 10ms E tamanho_dos_dados > 100M vetores:
    → Use Qdrant (otimizado para velocidade)
Senão se já_usa_postgresql:
    → Use pgvector (banco único, operações mais simples)
Senão se precisa_de_busca_híbrida (palavra-chave + semântica):
    → Use Weaviate (melhor híbrido)
Senão se prefere_zero_ops:
    → Use Pinecone (totalmente gerenciado)
Senão:
    → Use Chroma (local primeiro, API simples)

Decisão de Roteamento de Nível de Memória

Entrada: Mensagem do usuário ou observação do agente
│
├─ Contém atualização de identidade/preferência?
│  └─ Sim → Atualizar memória núcleo, persistir imediatamente
├─ Requer contexto de conversa?
│  └─ Sim → Pesquisar memória de recordação (histórico da conversa)
├─ Precisa de conhecimento factual?
│  └─ Sim → Pesquisar memória de arquivo (armazenamento vetorial)
└─ Dados externos necessários?
   └─ Sim → Usar ferramentas externas (APIs, arquivos, etc.)

Modos de Falha

Cascata de Corrupção de Memória

Sintomas: Deriva de personalidade do agente, respostas contraditórias, conflitos na memória núcleo Causa Raiz: Escritas concorrentes na memória núcleo sem bloqueio, ou atualizações parciais com falha Regra de Detecção: Se o tamanho da memória núcleo cair subitamente >50% ou contiver JSON/YAML malformado Procedimento de Recuperação:

  1. Parar o agente imediatamente para evitar mais corrupção
  2. Restaurar memória núcleo do último backup válido (< 1hr de idade)
  3. Reexecutar o registro de conversa desde o backup para reconstruir atualizações perdidas
  4. Implementar bloqueios de escrita em atualizações de memória núcleo antes de reiniciar

Degradação da Busca Vetorial

Sintomas: Resultados de busca cada vez menos relevantes, agente não consegue encontrar fatos armazenados recentemente Causa Raiz: Deriva do modelo de embedding, corrupção do índice, ou nenhuma compactação de memória Regra de Detecção: Se a similaridade cosseno média dos 3 principais resultados < 0,7 para consultas conhecidas Procedimento de Recuperação:

  1. Executar verificação de consistência de embedding em uma amostra aleatória de 100 vetores
  2. Se >10% mostrarem embeddings anômalos, reconstruir todo o índice
  3. Implementar fixação da versão do modelo de embedding
  4. Adicionar monitoramento de deriva de embedding para prevenir recorrência

Deadlock na Camada de Persistência

Sintomas: Agente trava em operações de memória, timeouts de conexão com banco de dados Causa Raiz: Leitura/escrita simultâneas nos mesmos blocos de memória, pool de conexões insuficiente Regra de Detecção: Se a operação de memória levar >30s ou o banco de dados mostrar timeouts de espera de bloqueio Procedimento de Recuperação:

  1. Matar conexões pendentes para liberar bloqueios
  2. Implementar lógica de retry com backoff exponencial para operações de memória
  3. Adicionar pool de conexões com limites máximos de conexão
  4. Revisar níveis de isolamento de transação para atualizações de memória

Explosão da Janela de Contexto

Sintomas: Custos de API disparam, latência de resposta aumenta, erros de limite de tokens Causa Raiz: Inchaço da memória núcleo, recuperação de muitos blocos de arquivo por consulta Regra de Detecção: Se a média de tokens por requisição > 80% do limite de contexto do modelo Procedimento de Recuperação:

  1. Auditar tamanho da memória núcleo - comprimir ou arquivar blocos superdimensionados
  2. Reduzir contagem de resultados de busca de arquivo do padrão (10 → 5)
  3. Implementar contagem de tokens antes de chamadas LLM
  4. Adicionar alertas de monitoramento de custo para >$1/conversa

Vazamento de Memória - Crescimento Ilimitado

Sintomas: Tamanho do banco de dados cresce linearmente, desempenho de busca degrada ao longo do tempo Causa Raiz: Sem compactação de memória, inserção de fatos duplicados, coleta de lixo ausente Regra de Detecção: Se o tamanho total da memória crescer >100MB/mês com uso normal Procedimento de Recuperação:

  1. Executar deduplicação de fatos na memória de arquivo (similaridade cosseno > 0,92)
  2. Implementar sumarização de conversas para memória de recordação >7 dias de idade
  3. Adicionar pontuação de relevância com poda automática de memórias de baixa pontuação
  4. Agendar trabalhos de compactação semanais

Exemplos Práticos

Exemplo: Construindo um Assistente de Pesquisa Pessoal

Cenário: Projetar arquitetura para um agente que ajuda com pesquisa técnica, lembra suas preferências e constrói conhecimento ao longo de meses.

Passo 1 - Design de Níveis de Memória

Memória Núcleo (2KB):
- Nome do usuário: "Sarah"
- Domínios de pesquisa: ["aprendizado de máquina", "sistemas distribuídos"]
- Fontes de artigo preferidas: ["arxiv", "acm digital library"]
- Estilo de escrita: "detalhado com exemplos de código"
- Projeto atual: "otimização de treinamento distribuído"

Memória de Recordação:
- Todas as conversas em PostgreSQL com busca de texto completo
- Janela de retenção de 30 dias, depois sumarizado

Memória de Arquivo:
- Resumos de artigos, insights extraídos, trechos de código
- pgvector no PostgreSQL (já usando para recordação)
- nomic-embed-text para embedding local (privacidade + custo)

Passo 2 - Decisão de Seleção de Framework Seguindo a árvore de decisão:

  • Precisa de runtime completo de agente? Não (construindo customizado)
  • Precisa de rastreamento temporal? Não (fatos de pesquisa são principalmente atemporais)
  • Precisa de grafo+vetorial? Não (busca semântica simples é suficiente)
  • Já está usando LangGraph? Não
  • → Decisão: pgvector + PostgreSQL

Passo 3 - Implementação do Loop do Agente

async def passo_de_pesquisa(consulta_do_usuario: str):
    # Carregar memória núcleo
    nucleo = carregar_memoria_nucleo()  # Prefs do usuário, projeto ativo
    
    # Verificar se consulta se relaciona ao projeto atual
    if "otimização" in consulta_do_usuario.lower():
        # Pesquisar arquivo para conhecimento específico do projeto
        artigos_relevantes = pesquisar_arquivo("otimização de treinamento distribuído")
        contexto = f"Contexto do projeto atual: {artigos_relevantes}"
    else:
        # Pesquisar conhecimento geral do domínio
        contexto = pesquisar_arquivo(consulta_do_usuario)
    
    # Construir prompt com memória núcleo + contexto recuperado
    prompt_sistema = f"""
    Você é o assistente de pesquisa de Sarah.
    Preferências do usuário: {nucleo['preferencias']}
    Projeto atual: {nucleo['projeto_atual']}
    
    Contexto recuperado: {contexto}
    """
    
    resposta = await llm.chat([
        {"role": "system", "content": prompt_sistema},
        {"role": "user", "content": consulta_do_usuario}
    ])
    
    # Persistir interação
    salvar_em_recordacao(consulta_do_usuario, resposta)
    
    return resposta

O que um novato deixaria passar:

  • Armazenar artigos brutos em vez de insights extraídos no arquivo
  • Não implementar busca de conversa (memória de recordação)
  • Colocar muita coisa na memória núcleo (lista de domínios de pesquisa com 50 entradas)
  • Nenhuma estratégia de compactação de memória

O que um especialista percebe:

  • Memória núcleo permanece focada em "identidade de trabalho", não em conhecimento
  • Memória de arquivo recebe fatos selecionados, não documentos brutos
  • Implementa busca antes da recuperação (agente decide o que é relevante)
  • Planeja crescimento de memória desde o primeiro dia

Portões de Qualidade

Lista de Verificação de Validação de Implantação

  • SLO de Latência de Memória: Memória núcleo carrega em <100ms, busca de arquivo completa em <500ms
  • Consistência de Memória: Memória núcleo sobrevive a reinicialização do agente sem corrupção (testar com morte deliberada)
  • Relevância de Busca: Os 3 principais resultados de arquivo têm similaridade cosseno >0,6 para consultas conhecidas
  • Regras de Dimensionamento de Memória: Memória núcleo ≤4KB, retenção de recordação ≤30 dias, blocos de arquivo ≤1KB cada
  • Durabilidade de Persistência: Todas as atualizações de memória sobrevivem à reinicialização do banco de dados (conformidade ACID verificada)
  • Controles de Custo: Operações de memória custam <$0,01/conversa a 100 conversas/dia
  • Cronograma de Compactação: Compactação de memória é executada semanalmente e reduz o tamanho total em ≥10%
  • Consistência de Identidade: Personalidade do agente permanece estável em mais de 50 sessões de conversa
  • Recuperação de Inicialização a Frio: Agente lida graciosamente com estado de memória vazia (fluxo de integração funciona)
  • Verificação de Backup: Backup de memória restaura com sucesso e preserva a identidade do agente

Limites NÃO-PARA

NÃO use este skill para:

  • Escolher dados de treinamento do agente → Use /sempre-ativo-entradas-do-agente - esse skill cobre quais dados alimentar o agente, este cobre como armazená-los e recuperá-los
  • Brainstorming de aplicações do agente → Use /sempre-ativo-aplicacoes-do-agente - esse skill cobre ideação de casos de uso, este cobre implementação técnica
  • Segurança e privacidade do agente → Use /sempre-ativo-seguranca-do-agente - esse skill cobre governança de dados, consentimento e segurança; este assume que esses já estão projetados
  • Padrões agenticos gerais → Use /padroes- agenticos - esse skill cobre loops ReAct, uso de ferramentas, planejamento; este cobre a camada de persistência subjacente
  • Tarefas de agente de uso único → Use /criador-de-agente - se o agente não precisa lembrar entre sessões, você não precisa de arquitetura sempre ativa
  • Design de esquema de banco de dados → Este skill assume que você entende conceitos básicos de banco de dados; use skills específicas de banco de dados para otimização de esquema
  • Estratégias de otimização de custo → Este skill menciona considerações de custo, mas não aprofunda otimização; delegue a skills específicas de custo

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

curiositech/windags-skills

Expert in 2000s-era music visualization (Milkdrop, AVS, Geiss) and modern WebGL implementations. Specializes in Butterchurn integration, Web Audio API AnalyserNode FFT data, GLSL shaders for audio-reactive visuals, and psychedelic generative art. Activate on "Milkdrop", "music visualization", "WebGL visualizer", "Butterchurn", "audio reactive", "FFT visualization", "spectrum analyzer". NOT for simple bar charts/waveforms (use basic canvas), video editing, or non-audio visuals.

curiositech/windags-skills

Expert legal research agent for finding and scraping expungement data state by state. Knows authoritative sources, URL patterns, Firecrawl configuration, and 2026 legal landscape.

curiositech/windags-skills

Expert in 3D computer vision labeling tools, workflows, and AI-assisted annotation for LiDAR, point clouds, and sensor fusion. Covers SAM4D/Point-SAM, human-in-the-loop architectures, and vertical-specific training strategies. Activate on '3D labeling', 'point cloud annotation', 'LiDAR labeling', 'SAM 3D', 'SAM4D', 'sensor fusion annotation', '3D bounding box', 'semantic segmentation point cloud'. NOT for 2D image labeling (use clip-aware-embeddings), general ML training (use ml-engineer), video annotation without 3D (use computer-vision-pipeline), or VLM prompt engineering (use prompt-engineer).

curiositech/windags-skills

Implement WCAG 2.2 AA/AAA compliance with automated testing, keyboard navigation, screen reader support, and focus management. Activate on: accessibility audit, WCAG compliance, keyboard navigation, screen reader, aria attributes, axe-core, focus trap. NOT for: design-level accessibility review (use design-accessibility-auditor), color contrast only (use css-in-js-architect).

curiositech/windags-skills

Time-blind friendly planning, executive function support, and daily structure for ADHD brains. Specializes in realistic time estimation, dopamine-aware task design, and building systems that actually work for neurodivergent minds.

curiositech/windags-skills

Designs digital experiences for ADHD brains using neuroscience research and UX principles. Expert in reducing cognitive load, time blindness solutions, dopamine-driven engagement, and compassionate design patterns. Activate on 'ADHD design', 'cognitive load', 'accessibility', 'neurodivergent UX', 'time blindness', 'dopamine-driven', 'executive function'. NOT for general accessibility (WCAG only), neurotypical UX design, or simple UI styling without ADHD context.

curiositech/windags-skills

>- Apply crisis decision-making research to agent routing, uncertainty triage, and coordination failure analysis in time-pressured systems. Use when diagnosing handoff failures, analytical paralysis, or expert judgment under incomplete information. NOT for routine coding, simple CRUD design, or static single-agent tasks with complete information.

curiositech/windags-skills

Extend and modify the admin dashboard, developer portal, and operations console. Use when adding new admin tabs, metrics, monitoring features, or internal tools. Activates for dashboard development, analytics, user management, and internal tooling.

curiositech/windags-skills

Conversation patterns and interaction protocols for multi-agent systems. Covers request/response, pub/sub, blackboard, delegation chains, debate, critique, consensus, fan-out/fan-in, supervisor-worker, and peer negotiation. Deep analysis of AutoGen conversation patterns, CrewAI delegation, LangGraph state passing, and FIPA-ACL performatives. Teaches how to design what agents say to each other and in what order. Activate on: "agent conversation", "agent protocol", "multi-agent debate", "agent delegation", "supervisor worker pattern", "agent voting", "consensus protocol", "fan-out fan-in", "agent negotiation", "blackboard pattern", "agent dialogue", "conversation topology", "agent handoff". NOT for: wire format or serialization (use agent-interchange-formats), orchestration infrastructure (use agentic-infrastructure-2026), single agent behavior (use agentic-patterns).

curiositech/windags-skills

Meta-agent for creating new custom agents, skills, and MCP integrations. Expert in agent design, MCP development, skill architecture, and rapid prototyping. Activate on 'create agent', 'new skill', 'MCP server', 'custom tool', 'agent design'. NOT for using existing agents (invoke them directly), general coding (use language-specific skills), or infrastructure setup (use deployment-engineer).

curiositech/windags-skills

AI-powered calendar management and agent-based scheduling coordination. Covers calendar APIs (Google Calendar, CalDAV/iCal), AI scheduling assistants (Reclaim, Clockwise, Motion, Cal.com), building custom calendar agents with MCP, multi-calendar merging, timezone management, focus block protection, meeting fatigue detection, and agent-to-agent meeting negotiation protocols. Activate on: "calendar agent", "AI scheduling", "calendar coordination", "meeting scheduling", "calendar API", "focus time protection", "calendar optimization", "Google Calendar MCP", "Reclaim", "Clockwise", "Motion", "Cal.com", "smart scheduling", "calendar-aware agent", "timezone scheduling", "agent negotiation meetings". NOT for: manual calendar UI component design (use form-validation-architect), project management scheduling or Gantt charts (use project-management-guru-adhd), general time-tracking or pomodoro apps (use adhd-daily-planner for time-awareness), building the agent itself from scratch (use agent-creator).

curiositech/windags-skills

Build and adopt production AI agent infrastructure in 2026. Covers framework selection (LangGraph, CrewAI, AutoGen, MCP), orchestration patterns, evaluation, observability, memory systems, and tool use. Also covers the SOCIAL dimension: how to sell agent infrastructure internally, change management, measuring ROI, building trust in autonomous systems, and scaling adoption across teams. Activate on: "agent infrastructure", "agent framework comparison", "which agent framework", "sell AI tools internally", "agent adoption", "agent observability", "agent evaluation", "MCP architecture", "agentic mesh", "enterprise AI agents", "AI change management", "agent ROI". NOT for: building specific agents (use ai-engineer), designing agent behavior patterns (use agentic-patterns), prompt tuning (use prompt-engineer).

curiositech/windags-skills

Fundamental patterns for effective agentic behavior. Teaches decomposition, tool orchestration, error recovery, context management, quality self-assessment, and knowing when to stop. Model-agnostic principles that make any agent more effective regardless of domain. Activate on: "how should I structure this agent", "agentic workflow", "agent patterns", "multi-step task", "tool orchestration", "/agentic-patterns", "decompose this", "agent best practices", "chain of actions", "when should the agent stop", "agent loop design". NOT for: creating agent infrastructure (use agent-creator), building DAGs (use windags-architect), specific tool implementation.

curiositech/windags-skills

Automated discovery and matching of agent skills for dynamic task routing and capability assessment

curiositech/windags-skills

Cryptographic security for agentic systems — zero-trust agent networking, signed message envelopes (JWS/JWE), capability-based security (ocaps), Merkle tree audit trails, WASM sandboxing, and formal verification. Covers CLI dev tool security, mTLS between agents, permission boundaries (least privilege for AI agents), and supply chain security for skills/plugins. Activate on: "agent security", "zero trust agents", "secure agent communication", "capability-based security", "ocap", "signed messages between agents", "agent audit trail", "sandbox agent execution", "agent permissions", "mTLS agents", "cryptographic verification", "agent supply chain", "OWASP agentic", "prove agent did X", "tamper-proof agent logs". NOT for: application-level SAST scanning (use security-auditor), network firewall rules (use infrastructure), SOC2/HIPAA compliance (organizational), or prompt injection defense (use prompt-engineer).

curiositech/windags-skills

Data structures and serialization formats for agent-to-agent communication. Covers message envelopes, structured output schemas, capability declarations, task handoff payloads, error/retry signaling, and context windows as data structures. Deep comparison of A2A protocol, MCP, OpenAI function calling, and LangChain message types. Teaches when to use rigid schemas vs free-form with validation, typed vs untyped, streaming vs batch. Activate on: "agent message format", "agent communication schema", "agent-to-agent protocol", "A2A protocol", "MCP message format", "structured output for agents", "agent interop", "interchange format", "agent serialization", "task handoff format", "capability declaration". NOT for: what agents say to each other (use agent-conversation-protocols), orchestration topology (use multi-agent-coordination), building agent infrastructure (use agentic-infrastructure-2026).

curiositech/windags-skills

Logic-based agent programming language implementing BDI architecture for practical autonomous agent development

curiositech/windags-skills

>- Design AgentSpeak(L)-style BDI agents with context-guarded plans, selection functions, and intention stacks. Use for interruptible autonomy, agent policy, and multi-agent orchestration in dynamic environments. NOT for simple rule engines, static planners, or centralized workflows.

curiositech/windags-skills

Foundational concurrent computation model where actors communicate exclusively through asynchronous message passing

curiositech/windags-skills

license: Apache-2.0 NOT for unrelated tasks outside this domain.

Habilidades Relacionadas