The Mentorship module provides healthcare professionals with instant access to CUIDO, an AI-powered virtual mentor specialized in rural healthcare challenges. Built on Claude’s advanced language model, it offers empathetic, context-aware guidance available 24/7.
CUIDO uses Claude 3.5 Sonnet with specialized prompt engineering to understand the unique challenges faced by rural healthcare workers in Latin America.
The mentorship service constructs context-rich prompts:
// From mentorshipService.js:40-72buildMentorshipSystemPrompt() { return `Eres CUIDO, un mentor virtual especializado en salud rural. Tu función es: 1. Brindar acompañamiento emocional y profesional a trabajadores de la salud 2. Dar consejos prácticos para situaciones del día a día 3. Ayudar con dilemas éticos y comunicación con pacientes 4. Ofrecer apoyo motivacional IMPORTANTE: - Responde en español con tono cálido y empático - Máximo 200 palabras por respuesta - Si es algo médico grave, recomienda consultar con supervisor - Enfócate en lo práctico y aplicable - Termina siempre con una pregunta de seguimiento`;}buildMentorshipUserPrompt(question, context) { let prompt = `Pregunta del trabajador de salud: "${question}"`; if (context.position) { prompt += `\nCargo: ${context.position}`; } if (context.department) { prompt += `\nDepartamento: ${context.department}`; } if (context.area) { prompt += `\nÁrea de consulta: ${context.area}`; } return prompt;}
The system prompt defines CUIDO’s personality and behavior:
Core Persona
Eres CUIDO, un mentor virtual especializado en salud rural.
CUIDO is positioned as a specialized mentor, not a generic chatbot. This establishes expertise and trust.
Primary Functions
1. Brindar acompañamiento emocional y profesional a trabajadores de la salud2. Dar consejos prácticos para situaciones del día a día3. Ayudar con dilemas éticos y comunicación con pacientes4. Ofrecer apoyo motivacional
Clear functional boundaries help Claude stay focused on relevant healthcare worker support.
Behavioral Constraints
- Responde en español con tono cálido y empático- Máximo 200 palabras por respuesta- Si es algo médico grave, recomienda consultar con supervisor- Enfócate en lo práctico y aplicable- Termina siempre con una pregunta de seguimiento
These constraints ensure:
Language: Spanish for Latin American users
Tone: Warm and empathetic, not clinical
Brevity: 200-word limit for mobile-friendly responses
Safety: Escalates serious medical issues to human supervisors
POST /api/mentorship/ask{ "question": "Me siento agotada, cada día es más difícil motivarme para venir a trabajar", "context": { "position": "Enfermera", "department": "urgencias", "area": "bienestar_emocional" }}
POST /api/mentorship/ask{ "question": "¿Cómo le comunico malas noticias a la familia de un paciente?", "context": { "position": "Médico Interno", "department": "hospitalizacion", "area": "comunicacion" }}
Si es algo médico grave, recomienda consultar con supervisor
This instructs Claude to escalate serious medical issues to human supervisors.
2
Response Validation
if (!response.content || response.content.length === 0) { throw new AppError('Claude no generó respuesta', 500);}if (assistantMessage.type !== 'text') { throw new AppError('Tipo de respuesta no esperado de Claude', 500);}
3
Error Handling
// From claudeService.js:122-149catch (error) { if (error.status === 400) { throw new AppError('Solicitud inválida a Claude: ' + error.message, 400); } if (error.status === 401) { throw new AppError('API key de Claude inválida', 500); } if (error.status === 429) { throw new AppError('Límite de rate excedido para Claude API', 429); } if (error.status >= 500) { throw new AppError('Error interno del servicio Claude', 503); }}
4
Usage Tracking
All interactions are logged for analytics and safety review: