Prompt Engineering Avanzado: Chain-of-Thought, ReAct y Tree-of-Thoughts
Descubre cómo los patrones Chain-of-Thought, ReAct y Tree-of-Thoughts llevan el prompt engineering al siguiente nivel, mejorando el razonamiento y la capacidad de resolución de problemas de los LLMs.
Prompt Engineering Avanzado: Chain-of-Thought, ReAct y Tree-of-Thoughts
¿Tu empresa está lista para IA? Descargá nuestro checklist gratuito →
Descargar checklistIntroducción
El prompt engineering ha evolucionado más allá de simples instrucciones. Técnicas avanzadas como Chain-of-Thought (CoT), ReAct y Tree-of-Thoughts (ToT) permiten a los modelos de lenguaje (LLMs) razonar paso a paso, interactuar con herramientas externas y explorar múltiples caminos de pensamiento. En este artículo, exploraremos cada técnica con ejemplos prácticos en Python.
Chain-of-Thought (CoT)
Chain-of-Thought consiste en pedir al modelo que razone paso a paso antes de dar la respuesta final. Esto mejora resultados en problemas aritméticos, lógicos y de sentido común.
Ejemplo: Problema aritmético
import openai
prompt = """
Resuelve el siguiente problema paso a paso:
Un granjero tiene 12 manzanas. Le da 3 manzanas a su vecino y luego compra 5 más. ¿Cuántas manzanas tiene ahora?
Paso a paso:
1. El granjero empieza con 12 manzanas.
2. Da 3 manzanas -> 12 - 3 = 9.
3. Compra 5 manzanas -> 9 + 5 = 14.
4. Resultado: 14 manzanas.
Ahora resuelve:
Un estudiante tiene 15 lápices. Pierde 2 y luego encuentra 7. ¿Cuántos lápices tiene?
"""
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}]
)
print(response.choices[0].message.content)
Variantes
- Zero-shot CoT: simplemente añadir "Pensemos paso a paso" al prompt.
- Few-shot CoT: proporcionar ejemplos de razonamiento paso a paso.
ReAct (Reasoning + Acting)
ReAct combina el razonamiento con la capacidad de actuar, permitiendo al modelo consultar fuentes externas (como APIs o bases de conocimiento) para responder preguntas complejas.
¿Querés un diagnóstico personalizado? Completá el checklist gratuito →
Descargar checklistEjemplo: Búsqueda en Wikipedia
import openai
import requests
def search_wikipedia(query):
url = "https://es.wikipedia.org/w/api.php"
params = {
"action": "query",
"list": "search",
"srsearch": query,
"format": "json"
}
response = requests.get(url, params=params)
data = response.json()
if data["query"]["search"]:
return data["query"]["search"][0]["snippet"]
return "No encontrado."
prompt = """
Pregunta: ¿Cuál es la capital de Francia y cuál es su población?
Razonamiento: Debo buscar la capital de Francia y su población.
Acción: Buscar en Wikipedia: "capital de Francia"
Observación: París es la capital de Francia.
Razonamiento: Ahora necesito la población de París.
Acción: Buscar en Wikipedia: "población de París"
Observación: La población de París es de aproximadamente 2.1 millones.
Respuesta: La capital de Francia es París, con una población aproximada de 2.1 millones.
"""
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}]
)
print(response.choices[0].message.content)
En la práctica, se implementa un bucle que permite al modelo elegir acciones, ejecutarlas, y continuar razonando con la nueva información.
Tree-of-Thoughts (ToT)
ToT extiende CoT explorando múltiples ramas de razonamiento en un árbol, evaluando cada paso y permitiendo backtracking. Es ideal para problemas de planificación y creatividad.
Implementación conceptual
import openai
from typing import List, Dict
# Define funciones para generar y evaluar pensamientos
def generar_pensamientos(estado_actual: str, prompt_base: str) -> List[str]:
prompt = f"{prompt_base}\nEstado actual: {estado_actual}\nGenera 3 posibles siguientes pasos:"
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}
)
# Parsear la respuesta en una lista de pensamientos
pensamientos = response.choices[0].message.content.split('\n')
return [p for p in pensamientos if p]
def evaluar_pensamiento(pensamiento: str) -> float:
prompt = f"Evalúa la calidad del siguiente paso en una escala del 1 al 10: {pensamiento}"
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}
)
score = float(response.choices[0].message.content.strip())
return score
# Búsqueda en árbol con poda
estado_inicial = "Inicio"
mejor_camino = []
niveles = 3
for nivel in range(niveles):
pensamientos = generar_pensamientos(estado_inicial, prompt)
puntuaciones = [evaluar_pensamiento(p) for p in pensamientos]
# Seleccionar el mejor pensamiento
mejor = max(zip(pensamientos, puntuaciones), key=lambda x: x[1])
mejor_camino.append(mejor[0])
estado_inicial = mejor[0]
print("Mejor camino:", mejor_camino)
Comparación y cuándo usar cada técnica
| Técnica | Uso principal | Complejidad |
|---|---|---|
| CoT | Problemas de razonamiento lineal | Baja |
| ReAct | Tareas que requieren información externa | Media |
| ToT | Problemas complejos con múltiples caminos | Alta |
Conclusión
Chain-of-Thought, ReAct y Tree-of-Thoughts son herramientas poderosas para mejorar las capacidades de los LLMs. CoT es sencillo y efectivo para razonamiento paso a paso. ReAct permite interacción con el mundo exterior, y ToT explora múltiples posibilidades. La elección depende del problema y los recursos disponibles.
Recursos adicionales
- Chain-of-Thought Prompting Elicits Reasoning in Large Language Models
- ReAct: Synergizing Reasoning and Acting in Language Models
¡Experimenta con estas técnicas y lleva tus aplicaciones de IA al siguiente nivel!
¿Listo para dar el próximo paso? Evaluá tu empresa con nuestro checklist gratuito →
Descargar checklistPublicaciones relacionadas
- Testing✓
Tendencias de ML en 2026: IA Agentica, MLOps y Más
Tendencias de ML en 2026: IA Agentica, MLOps y Más
24 jul 2026
- Frontend▤
El 84% de los Desarrolladores Usa AI, Pero la Productividad Solo Crece un 10%: ¿Qué Está Fallando?
El 84% de los Desarrolladores Usa AI, Pero la Productividad Solo Crece un 10%: ¿Qué Está Fallando?
24 jul 2026
- Data≈
Edge AI y Gemelos Digitales: Las Tendencias que Marcarán 2026
Edge AI y Gemelos Digitales: Las Tendencias que Marcarán 2026
23 jul 2026