Saltar al contenido
Studeia Docs
AI-assisted translation — last updated 2026-06-23. For original (pt-BR or en-US), use the language switcher.

Tutor IA: pipeline multi-agente

Pipeline multi-agente del tutor IA Studeia: orchestrator, retrieval, pedagogical, evaluation, content, supervisor. Fallback Claude/GPT/Grok/Gemini. RAG por tenant. Detección de misconceptions

Por Equipo Studeia 2026-06-23 10 min
Resposta curta

El tutor IA de Studeia ofrece a cada alumno un apoyo personalizado: responde dudas basándose en el material del curso (RAG), elige la estrategia de enseñanza según el nivel, detecta equivocaciones y es moderado por un agente de seguridad — sin costo de IA en los componentes determinísticos. Para la institución, esto significa alumnos mejor atendidos 24/7 y profesores liberados del trabajo repetitivo, con la IA anclada en su contenido y bajo control de costos.

Pipeline detallado

Pre-LLM (síncrono, costo LLM cero)

  1. StudentModelService.getSnapshot(userId, courseId)

    • Carga ConceptMastery (distribución Beta por concepto)
    • Carga misconceptions activas/resolving (con evidence trail)
    • Carga EpisodicMemory (qué funcionó antes)
    • Carga quizContext (avgScore, passRate, totalAttempts, weakAreas)
    • Carga historial de ChatSession (sliding window 10 msgs)
  2. RetrievalAgent.retrieve(query, studentModel)

    • Reformula la query usando contexto (sustituye "esto", "aquello" por conceptos actuales)
    • Búsqueda pgvector con filtros (tenantId, courseId)
    • Boost por áreas débiles en quizzes (quizWeakAreas del studentModel)
    • Top-K con reranking semántico
  3. PedagogicalAgent.select(studentModel, query)

    • Evalúa mastery promedio + dominio específico de la query
    • Aplica ajustes (chat-quiz divergence, edad, estilo de aprendizaje)
    • Retorna estrategia + adición al system prompt
  4. buildEnrichedPrompt(query, studentModel, ragChunks, strategy, misconceptions)

    • Construye el system prompt con:
      • Estrategia pedagógica seleccionada
      • Contexto RAG (top-5 chunks con atribución de fuente)
      • Misconceptions activas (con instrucciones para abordarlas)
      • Intentos de quiz recientes (memoria inter-turno)
      • Contexto de inline quiz trigger (si hubo un quiz reciente)

LLM principal (streaming, SSE)

router.stream(taskType: "chat_tutor", messages, options) resuelve el proveedor mediante TenantTaskModelConfig:

  • Claude (primary) → OpenAI → xAI Grok → Google Gemini (cadena de fallback)
  • Circuit breaker por proveedor (estado en Redis)
  • Middleware de metering: rate limit + verificación de créditos + calculadora de costos
  • Streaming mediante Server-Sent Events al cliente

El LLM puede emitir tool calls especiales:

  • [INLINE_QUIZ]{...}[/INLINE_QUIZ] — quiz interactivo renderizado en el chat
  • present_quiz tool call — formato Vercel AI SDK

Post-LLM (en segundo plano mediante after(), fire-and-forget)

  1. EvaluationAgent.evaluate(turn, studentModel) — Haiku, ~$0.001

    • Clasifica la comprensión: correct | partial | incorrect | unclear
    • Detecta StudentMisconception con:
      • source: "chat"
      • sourceSessionId
      • contextSnippet (máx. 500 chars)
      • concepts[] (mapeado a ConceptMastery)
    • Actualiza ConceptMastery (actualización bayesiana mediante beta(alpha+success, beta+failure))
    • Llama a MisconceptionResolutionService.checkAndTransition (state machine)
  2. ContentAgent.preGenerate(studentModel, conceptId) — Haiku, ~$0.001

    • Genera ejercicio de follow-up basado en conceptos débiles
    • Almacena en Redis (TTL 30min) para servir en el próximo turno
    • Reduce la latencia percibida por el alumno
  3. SessionSummarizer (cada 10 turnos) — Haiku, ~$0.001

    • Resume el historial largo
    • Sustituye mensajes antiguos en el sliding window
    • Preserva los insights pedagógicos relevantes
  4. SupervisorAgent.run(turn, courseContext) — Haiku, ~$0.001

    • Clasifica severity (5 niveles) + category (8 tipos)
    • Crea AiSupervisorIncident si severity != "none"
    • Aplica strikes / quarantine / safety cooldown según las reglas

