Communitygithub.com

Modelo Actor Agha: Diseño de Sistemas de Agentes Concurrentes

Modelo computacional concurrente fundamental donde los actores se comunican exclusivamente mediante el paso asíncrono de mensajes.

¿Qué es Modelo Actor Agha: Diseño de Sistemas de Agentes Concurrentes?

Este skill define el modelo de actores Agha, un marco de computación concurrente en el que los agentes (actores) se comunican exclusivamente mediante el paso asíncrono de mensajes, evitando el estado compartido. Está diseñado para desarrolladores de sistemas de agentes de IA (como Claude Code, Cursor, Codex) que necesitan orquestar tareas concurrentes, manejar fallos de forma aislada y escalar dinámicamente. El skill cubre patrones clave como el patrón de cliente (customer pattern) para dependencias secuenciales, actores insensibles (insensitive actors) para cómputos largos, y supervisión para recuperación de fallos. También identifica antipatrones comunes (orquestador central, bloqueo síncrono, estado compartido) y ofrece ejemplos prácticos de descomposición de tareas y recuperación de errores. La guía enfatiza que los actores no son simplemente 'objetos con métodos asíncronos', sino que requieren un comportamiento de reemplazo completo y direcciones como datos de primera clase para el enrutamiento de capacidades. Es ideal para sistemas concurrentes, no solo distribuidos, y prioriza la corrección y la composicionalidad sobre la optimización de rendimiento.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/curiositech/windags-skills/tree/HEAD/skills/agha-actor-model

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

SKILL.md — Modelo Actor Agha: Diseño de Sistemas de Agentes Concurrentes

Puntos de Decisión

Cómo Elegir la Estrategia de Creación de Actores Según el Tipo de Tarea

SI la tarea tiene dependencias secuenciales:
├─ Usar patrón de cliente: crear hijo con dirección de respuesta
├─ Pasar dirección del cliente al hijo como parámetro
└─ El hijo envía el resultado directamente al cliente (no al padre)

SI la tarea requiere un cómputo largo:
├─ Crear un actor insensible para el cómputo
├─ Reenviar mensajes entrantes a un actor búfer
└─ Reanudar desde el búfer cuando el cómputo termine

SI la tarea necesita asignación dinámica de recursos:
├─ Crear actores gestores de recursos bajo demanda
├─ Pasar capacidades (direcciones) como datos del mensaje
└─ No hay registro central: las direcciones fluyen por el sistema

SI la tarea tiene requisitos de aislamiento de fallos:
├─ Iniciar actores hijos supervisados para operaciones riesgosas
├─ El supervisor detecta fallos por falta de respuestas
└─ Reemplazar actores fallidos sin afectar a otros

SI se están componiendo sistemas de agentes existentes:
├─ Verificar que la interfaz preserve la estructura causal
├─ Probar el comportamiento bajo composición (no solo en aislamiento)
└─ Usar protocolos de mensajes como límites (no estado compartido)

Árbol de Decisión: Envío de Mensajes vs. Reemplazo de Estado

SI se necesita coordinación con otros agentes:
├─ ENVIAR mensajes (no modificar el estado local primero)
├─ Incluir dirección de respuesta si se espera respuesta
└─ Nunca asumir orden de mensajes

SI se necesita cómputo local:
├─ ESPECIFICAR comportamiento de reemplazo
├─ Encapsular el nuevo estado (no exponer detalles internos)
└─ Asegurar procesamiento de un mensaje a la vez

SI se necesita escalado dinámico:
├─ CREAR nuevos actores con comportamientos específicos
├─ Pasar las direcciones necesarias a los nuevos actores
└─ Sin estado de inicialización compartido

Modos de Fallo

1. Anti-patrón del Orquestador Central

Detección: Si un solo actor enruta todos los mensajes o mantiene todo el estado del sistema Síntomas: Punto único de fallo, cuello de botella bajo carga, problema de regresión infinita Solución: Descomponer en una comunidad de actores, cada uno conociendo solo su contexto local, usar enrutamiento por capacidades

2. Falacia del Bloqueo Síncrono

Detección: Si los actores esperan/bloquean por respuestas en lugar de especificar comportamiento de reemplazo Síntomas: Punto muerto bajo carga, suposiciones ocultas de temporización, concurrencia reducida Solución: Modelar como pares de mensajes solicitud-respuesta, usar patrón de cliente para dependencias, aplicar patrón de actor insensible

3. Contaminación por Estado Compartido

Detección: Si múltiples actores leen/escriben la misma estructura de datos (incluso con bloqueos) Síntomas: Condiciones de carrera, cuellos de botella secuenciales, estado global oculto Solución: Encapsular el estado en un solo actor, usar paso de mensajes para coordinación, la exclusión mutua es gratuita

4. Verificación Solo de Salida

Detección: Si las pruebas solo comparan resultados finales sin verificar patrones de interacción Síntomas: Anomalía de Brock-Ackerman: salidas idénticas pero diferente comportamiento bajo composición Solución: Verificar preservación de la estructura causal, probar el comportamiento bajo composición, usar equivalencia de observación

5. Suposición de Topología Estática

