Agente IA (Alcance 3)
Spec: Definicion de alcance integracion IA-Moodle (docx) Estado: Implementado
Proposito
El Alcance 3 cubre dos flujos complementarios de integracion con un agente IA externo:
- Consulta (pull): el agente IA consulta datos del campus (progreso, calificaciones, alertas) para tomar decisiones autonomas. Se expone via Web Services REST con autenticacion por token.
- Conversacion (push): el estudiante conversa con el tutor IA desde Moodle a traves del Drawer IA. El plugin
local_pccntr8203403_aitutoractua como proxy del lado del servidor.
En ambos flujos, el agente nunca consulta tablas mdl_* directamente.
Arquitectura
El alcance se resuelve con tres plugins locales independientes (ADR-003):
| Plugin | Flujo | ADR | Estado |
|---|---|---|---|
| local_pccntr8203403_dashboard | Consulta (pull): funciones externas de solo lectura | ADR-001 | Implementado -- capa de datos y funcion externa get_student_panel |
| local_pccntr8203403_iacontext | Consulta (pull): contexto plano de actividades por estudiante | ADR-001 | En desarrollo (ALPHA) -- funcion externa get_activity_context |
| local_pccntr8203403_aitutor | Conversacion (push): proxy al servicio externo | ADR-003 | Implementado (ALPHA) |
Estado de las piezas
| Pieza | Estado |
|---|---|
Capa de datos serializable (course_stats, student_stats, academic_alerts) | Implementada -- ver local_pccntr8203403_dashboard |
Funcion externa de consulta local_pccntr8203403_dashboard_get_student_panel | Implementada -- devuelve el dataset completo del panel de aprendizaje por curso (progreso, calificaciones, pendientes, racha, modulos, ultimas notas y las 12 alertas academicas). Capacidad local/pccntr8203403_dashboard:viewstudentpanel. El ADR-001 la propuso con el nombre provisional get_learner_context; el nombre definitivo es get_student_panel |
Funcion externa de consulta local_pccntr8203403_iacontext_get_activity_context | En desarrollo -- devuelve una fila plana por actividad (nombre, seccion, tipo, enlace, estado, nota y fecha limite unidos por cmid), mas la completitud del curso y el ultimo acceso del estudiante. Capacidad local/pccntr8203403_iacontext:viewcontext. Contrato en get_activity_context. Pendiente la cuenta de servicio no administradora que ejercite las comprobaciones de permisos |
| Servicio externo + token para el agente | Parcial -- en Pruebas existe el servicio "Componente IA Externo" con funciones core y token |
Plugin proxy del tutor IA (local_pccntr8203403_aitutor) | Implementado -- funcion send_message, rate limiting, sanitizacion, soporte SCORM |
| Drawer IA (interfaz conversacional en el tema) | Implementado -- plantilla, AMD, SCSS en theme_cdigital |
Relacionados
- Servicio "Componente IA Externo" -- servicio de Web Services configurado en Pruebas con las funciones core que consume el agente, y demo de las respuestas JSON por trigger.
- Drawer IA -- interfaz conversacional del agente; panel lateral de chat renderizado por
theme_cdigital, correspondiente al elemento Aside - NavigationDrawer (AI Assistant Chat Panel) del diseno en Figma. - local_pccntr8203403_aitutor -- plugin proxy que conecta el Drawer IA con el servicio externo de tutoria.
- Proveedores de IA (core_ai) -- subsistema nativo de Moodle 5.1; independiente de esta capa de datos, pero parte del ecosistema IA del campus.
- Insignia #12 "Aliado Inteligente" (Insignias) -- diferida hasta que exista la tutora IA.
El estado consolidado por requerimiento esta en Alcances y desarrollos.