Casos de uso y workflows
Agentes disponibles
Sección titulada «Agentes disponibles»| Agente | Producto | Status | Workflows típicos |
|---|---|---|---|
| SalesAgent | emahealth.io | GA | Q&A productos, capturar lead via tool, derivar a cal.com |
| SupportAgent | emaclinic | GA | Resumen clínico, verificar medicamentos, GES, búsqueda de pacientes, agenda, alertas |
| AnalyticsAgent | emavault | GA | MRR/EBITDA/runway, pipeline, horas equipo, obligaciones, editorial |
| LabAssistantAgent | emalab | alpha | Conversaciones contestadas con system prompt, sin tools (Wave 5+) |
| PathologyAgent | emapath | planned | Wave 6: CAP synoptic + ICD-O-3 |
| WellnessCoach | emawell | not implemented | Retorna 501 hasta Wave 5+ |
Workflow 1 — SalesAgent con captura de lead (Wave 3)
Sección titulada «Workflow 1 — SalesAgent con captura de lead (Wave 3)»Wave 3 le dio al SalesAgent una tool: cuando un visitante deja su email
en la conversación, el agente puede invocar create_or_update_lead que
upsertea en emavault.leads.
Comportamiento:
- Match por
contact_emailcase-sensitive (F010). sourcedefault =emi_chatsi no se especifica (F011).lead_activitiesinsert es non-fatal — si falla, ellead_idya creado se devuelve (F012).- El
leadIdviaja en la respuesta del agente para que el widget pueda mostrar confirmación al visitante.
Workflow 2 — SupportAgent (asistente clínico)
Sección titulada «Workflow 2 — SupportAgent (asistente clínico)»11 tools FHIR sobre Aidbox, scope-adas por tenant con credenciales encriptadas (Wave 3). Lo crítico es cómo el agente decide qué tool invocar y cómo se resuelve el tenant.
Workflow 3 — AnalyticsAgent (asistente operacional)
Sección titulada «Workflow 3 — AnalyticsAgent (asistente operacional)»6 tools sobre Supabase emahub. Mismo patrón de tool loop.
Workflow 4 — LabAssistant / Pathology / Wellness
Sección titulada «Workflow 4 — LabAssistant / Pathology / Wellness»Estos agentes están instanciados pero sin tools (F013). Sus system prompts indican honestamente qué pueden y qué no:
| Agent | Comportamiento actual |
|---|---|
lab_assistant | Responde como asistente conversacional sin acceso a datos. Avisa al profesional que las tools (validación Valab, abnormal explainer) llegan en Wave 5+. |
pathology_assistant | Igual, pero pone fecha objetivo en Wave 6. |
wellness_coach | El endpoint retorna 501 Not Implemented antes de invocar Claude. |
Esto permite que emalab y emapath ya tengan EmiDrawer integrado y
una experiencia base, sin esperar a Wave 5+ para los tools.
Activación per-tenant
Sección titulada «Activación per-tenant»Una request pasa por dos puertas antes de llegar al agente:
tenant_emi_access la administra Vault (Wave 4 le agrega UI).
Cuándo se invoca cada agente
Sección titulada «Cuándo se invoca cada agente»La selección no es manual — la determina la API key con la que el producto cliente firma la request. 6 API keys, 6 agentes, mapeo 1:1.
Authorization: Bearer EMAHEALTH_API_KEY → SalesAgentAuthorization: Bearer EMACLINIC_API_KEY → SupportAgentAuthorization: Bearer EMALAB_API_KEY → LabAssistantAgentAuthorization: Bearer EMAVAULT_API_KEY → AnalyticsAgentAuthorization: Bearer EMAPATH_API_KEY → PathologyAgentAuthorization: Bearer EMAWELL_API_KEY → WellnessCoach (501)Multi-turn
Sección titulada «Multi-turn»EMA Emi es stateless: el cliente envía el historial completo en cada request. La política recomendada es:
- Sin límite hard de turns. El widget puede tener su propio límite visual.
- Reset al cerrar. Si el usuario cierra el chat y lo vuelve a abrir, empieza una conversación nueva.
Cuando el modelo necesita información del lado del cliente que no llegó en la request, puede pedirlo explícitamente al usuario en lugar de asumir.