Detección: Si el grafo de comunicación se fija al inicio sin reconfiguración en tiempo de ejecución Síntomas: No puede manejar sistemas abiertos, sin gestión dinámica de recursos, frágil ante cambios Solución: Tratar las direcciones como datos de primera clase, implementar enrutamiento por capacidades, soportar cambios de topología en tiempo de ejecución

Ejemplos Prácticos

Ejemplo 1: Descomposición de Tareas con Patrón de Cliente

Escenario: Un agente necesita procesar una solicitud compleja que requiere subtareas secuenciales A → B → C, pero debe permanecer receptivo a otros mensajes.

Enfoque Novato:

recibir solicitud →
  bloquear mientras se llama a la subtarea A
  bloquear mientras se llama a la subtarea B
  bloquear mientras se llama a la subtarea C
  enviar resultado final

Aplicación Experta del Modelo Actor:

recibir solicitud →
  crear actor cliente_BC con direcciones para B, C, destinatario final
  enviar solicitud de subtarea A a procesador_A con cliente_BC como dirección de respuesta
  especificar comportamiento de reemplazo: listo para la siguiente solicitud

cliente_BC recibe resultado de A →
  enviar resultado a procesador_B con cliente_C como dirección de respuesta

cliente_C recibe resultado de B →
  enviar resultado a procesador_C con destinatario_final como dirección de respuesta

Decisiones Clave Tomadas:

  • Se usó el patrón de cliente para evitar el bloqueo
  • Cada paso crea el siguiente cliente en la cadena
  • El agente original permanece receptivo durante todo el proceso
  • Un fallo en cualquier subtarea solo afecta a esa cadena

Ejemplo 2: Recuperación de Fallos con Supervisión

Escenario: El sistema necesita manejar fallos de agentes sin que se propaguen a todo el sistema.

Enfoque Novato: Try-catch alrededor de las llamadas a agentes, reiniciar todo en caso de fallo.

Aplicación Experta:

el supervisor crea actor_trabajador →
  envía tarea al trabajador con tiempo de espera de respuesta
  especifica reemplazo: "esperando_respuesta"

SI se recibe respuesta dentro del tiempo de espera →
  reenviar resultado al cliente
  especificar reemplazo: "listo"

SI el tiempo de espera expira →
  crear nuevo actor_trabajador (el anterior falló)
  reenviar tarea al nuevo trabajador
  especificar reemplazo: "esperando_respuesta"

Compensaciones Navegadas:

  • La supervisión es una preocupación separada de la lógica de negocio
  • Los actores fallidos se aíslan y reemplazan, no se reparan
  • Equilibrio entre detección por tiempo de espera y entrega garantizada
  • Sin estado compartido entre supervisor y trabajadores

Puertas de Calidad

  • Ningún actor bloquea su bucle de procesamiento de mensajes (se aplica el patrón de actor insensible donde sea necesario)
  • Toda la coordinación usa paso de mensajes (sin estado mutable compartido entre actores)
  • La entrega de mensajes está garantizada, pero no se asume orden
  • Las direcciones se tratan como datos de primera clase para el enrutamiento por capacidades
  • Cada actor especifica un comportamiento de reemplazo para cada tipo de mensaje
  • La creación de actores ocurre dinámicamente según las necesidades de cómputo
  • El aislamiento de fallos evita que los fallos se propaguen a través de los límites de los actores
  • La topología del sistema puede reconfigurarse en tiempo de ejecución sin registro central
  • El comportamiento bajo composición está verificado, no solo el comportamiento aislado de los componentes
  • Las operaciones síncronas se modelan como pares de mensajes solicitud-respuesta

Límites NO-PARA

Este skill NO debe usarse para:

  • Cómputos secuenciales simples → usar programación funcional en su lugar
  • Sistemas donde se requiera memoria compartida físicamente → usar patrones de concurrencia basados en bloqueos
  • Sistemas en tiempo real con restricciones de temporización estrictas → usar paso de mensajes síncrono con análisis de temporización formal
  • Cómputos matemáticos sin coordinación → usar enfoques funcionales puros

Delegar a otros skills cuando:

  • Se implementen marcos de actores específicos → usar guías de implementación específicas de la plataforma
  • Se realice optimización de rendimiento de sistemas de actores → usar el skill [optimización-de-rendimiento]
  • Se necesite verificación formal de propiedades de actores → usar el skill [métodos-formales]
  • Se diseñen bases de datos para persistencia de actores → usar el skill [arquitectura-de-datos]

Ideas erróneas comunes sobre el alcance:

  • Los actores no son solo "objetos con métodos asíncronos" - requieren la tripleta completa de respuesta
  • El modelo de actores no es solo para sistemas distribuidos - aplica a cualquier cómputo concurrente
  • No es principalmente una optimización de rendimiento - es un marco para corrección y composicionalidad

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

Build production-ready LLM applications, advanced RAG systems, and intelligent agents. Implements vector search, multimodal AI, agent orchestration, and enterprise AI integrations. Use PROACTIVELY for LLM features, chatbots, AI agents, or AI-powered applications.

curiositech/windags-skills

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

Skills relacionados