Chain-of-Thought (CoT) Prompting
Introducción
Chain-of-Thought (CoT) prompting es una técnica de ingeniería de prompts que mejora las capacidades de razonamiento de los LLMs al instruirlos para que “piensen paso a paso” antes de proporcionar una respuesta final.
Esta investigación se realiza en el contexto del Sprint 6 para implementar la HU #15: Prompts de Razonamiento.
Mejores Prácticas
1. Separación de Razonamiento y Respuesta
El principio fundamental es separar el proceso de pensamiento de la respuesta final:
- El modelo documenta su razonamiento de forma explícita
- Solo después proporciona la respuesta final
- Esto permite transparencia y debugging
2. Formato JSON Estructurado
Para aplicaciones en producción, se recomienda usar un esquema JSON con campos separados:
{
"thinking": "Pasos del razonamiento interno...",
"answer": "Respuesta final para el usuario"
}
Beneficios:
- ✅ Permite parsing automático en pipelines
- ✅ Facilita debugging y monitoreo del modelo
- ✅ Previene alucinaciones al hacer el razonamiento explícito
- ✅ Permite mostrar/ocultar el razonamiento según contexto
Técnicas de CoT
| Técnica | Descripción | Caso de Uso |
|---|---|---|
| Explicit CoT | El razonamiento se muestra al usuario | Educación, transparencia |
| Hidden CoT | Razonamiento interno, solo muestra respuesta | Producción, UX limpia |
| Structured CoT | JSON schema forzado | APIs, pipelines automatizados |
| Zero-shot CoT | Añadir “Let’s think step by step” | Prototipado rápido |
| Few-shot CoT | Ejemplos de razonamiento | Tareas específicas |
Aplicación en Chatbot Pedagógico
Para un agente educativo, el CoT explícito es especialmente valioso:
- Modelado de pensamiento: Muestra al estudiante cómo razonar sobre un problema
- Transparencia: Permite validar el proceso de razonamiento
- Valor pedagógico: El “cómo” es tan importante como el “qué”
- Debugging docente: Los profesores pueden revisar la lógica del agente
Estructura Propuesta para el Chatbot
{
"thinking": {
"steps": [
"1. Analizo la pregunta del estudiante...",
"2. Identifico conceptos relevantes...",
"3. Busco información en la base de conocimiento...",
"4. Formulo una respuesta adaptada al nivel..."
],
"confidence": 0.85,
"sources_used": ["documento1.pdf", "documento2.pdf"]
},
"answer": {
"content": "Respuesta formateada para el estudiante",
"difficulty_level": "intermediate",
"follow_up_suggestions": ["¿Quieres que profundicemos en...?"]
}
}
Trade-offs a Considerar
Latencia vs Detalle
- Más razonamiento = respuestas más precisas pero más lentas
- Considerar modo “fast” vs “detailed” según contexto
Visibilidad del Razonamiento
- Mostrar siempre: Máxima transparencia, puede ser verbose
- Mostrar bajo demanda: UX más limpia, opción “ver razonamiento”
- Ocultar: Solo para logs/debugging
Referencias
- OpenAI Developer Forum: Chain-of-Thought Prompting with JSON Output
- Prompt Engineering Guide: Structured CoT Techniques
- LangChain Documentation: Reasoning with Structured Outputs
Próximos Pasos
- Diseñar prompt específico para el chatbot
- Definir JSON schema final
- Integrar en grafo LangGraph
- Crear ADR documentando la decisión
Última actualización: 30 de enero de 2026