Sprint Planning - Sprint 1
Información General
- Sprint: Sprint 1
- Fecha de inicio: 29 de septiembre de 2025
- Fecha de finalización: 10 de octubre de 2025
- Duración: 2 semanas (12 días laborables)
- Equipo: Gabriel Francisco
Objetivo del Sprint (Sprint Goal)
Desarrollar un chatbot básico ReAct funcional que sirva como Producto Mínimo Viable (PMV) de un agente de IA para aplicaciones educativas.
El sprint se enfoca en implementar la infraestructura base y los componentes esenciales de un agente conversacional con arquitectura ReAct (Reason-Action), incluyendo capacidad de razonamiento, uso de herramientas y memoria a corto plazo.
Alcance del Sprint
Milestone Asociado
- Milestone 1: Chatbot Básico ReAct
Funcionalidades Planificadas
1. Infraestructura de Inferencia
- Desplegar un modelo de lenguaje (SLM) en local utilizando vLLM
- Configurar el modelo para soportar function calling
- Optimizar para las limitaciones de hardware disponibles (≤5 GB VRAM)
- Contenerización con Docker
2. Agente de IA con Arquitectura ReAct
- Diseñar e implementar un agente básico usando LangGraph
- Definir estados del agente: START, THINK, END
- Implementar lógica de razonamiento y selección de acciones
- Integrar el agente con el modelo de inferencia
3. Sistema de Memoria a Corto Plazo
- Implementar persistencia de estado conversacional
- Configurar checkpointer para guardar el estado
- Establecer sistema de threads para conversaciones independientes
- Integrar base de datos para almacenamiento
4. Sistema de Herramientas
- Definir herramientas básicas para el agente
- Implementar mecanismo de incorporación de herramientas
- Configurar el agente para seleccionar herramientas según la query
5. API Backend
- Desarrollar API REST con FastAPI
- Implementar endpoints básicos:
/
,/health
,/chat
- Documentar la API
- Habilitar interacción con el agente a través de HTTP
6. Arquitectura de Microservicios
- Dockerizar el backend
- Configurar Docker Compose con múltiples servicios
- Establecer comunicación entre servicios (vLLM + Backend)
7. Testing y Calidad
- Implementar tests unitarios para el agente
- Crear tests de integración para la API
- Configurar pytest y estructura de testing
8. Documentación
- Establecer CHANGELOG siguiendo Keep a Changelog
- Implementar versionado semántico
- Configurar automatización de releases con GitHub Actions
Product Backlog Items Seleccionados
Issues Comprometidos
ID | Título | Tipo | Estimación | Prioridad |
---|---|---|---|---|
#21 | Inferencia en local con vLLM | Feature | M | Alta |
#22 | Configuración de vLLM adicional para uso de herramientas | Feature | S | Alta |
#25 | Diseño e implementación de un agente chatbot básico | Feature | L | Alta |
#26 | Memoria a corto plazo | Feature | M | Alta |
#23 | Definición de herramientas básicas | Feature | S | Media |
#24 | Incorporación de herramientas al agente | Feature | M | Media |
Total de Issues: 6
Estimación de Esfuerzo
- Small (S): 1-2 días
- Medium (M): 2-4 días
- Large (L): 4-6 días
Criterios de Aceptación
Para el Sprint
El sprint se considerará exitoso cuando:
- ✅ El sistema permita desplegar un modelo LLM en local con soporte de function calling
- ✅ Exista un agente funcional con arquitectura ReAct capaz de procesar queries
- ✅ El agente pueda mantener memoria de conversaciones mediante threads
- ✅ El agente pueda seleccionar y usar herramientas de forma dinámica
- ✅ La API REST esté operativa y permita interactuar con el agente
- ✅ Todo el sistema esté contenerizado y sea desplegable con un solo comando
- ✅ Exista una suite de tests que valide la funcionalidad básica
- ✅ La documentación refleje el estado actual del proyecto
Por Issue
Issue #21: Inferencia en local con vLLM
- vLLM ejecutándose en contenedor Docker
- Modelo LLM cargado y respondiendo a peticiones
- Consumo de recursos dentro de límites (≤5 GB VRAM)
- Endpoint de inferencia accesible
Issue #22: Configuración vLLM para herramientas
- Modelo soporta format de function calling
- Configuración de chat templates adecuada
- Pruebas exitosas de llamada a herramientas
Issue #25: Agente chatbot básico
- GraphAgent implementado con LangGraph
- Estados START, THINK, END definidos
- Flujo de ejecución funcional
- Integración con modelo de inferencia
Issue #26: Memoria a corto plazo
- Checkpointer configurado
- Base de datos para persistencia activa
- Sistema de threads funcionando
- Conversaciones independientes manteniendo contexto
Issue #23: Definición de herramientas básicas
- Al menos 2-3 herramientas básicas implementadas
- Documentación de cada herramienta
- Interfaz consistente para las herramientas
Issue #24: Incorporación de herramientas
- Herramientas integradas en el agente
- Agente selecciona herramienta apropiada según query
- Ejecución correcta de herramientas y procesamiento de resultados
Riesgos Identificados
Riesgos Técnicos
Riesgo | Probabilidad | Impacto | Mitigación |
---|---|---|---|
Limitaciones de hardware impiden despliegue del modelo | Alta | Alto | Explorar SLMs, considerar inferencia híbrida (API + local) |
Modelo no soporta function calling adecuadamente | Media | Alto | Investigar modelos alternativos con fine-tuning específico |
Complejidad de implementación de memoria excede estimación | Media | Medio | Usar frameworks probados (LangGraph), simplificar alcance inicial |
Problemas de integración entre vLLM y backend | Baja | Medio | Testing temprano de integración, documentación de APIs |
Riesgos de Proceso
Riesgo | Probabilidad | Impacto | Mitigación |
---|---|---|---|
Subestimación del tiempo requerido | Media | Medio | Priorizar funcionalidad core, dejar features secundarias para sprints posteriores |
Cambios en requisitos durante el sprint | Baja | Bajo | Mantener foco en objetivo del sprint, postponer cambios no críticos |
Definición de “Hecho” (Definition of Done)
Una funcionalidad se considera “Hecha” cuando:
- ✅ El código está escrito y commiteado
- ✅ Existen tests que validan la funcionalidad
- ✅ Los tests pasan exitosamente
- ✅ El código está integrado en la rama principal
- ✅ La documentación está actualizada (README, CHANGELOG, comentarios)
- ✅ La funcionalidad funciona en el entorno Docker
- ✅ No existen bugs críticos conocidos
Plan de Trabajo
Semana 1 (29 Sep - 5 Oct)
Días 1-2: Infraestructura base
- Setup de vLLM con Docker
- Selección y despliegue de modelo inicial
- Configuración básica de function calling
Días 3-4: Agente básico
- Implementación de GraphAgent
- Definición de estados
- Integración con modelo
Días 5-6: Sistema de herramientas
- Definir herramientas básicas
- Integrar herramientas en agente
- Tests de uso de herramientas
Semana 2 (6 Oct - 10 Oct)
Días 7-8: Memoria y ajustes
- Implementar memoria a corto plazo
- Ajustar modelo si es necesario (ej: cambio a Qwen)
- Tests de memoria conversacional
Días 9-10: API Backend
- Desarrollar API con FastAPI
- Implementar endpoints
- Tests de API
Días 11-12: Integración y documentación
- Dockerización completa
- Docker Compose final
- Documentación
- Release v0.1.0
Recursos Necesarios
Hardware
- Máquina con GPU (≥5 GB VRAM para desarrollo)
- Acceso a APIs alternativas para testing (opcional)
Software
- Docker/Podman
- Python 3.12+
- vLLM
- LangGraph
- FastAPI
- MongoDB (o similar para checkpointing)
Conocimiento
- Arquitecturas de agentes de IA
- LangGraph framework
- Function calling con LLMs
- Docker y microservicios
- Testing con pytest
Dependencias Externas
- vLLM: Framework de inferencia - crítico para el proyecto
- LangGraph: Framework de agentes - crítico para implementación
- Modelo LLM: Disponibilidad de modelo adecuado (instruct + function calling)
- Hardware: Acceso a GPU con VRAM suficiente
Ceremonias del Sprint
Daily Scrum
- Frecuencia: Diario
- Formato: Documentado en markdown
- Contenido:
- ¿Qué hice ayer?
- ¿Qué haré hoy?
- ¿Qué obstáculos encontré?
- Links de interés / aprendizajes
Sprint Review
- Fecha: 11 de octubre de 2025 (día posterior al cierre)
- Objetivo: Demostrar el incremento completado
- Entregables:
- Sistema funcional end-to-end
- Documentación del sprint
- CHANGELOG actualizado
- Release v0.1.0
Sprint Retrospective
- Integrada en Sprint Review
- Temas a cubrir:
- Qué funcionó bien
- Qué se puede mejorar
- Obstáculos encontrados y soluciones
- Aprendizajes técnicos
Métricas de Éxito
Métricas Cuantitativas
- Velocity: 6 issues completados
- Cobertura de tests: >70% del código crítico
- Issues bloqueados: 0
- Bugs críticos: 0 al final del sprint
Métricas Cualitativas
- Sistema desplegable con un solo comando
- Agente capaz de mantener conversaciones coherentes
- Documentación clara y actualizada
- Código modular y mantenible
Notas Adicionales
Consideraciones Técnicas
- Priorizar simplicidad sobre complejidad en esta primera iteración
- El objetivo es un PMV funcional, no un sistema completo
- La arquitectura debe ser extensible para futuros sprints
- Mantener bajo acoplamiento entre componentes
Gestión del Proyecto
- Usar GitHub Projects para tracking visual
- Daily scrums documentados para seguimiento
- Issues bien definidos con criterios de aceptación claros
- Commits descriptivos y referenciando issues
Compromisos del Equipo
Como equipo de desarrollo, nos comprometemos a:
- Entregar un chatbot básico ReAct funcional al final del sprint
- Mantener comunicación clara mediante daily scrums documentados
- Priorizar calidad sobre cantidad de features
- Mantener tests actualizados con cada cambio
- Documentar decisiones técnicas importantes
- Solicitar ayuda/investigar cuando aparezcan blockers
Elaborado por: Gabriel Francisco
Fecha: 29 de septiembre de 2025
Última actualización: 29 de septiembre de 2025
Estado: ✅ Aprobado