Configuración por administrador

TenantTaskModelConfig

El administrador elige proveedor+modelo por tipo de tarea:

chat_tutor          → Claude Sonnet 4.6 (o GPT-4o, o Grok-3, etc)
chat_evaluation     → Claude Haiku
chat_summarization  → Claude Haiku
chat_supervisor     → Claude Haiku
content_generation  → Claude Haiku
course_review       → Claude Sonnet
gamification_agent  → Claude Sonnet
course_agent        → Claude Sonnet

PedagogicalConfig

Configurabilidad pedagógica por tenant:

  • masteryThresholds: umbrales para cambiar estrategia (default 0.3, 0.5, 0.7, 0.9)
  • domainOverrides: ajuste por dominio (ej.: matemáticas usa scaffolding más agresivo)
  • ageOverrides: ajuste por franja etaria (niño = direct_instruction más frecuente)
  • learningStyleOverrides: visual, auditivo, kinestésico

Personalización de plantillas de prompt

El administrador institucional puede editar el system prompt del tutor mediante PromptTemplate (en la base de datos):

  • Por taskType (chat_tutor)
  • Por proveedor (Anthropic, OpenAI, Google, xAI — variantes optimizadas)
  • Por locale (pt-BR, en-US, es-ES, fr-FR)
  • Por tenant (o null = global)
  • Por curso (override por curso)

Limitaciones técnicas

  • Latencia first-token: 800-1500ms (incluyendo el pipeline pre-LLM)
  • Latencia total del turno: 2-8s para una respuesta promedio (~300 palabras)
  • Context window: limitado por el proveedor (Claude Sonnet 4.6 = 200K, GPT-4o = 128K)
  • Idiomas: el tutor responde en el idioma del alumno pero internamente el pipeline es bilingüe (en/pt)
  • Imágenes: el tutor acepta imágenes en el input (multimodal Claude/GPT/Gemini) pero RAG es solo texto
  • Avatar parlante + voz (salida): disponible como opt-in por curso — avatar parlante en tiempo real con voz TTS mediante HeyGen LiveAvatar o D-ID (BYO key). Ver Avatar & TTS.
  • Voz de entrada (STT): hablar con el tutor (voz del alumno → speech-to-text → chat) ya está implementado en B2B (dictado: el habla se convierte en texto en el campo de mensaje, sin autoenvío). Lo que sigue en el roadmap es la conversación bidireccional por voz (bucle con el avatar en tiempo real) y la nota automática de pronunciación.

Ver también

FAQ

¿Cómo está compuesto el pipeline del tutor IA?

El tutor utiliza un pipeline multi-componente: los componentes determinísticos en TypeScript se encargan de la orquestación, el contexto del alumno, la búsqueda RAG y la estrategia pedagógica; el LLM principal genera la respuesta mediante un router; las tareas respaldadas por LLM en segundo plano se encargan de la evaluación, los follow-ups de contenido, la seguridad/supervisión y la sumarización de sesión cuando es necesario. Solo los componentes respaldados por LLM consumen TenantTaskModelConfig y metering.

¿Cuánto cuesta un turno completo del tutor?

Típicamente $0.005-$0.05 por turno completo. Desglose: LLM principal (Sonnet) $0.005-$0.04 + EvaluationAgent (Haiku) $0.001 + ContentAgent (Haiku) $0.001 + SupervisorAgent (Haiku) $0.001. Los mensajes cortos sobre conceptos simples pueden costar $0.001 (solo Haiku).

¿Puedo deshabilitar el tutor IA para un curso específico?

Sí. Course.aiTutorEnabled (boolean, default true). Toggle de administrador institucional en /institution/courses/[id]/settings. La barra lateral del alumno y el sub-nav del curso ocultan 'Chat Tutor' cuando está deshabilitado.

Veja tambem

Tutor IA: pipeline multi-agente