Communitygithub.com

curiositech/windags-skills

Architecture et conception de systèmes pour construire des agents IA toujours actifs avec mémoire épisodique. Couvre la hiérarchie de mémoire (cœur/rappel/archivage), les couches de persistance, l'infrastructure serveur d'agents, les bases de données vectorielles et la sélection de framework. Fournit des modèles de déploiement concrets pour des agents qui conservent leur identité et apprennent à travers les sessions.

Qu'est-ce que windags-skills ?

Ce skill fournit un guide complet pour concevoir l'architecture d'agents IA toujours actifs (always-on) dotés d'une mémoire épisodique. Contrairement à un simple chatbot, il s'agit d'un système qui persiste son état entre les sessions, gère sa propre hiérarchie de mémoire (cœur, rappel, archivage), fonctionne comme un service, et maintient une identité sur des semaines et des mois. L'idée centrale est de traiter le LLM comme un CPU qui opère sur une mémoire gérée, non comme une fonction sans état. Le skill propose un arbre de décision pour choisir le bon framework de mémoire (Letta pour un runtime complet, Zep/Graphiti pour le suivi temporel, Mem0 pour le hybride graphe+vecteur, LangMem pour LangGraph, ou pgvector/Chroma pour des solutions plus légères). Il détaille ensuite les déclencheurs d'éviction de mémoire (taille, âge, pertinence, ordre utilisateur, conflit), les critères de sélection des bases de données vectorielles (Qdrant, pgvector, Weaviate, Pinecone, Chroma), et un routage des requêtes entre les différents niveaux de mémoire. Le skill identifie également les modes de défaillance courants (corruption en cascade, dégradation de la recherche vectorielle, blocage de la persistance, explosion du contexte, fuite de mémoire) et propose des procédures de récupération détaillées. Des exemples concrets montrent comment concevoir un assistant de recherche personnel, avec des choix d'architecture, d'implémentation et des pièges à éviter. Le tout est complété par une checklist de validation pour le déploiement. Ce skill est conçu pour des développeurs utilisant des plateformes comme Claude Code, Cursor, Codex ou tout autre outil d'agent. Il s'applique lorsque l'agent doit être "toujours actif", avoir une "architecture persistante", un "système de mémoire épisodique", "MemGPT" ou "Letta". Il ne doit pas être utilisé pour choisir les données d'entrée de l'agent, lister des applications d'agents, discuter de sécurité ou de patterns génériques d'agents.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

/always-on-agent-architecture — Construire des agents qui n'oublient jamais

Vous concevez l'architecture d'un agent IA toujours actif avec mémoire épisodique. Ce n'est pas un chatbot avec une longue fenêtre de contexte. C'est un système qui persiste son état entre les sessions, gère sa propre hiérarchie de mémoire, fonctionne comme un service, et maintient son identité sur des semaines et des mois. L'idée centrale : traiter le LLM comme un CPU qui opère sur une mémoire gérée, non pas comme une fonction sans état.

Points de décision

Arbre de sélection du framework mémoire

Q1 : Voulez-vous un runtime d'agent complet (serveur, API, outils) ?
├─ Oui → Utilisez Letta (le plus complet, prêt pour la production)
└─ Non, j'ai ma propre boucle d'agent
   ├─ Q2 : Avez-vous besoin d'un suivi temporel/relationnel ?
   │  ├─ Oui → Utilisez Zep/Graphiti (meilleur graphe de connaissances temporel)
   │  └─ Non → Aller à Q3
   │     ├─ Q3 : Avez-vous besoin d'un hybride graphe + vecteur ?
   │     │  ├─ Oui → Utilisez Mem0 (mode graphe)
   │     │  └─ Non → Aller à Q4
   │     │     ├─ Q4 : Utilisez-vous déjà LangGraph ?
   │     │     │  ├─ Oui → Utilisez LangMem
   │     │     │  └─ Non → Utilisez pgvector ou Chroma
   └─ Vous voulez zéro dépendance ? → SQLite personnalisé + embeddings locaux

