--- name: "Agent Configuration Architect" description: "Especialista en configuración de agentes de IA: templates, tools, models, prompts y seed data." trigger: "agents, agentes, AI, tools, templates, models, prompts, system prompt, wizard" scope: "AGENTS" auto-invoke: true --- # Agent Configuration Architect - Platform AI Solutions (v7.1.2) ## 1. Concepto: La Arquitectura de Agentes Nexus ### Filosofía Multi-Capa Nexus no usa un único system prompt estático. Utiliza una arquitectura de **3 capas** para construir la inteligencia del agente en runtime: 1. **Capa 1: Template Base (Polimorfismo)**: Definida en `agent_service/app/core/agent_templates.py`. Provee la estructura de identidad y reglas core según el rol (Sales, Support, Leads, Logistics). 2. **Capa 2: Wizard Overrides (Identidad de Negocio)**: Datos específicos del cliente (Tono, Reglas de Negocio, Diccionario de Sinónimos) que sobreescriben los valores del template. 3. **Capa 3: Instrucciones de Tools (Táctica de Ejecución)**: Instrucciones detalladas sobre CÓMO usar cada herramienta y CÓMO formatear la respuesta, inyectadas dinámicamente. --- ## 2. Configuración de Templates (Wizard Defaults) Los valores predeterminados para el Wizard se definen en `orchestrator_service/app/api/agents.py` → `AGENT_TEMPLATES`. ### Ejemplo: Sales Agent (Pointe Coach inspired) ```python AGENT_TEMPLATES = { "sales": { "agent_name": "Agente de Ventas (IA)", "model_provider": "openai", "model_version": "gpt-4o", "temperature": 0.7, "defaultValue": { "agent_tone": "Sos una asesora experta en danza clásica... usamos voseo argentino...", "synonym_dictionary": "mallas: Leotardos\ncancanes: Medias...", "business_rules": "1. Prioridad: Venta asistida...\n2. Fitting: Ofrecer siempre para puntas...", "catalog_knowledge": "Categorías: Zapatillas, Medias, Leotardos, Accesorios.", "store_website": "https://pointecoach.com" } } } ``` --- ## 3. Dynamic Global Templates (v7.2+) Nexus ahora soporta **Templates Dinámicos** almacenados en la base de datos. Esto permite crear plantillas que aparecen automáticamente en el Wizard de todos los inquilinos. ### Lógica de Visibilidad El endpoint `/admin/agent-templates` mezcla los templates hardcoded con los de la base de datos siguiendo esta lógica: - `is_template = TRUE`: El registro es tratado como una plantilla, no como un agente vivo. - `tenant_id IS NULL`: **Template Global**. Visible para todas las cuentas del sistema. - `tenant_id = X`: **Template Privado**. Visible solo para el inquilino X. ### Mapeo de Campos El JSON en la columna `config` del template debe mapear a los campos expected del Wizard: - `store_description` -> Descripción en el Wizard. - `agent_tone` -> Tono y Personalidad. - `business_rules` -> Reglas de Negocio. - `synonym_dictionary` -> Diccionario de Sinónimos. --- ## 4. Instrucciones de Herramientas (Tool Config) Cada herramienta tiene dos componentes de inyección de prompt definidos en `orchestrator_service/main.py`: 1. **Táctica (`tactical_injections`)**: Instrucciones sobre el proceso de pensamiento y validación antes de llamar a la tool. 2. **Guía de Respuesta (`response_guides`)**: Instrucciones sobre el formato y contenido de la salida (ej: Formato WhatsApp limpio, CTAs obligatorios). ### Distribución de Instrucciones El sistema busca instrucciones en este orden de prioridad: 1. **Personalización por Tienda**: Configurada en el modal "Configurar Herramientas" (`tenant.tool_config`). 2. **Configuración de la Tool en DB**: Tabla `tools`, campos `prompt_injection` y `response_guide`. 3. **Global Defaults**: Diccionarios `tactical_injections` y `response_guides` en `main.py`. --- ## 4. Inyección Dinámica y Variables Mágicas El Orchestrator inyecta variables en el prompt antes de enviarlo al `agent_service`: - `{STORE_NAME}`: Nombre del comercio. - `{STORE_CATALOG_KNOWLEDGE}`: Descripción del catálogo (Wizard). - `{STORE_DESCRIPTION}`: Descripción del negocio. - `{store_website}`: URL del sitio (usado en guías de respuesta). --- ## 5. El Proceso de "Trasplante" de Templates Cuando integres un agente de un proyecto legacy o una configuración compleja (como Pointe Coach), utilizá la técnica de **Distribución Multi-Capa**: | Componente | Ubicación en Código | Propósito | | :--- | :--- | :--- | | **Identidad/Tono** | `agents.py` (Wizard) | Estilo de habla y personalidad. | | **Reglas de Negocio** | `agents.py` (Wizard) | Políticas de venta, derivación y fitting. | | **Diccionario** | `agents.py` (Wizard) | Mapeo de términos informales a categorías. | | **Táctica de Tool** | `main.py` (Tactical) | Lógica de búsqueda y validación. | | **Formato Respuesta** | `main.py` (Response) | Estructura visual de los mensajes (WhatsApp). | | **Reglas de Calidez** | `templates.py` (Base) | Puntuación, prohibiciones críticas (anti-markdown). | > [!TIP] > Consultá la skill `Template_Transplant_Specialist` para ver el proceso paso a paso de extracción textual 1:1. --- ## 6. Checklist de Arquitecto 1. **Wizard Alignment**: Asegurate de que los campos `agent_tone`, `business_rules` y `synonym_dictionary` del Wizard lleguen como `wizard_overrides` al `agent_service`. 2. **Tool Parity**: Verificá que el modal "Configurar Herramientas" en el Frontend muestre los defaults del sistema si no hay customización. 3. **Prompt Merge**: Verificá en `agent_service/main.py` que el prompt final sea la unión de: `template.build_system_prompt()` + `request.context.system_prompt` + `injected_content` (RAG y Tools). 4. **Token Flow**: Confirmá que el `tiendanube_access_token` se obtenga del Vault y se pase limpio al `agent_service` sin fallbacks legacy. --- **Protocolo Omega**: En el 2026, los agentes se definen por su capacidad de seguir instrucciones tácticas precisas por herramienta. Menos "instrucciones generales" y más "guías de respuesta específicas".