Déclencheurs d'éviction de la mémoire centrale

DéclencheurSeuilAction
Dépassement de tailleMémoire centrale > 4 KoRésumer le bloc le moins récent, déplacer le résumé vers l'archivage
Décroissance par âgeDonnées inutilisées > 30 joursMarquer pour révision de compactage
Baisse de pertinenceScore d'accès < 0,3Déplacer vers la mémoire d'archivage avec balise de décroissance
Ordre de l'utilisateurL'utilisateur dit "oublie X"Suppression immédiate + pierre tombale d'archivage
Détection de conflitFaits contradictoires stockésDemander à l'agent de réconcilier ou questionner l'utilisateur

Critères de sélection des bases de données vectorielles

Si latence_de_requête_requise < 10 ms ET taille_des_données > 100 millions de vecteurs :
    → Utilisez Qdrant (optimisé pour la vitesse)
Sinon si vous_utilisez_déjà_postgresql :
    → Utilisez pgvector (base de données unique, opérations plus simples)
Sinon si recherche_hybride_requise (mot-clé + sémantique) :
    → Utilisez Weaviate (meilleur hybride)
Sinon si zéro_opération_préféré :
    → Utilisez Pinecone (entièrement géré)
Sinon :
    → Utilisez Chroma (local d'abord, API simple)

Décision de routage des niveaux de mémoire

Entrée : Message utilisateur ou observation de l'agent
│
├─ Contient une mise à jour d'identité/préférence ?
│  └─ Oui → Mettre à jour la mémoire centrale, persister immédiatement
├─ Nécessite du contexte de conversation ?
│  └─ Oui → Rechercher dans la mémoire de rappel (historique des conversations)
├─ Nécessite des connaissances factuelles ?
│  └─ Oui → Rechercher dans la mémoire d'archivage (base vectorielle)
└─ Données externes nécessaires ?
   └─ Oui → Utiliser les outils externes (API, fichiers, etc.)

Modes de défaillance

Cascade de corruption de mémoire

Symptômes : Dérive de la personnalité de l'agent, réponses contradictoires, conflits dans la mémoire centrale Cause racine : Écritures simultanées dans la mémoire centrale sans verrouillage, ou mises à jour partielles échouées Règle de détection : Si la taille de la mémoire centrale chute soudainement de >50 % ou contient du JSON/YAML mal formé Procédure de récupération :

  1. Arrêter l'agent immédiatement pour éviter toute corruption supplémentaire
  2. Restaurer la mémoire centrale à partir de la dernière bonne sauvegarde connue (moins d'1 heure)
  3. Rejouer le journal des conversations depuis la sauvegarde pour reconstruire les mises à jour perdues
  4. Implémenter des verrous d'écriture sur les mises à jour de la mémoire centrale avant le redémarrage

Dégradation de la recherche vectorielle

Symptômes : Résultats de recherche de plus en plus non pertinents, l'agent ne trouve pas les faits récemment stockés Cause racine : Dérive du modèle d'embedding, corruption de l'index, ou absence de compactage de la mémoire Règle de détection : Si la similarité cosinus moyenne des 3 premiers résultats < 0,7 pour des requêtes connues Procédure de récupération :

  1. Exécuter une vérification de cohérence des embeddings sur un échantillon aléatoire de 100 vecteurs
  2. Si >10 % présentent des embeddings anormaux, reconstruire l'intégralité de l'index
  3. Implémenter le verrouillage de la version du modèle d'embedding
  4. Ajouter une surveillance de la dérive des embeddings pour éviter la récurrence

Blocage de la couche de persistance

Symptômes : L'agent se bloque sur les opérations mémoire, timeouts de connexion à la base de données Cause racine : Lecture/écriture simultanées sur les mêmes blocs mémoire, pool de connexions insuffisant Règle de détection : Si une opération mémoire prend >30 s ou si la base de données montre des timeouts d'attente de verrou Procédure de récupération :

  1. Tuer les connexions bloquées pour libérer les verrous
  2. Implémenter une logique de réessai avec backoff exponentiel pour les opérations mémoire
  3. Ajouter un pool de connexions avec des limites de connexion maximales
  4. Réviser les niveaux d'isolation des transactions pour les mises à jour mémoire

Explosion de la fenêtre de contexte

Symptômes : Pic des coûts API, augmentation de la latence des réponses, erreurs de limite de tokens Cause racine : Gonflement de la mémoire centrale, récupération de trop nombreux fragments d'archivage par requête Règle de détection : Si le nombre moyen de tokens par requête > 80 % de la limite de contexte du modèle Procédure de récupération :

  1. Auditer la taille de la mémoire centrale – compresser ou archiver les blocs surdimensionnés
  2. Réduire le nombre de résultats de recherche d'archivage par défaut (10 → 5)
  3. Implémenter le comptage de tokens avant les appels LLM
  4. Ajouter des alertes de surveillance des coûts pour >1 $/conversation

Fuite de mémoire – Croissance illimitée

Symptômes : La taille de la base de données augmente linéairement, les performances de recherche se dégradent avec le temps Cause racine : Absence de compactage de la mémoire, insertion de faits en double, collecte des déchets manquante Règle de détection : Si la taille totale de la mémoire croît de >100 Mo/mois avec une utilisation normale Procédure de récupération :

  1. Exécuter une déduplication des faits dans la mémoire d'archivage (similarité cosinus > 0,92)
  2. Implémenter le résumé des conversations pour la mémoire de rappel de plus de 7 jours
  3. Ajouter un score de pertinence avec élagage automatique des mémoires à faible score
  4. Planifier des travaux de compactage hebdomadaires

Exemples concrets

Exemple : Construction d'un assistant de recherche personnel

Scénario : Concevoir l'architecture d'un agent qui aide à la recherche technique, se souvient de vos préférences et accumule des connaissances sur des mois.

Étape 1 – Conception des niveaux de mémoire

Mémoire centrale (2 Ko) :
- Nom de l'utilisateur : "Sarah"
- Domaines de recherche : ["apprentissage automatique", "systèmes distribués"]
- Sources d'articles préférées : ["arxiv", "bibliothèque numérique acm"]
- Style d'écriture : "détaillé avec exemples de code"
- Projet actuel : "optimisation de l'entraînement distribué"

Mémoire de rappel :
- Toutes les conversations dans PostgreSQL avec recherche en texte intégral
- Fenêtre de rétention de 30 jours, puis résumé

Mémoire d'archivage :
- Résumés d'articles, informations extraites, extraits de code
- pgvector sur PostgreSQL (déjà utilisé pour le rappel)
- nomic-embed-text pour l'embedding local (confidentialité + coût)

Étape 2 – Décision de sélection du framework En suivant l'arbre de décision :

  • Besoin d'un runtime d'agent complet ? Non (construction personnalisée)
  • Besoin de suivi temporel ? Non (les faits de recherche sont généralement intemporels)
  • Besoin de graphe+vecteur ? Non (recherche sémantique simple suffisante)
  • Déjà sur LangGraph ? Non
  • → Décision : pgvector + PostgreSQL

Étape 3 – Implémentation de la boucle de l'agent

async def étape_de_recherche(requête_utilisateur: str):
    # Charger la mémoire centrale
    centrale = charger_mémoire_centrale()  # Préférences utilisateur, projet actif
    
    # Vérifier si la requête concerne le projet actuel
    if "optimisation" in requête_utilisateur.lower():
        # Rechercher dans l'archivage les connaissances spécifiques au projet
        articles_pertinents = rechercher_archivage("optimisation de l'entraînement distribué")
        contexte = f"Contexte du projet actuel : {articles_pertinents}"
    else :
        # Rechercher des connaissances générales du domaine
        contexte = rechercher_archivage(requête_utilisateur)
    
    # Construire le prompt avec la mémoire centrale + le contexte récupéré
    prompt_système = f"""
    Vous êtes l'assistant de recherche de Sarah.
    Préférences de l'utilisateur : {centrale['préférences']}
    Projet actuel : {centrale['projet_actuel']}
    
    Contexte récupéré : {contexte}
    """
    
    réponse = await llm.chat([
        {"role": "system", "content": prompt_système},
        {"role": "user", "content": requête_utilisateur}
    ])
    
    # Persister l'interaction
    sauvegarder_dans_rappel(requête_utilisateur, réponse)
    
    return réponse

Ce qu'un novice aurait manqué :

  • Stocker des articles bruts au lieu d'informations extraites dans l'archivage
  • Ne pas implémenter la recherche dans les conversations (mémoire de rappel)
  • Mettre trop de choses dans la mémoire centrale (liste de domaines de recherche avec 50 entrées)
  • Aucune stratégie de compactage de la mémoire

Ce qu'un expert remarque :

  • La mémoire centrale reste concentrée sur "l'identité de travail", pas sur la connaissance
  • La mémoire d'archivage contient des faits organisés, pas des documents bruts
  • Implémente la recherche avant la récupération (l'agent décide ce qui est pertinent)
  • Planifie la croissance de la mémoire dès le premier jour

Points de contrôle qualité

Liste de validation du déploiement

  • SLO de latence mémoire : La mémoire centrale se charge en <100 ms, la recherche d'archivage se termine en <500 ms
  • Cohérence mémoire : La mémoire centrale survit au redémarrage de l'agent sans corruption (tester avec un arrêt volontaire)
  • Pertinence de la recherche : Les 3 premiers résultats d'archivage ont une similarité cosinus >0,6 pour des requêtes connues
  • Règles de dimensionnement mémoire : Mémoire centrale ≤4 Ko, rétention de rappel ≤30 jours, fragments d'archivage ≤1 Ko chacun
  • Durabilité de la persistance : Toutes les mises à jour mémoire survivent au redémarrage de la base de données (conformité ACID vérifiée)
  • Contrôles des coûts : Les opérations mémoire coûtent <0,01 $/conversation à 100 conversations/jour
  • Planification du compactage : Le compactage mémoire s'exécute chaque semaine et réduit la taille totale d'au moins 10 %
  • Cohérence de l'identité : La personnalité de l'agent reste stable sur 50+ sessions de conversation
  • Récupération à froid : L'agent gère gracieusement un état mémoire vide (le flux d'intégration fonctionne)
  • Vérification de la sauvegarde : La sauvegarde mémoire se restaure avec succès et préserve l'identité de l'agent

Limites – NE PAS utiliser

N'utilisez PAS ce skill pour :

  • Choisir les données d'entraînement de l'agent → Utilisez /always-on-agent-inputs à la place – ce skill couvre les données à fournir à l'agent, celui-ci couvre comment les stocker et les récupérer
  • Brainstormer des applications d'agents → Utilisez /always-on-agent-applications à la place – ce skill couvre l'idéation des cas d'usage, celui-ci couvre l'implémentation technique
  • Sécurité et confidentialité de l'agent → Utilisez /always-on-agent-safety à la place – ce skill couvre la gouvernance des données, le consentement et la sécurité ; celui-ci suppose qu'ils sont déjà conçus
  • Patterns génériques d'agents → Utilisez /agentic-patterns à la place – ce skill couvre les boucles ReAct, l'utilisation d'outils, la planification ; celui-ci couvre la couche de persistance sous-jacente
  • Tâches d'agent ponctuelles → Utilisez /agent-creator à la place – si l'agent n'a pas besoin de se souvenir entre les sessions, vous n'avez pas besoin d'une architecture toujours active
  • Conception de schémas de base de données → Ce skill suppose que vous comprenez les concepts de base de données ; utilisez des skills spécifiques aux bases de données pour l'optimisation des schémas
  • Stratégies d'optimisation des coûts → Ce skill mentionne les considérations de coût mais n'approfondit pas l'optimisation ; déléguez aux skills spécifiques aux coûts

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.

Skills associés