Nuestro despliegue mesh rural funciona con una ecuación simple: una terminal Starlink, un gateway Raspberry Pi y decenas de nodos LoRa solares repartidos en aproximadamente 120 km². Estudiantes en una zona sin cobertura celular envían preguntas en paquetes de baja velocidad por Meshtastic; los paquetes saltan por la mesh, llegan al gateway, se empaquetan en un mensaje de Telegram, los responde un LLM, y vuelven por el mismo camino.
El stack completo cuesta menos que el mantenimiento trimestral de una sola torre celular. Pero la elección del modelo — qué LLM vive detrás del gateway — importa más de lo que la gente cree. Corrimos Claude y GPT en paralelo durante 12 semanas. Esto es lo que observamos.
El setup
El sistema atiende a unos 200 estudiantes diarios entre 9 y 14 años, distribuidos en cuatro escuelas rurales. La parte de hardware no tiene secretos: dispositivos T1000 LoRa envían las consultas por repetidores solares Heltec P1-Pro, el gateway corre meshtasticd sobre una Raspberry Pi 5, y un servicio Python pequeño puentea los paquetes Meshtastic con un bot de Telegram. El bot llama al LLM y escribe la respuesta de vuelta a la mesh.
Veníamos corriendo Claude en producción desde hacía meses cuando decidimos formalizar la comparación. La hipótesis interna era: "GPT probablemente sea equivalente. Estamos pagando un premium por nada". El punto del experimento era refutar nuestra propia decisión productiva si podíamos.
Metodología
Durante 12 semanas ruteamos cada consulta entrante por dos caminos:
- Camino A — producción. Consulta → Claude API → respuesta que el estudiante veía.
- Camino B — sombra. La misma consulta → GPT API → respuesta escrita a una cola de evaluación, nunca entregada.
Tres docentes de las escuelas participantes (pagados por el tiempo) calificaron a ciegas una muestra estratificada de 600 respuestas pareadas. No sabían cuál era cuál. Balanceamos la muestra en cuatro dimensiones:
- Calidad pedagógica. ¿La respuesta andamia comprensión, o sólo larga el resultado?
- Manejo del vernáculo. ¿El modelo entiende cómo escriben de verdad estos pibes —
"guaca'","qué mas pue'", palabras que doblan el español castellano hacia algo que el modelo casi nunca vio — sin obligarlos a "escribir bien"? - Especificidad cultural. ¿Reconoce cultivos locales (yuca, plátano hartón, maíz amarillo), costumbres, geografía?
- Seguridad. Cualquier cosa inadecuada para alguien de 9 a 14 años, incluso sutil.
Latencia, costo y confiabilidad operativa los medimos por separado, automatizado, sobre el tráfico completo.
Lo que observamos
Números de portada
| Eje | Claude | GPT | Notas |
|---|---|---|---|
| Latencia p50 (gateway → LLM → gateway) | 1.9 s | 1.4 s | Gana GPT por ~500 ms. |
| Latencia p95 | 4.3 s | 5.1 s | Gana Claude en la cola. |
| Costo medio por consulta | ~$0.0021 | ~$0.0017 | GPT más barato ~20% en nuestra forma de prompt. |
| Calidad pedagógica (1–5, calificación ciega) | 4.3 | 3.6 | Gana Claude, n = 600. |
| Manejo del vernáculo (1–5) | 4.5 | 3.4 | Gana Claude por más margen del esperado. |
| Especificidad cultural (1–5) | 4.0 | 3.7 | Gana Claude, marginal. |
| Flags de seguridad de los graders | 2 / 600 | 11 / 600 | Casi todo es tono, no contenido. |
| Rechazos duros a consultas legítimas | 4 / 600 | 9 / 600 | Raro en ambos. |
Latencia: gana GPT, pero la cola cuenta otra historia
GPT fue consistentemente más rápido en el medio de la distribución. Para un estudiante esperando que un paquete vuelva por LoRa — donde la radio agrega 2 a 6 segundos — medio segundo del lado de la inferencia es real y se nota.
Pero los usuarios no experimentan la mediana; experimentan los días malos. En el 5% peor de las consultas Claude fue ~800 ms más rápido, y vimos muchas menos pausas de cinco segundos. Para una pibita entrecerrando los ojos sobre una pantalla e-ink de bajo consumo en un aula, un evento de cola duele bastante más que una mediana más rápida.
Costo: GPT más barato, pero construimos alrededor del cache
En llamadas sin cache GPT fue ~20% más barato para nuestra forma de prompt. Con el prompt caching de Claude prendido sobre el system prompt y los few-shots (que no cambian entre usuarios), nuestro costo amortizado por consulta colapsó alrededor de un 80%. Después de habilitar las escrituras de cache sobre el system prompt, Claude terminó siendo la opción más barata en producción. Nada de esto es una comparación justa — son detalles operativos de cada proveedor.
Calidad pedagógica: acá se abrió la diferencia
Los dos modelos pueden contestar la pregunta. La diferencia se ve en cómo. Codificamos a mano una muestra de 200 respuestas. Un ejemplo representativo, simplificado:
GPT
"La fotosíntesis es el proceso por el cual las plantas convierten luz solar en energía química usando clorofila. La fórmula general es 6CO₂ + 6H₂O + luz → C₆H₁₂O₆ + 6O₂."
Claude
"Buena pregunta. Mirá la planta de yuca de tu casa: cuando hay sol, está fabricando comida. La hoja chupa luz, agarra agua de la raíz, y respira un gas que está en el aire. Mezcla todo eso y le sale azúcar — que es lo que la planta usa para crecer. Si querés ver la fórmula que usan los químicos, te la muestro: ¿la querés o seguimos con yuca?"
La respuesta de GPT es correcta. La de Claude es enseñable. Para una nena que nunca pudo preguntarle algo a un docente afuera de su ventana de dos horas de caminata a la escuela, la segunda es la que queremos.
Esto no es Claude siendo mágicamente más inteligente. Es una disciplina de system prompt y tono que Claude sigue más confiablemente a través de miles de casos borde. GPT seguía las mismas instrucciones en los casos obvios y dribleaba en los más difíciles — consultas largas, off-topic, con ruido gramatical. Claude mantuvo la línea.
Español vernáculo: la diferencia inesperada
Esperábamos que esto fuera más o menos parejo. No lo fue. Tomá una consulta como:
"profe yo no entiendo nada de esa vaina del aparato, qué mas pue'?"
GPT, en 11 de 30 respuestas muestreadas, le corregía suavemente al estudiante o se pasaba a español castellano estándar antes de contestar. Claude casi siempre (28/30) respondió en el mismo registro, atendiendo a la persona antes que al asunto académico. Esto importa más de lo que parece: los estudiantes rurales que sienten que los corrigen antes de escucharlos dejan de preguntar. Construimos este sistema entero para bajar esa energía de activación. Un modelo que la sube está desalineado con el objetivo, sin importar lo que sepa.
Especificidad cultural: ventaja marginal de Claude, no decisiva
Los dos modelos sabían qué es la yuca. Los dos batallaron a veces con referencias muy locales — una variedad particular de plátano hartón, una fiesta regional que ninguno de los dos conocía. Claude tendía un poco más a hacer una pregunta clarificadora en lugar de confabular. En los casos fáciles fueron comparables.
La integración
El puente Telegram → LLM es el corazón del sistema. Toda la cosa son ~80 líneas de Python; la parte que importa, simplificada, es esta:
import anthropic
import os
client = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
SYSTEM_PROMPT = open("system_prompt_es.md").read() # ~700 tokens de guía pedagógica
def answer_student(query: str, student_grade: int) -> str:
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=200,
system=[
{
"type": "text",
"text": SYSTEM_PROMPT,
"cache_control": {"type": "ephemeral"}, # cachea el system prompt
}
],
messages=[
{
"role": "user",
"content": f"[grado {student_grade}] {query}",
}
],
)
return response.content[0].textEl sistema productivo entero entra en un solo archivo Python porque ninguna de las piezas tuvo que ser sobrecargada. Claude se ocupa del lenguaje, Telegram del mensajeo, Meshtastic de la radio, la Pi del puente.
Caveats
Algunas cosas que este post no es:
- No es un benchmark. N = 600 respuestas pareadas calificadas por tres humanos es muy chico para publicar como tal.
- No es un reclamo de que Claude sea universalmente mejor. Para tareas de código, problemas matemáticos y razonamiento bajo instrucciones en inglés, nuestras evaluaciones internas dividen muy distinto. Este caso era pedagógico, vernacular, español de bajo ancho de banda.
- Los números de costo están fuertemente acoplados a nuestra forma de prompt y estrategia de cache. Los tuyos van a diferir.
Lo que enviamos a producción
Después de las 12 semanas dejamos a Claude en producción, con el cache de system prompt prendido y el mismo puente de Telegram que describimos arriba. Retiramos el Camino B. Las notas de los graders, prompts anonimizados y distribuciones por eje están disponibles bajo pedido para otros equipos que estén corriendo despliegues rurales comparables.
La lección más profunda — una que seguimos reaprendiendo en el lab — es que en entornos de bajo recurso el comportamiento del modelo bajo estrés importa más que su capacidad pico. Latencia de cola le gana a latencia mediana. Disciplina de tono le gana a margen de razonamiento. El modelo que no rompe el contrato social con el usuario — que no le corrige a una nena antes de escucharla — es el modelo que compone.
Ya estamos corriendo comparaciones similares del lado agronómico de la plataforma, donde el usuario es un pequeño productor de 50 años preguntando por infestaciones de nematodos en yuca. Los trade-offs caen distinto ahí. Eso lo escribimos también.
Si estás construyendo algo en este espacio y querés comparar notas — metodología, estructura de prompts, costos de hardware — escribinos. Somos más fáciles de alcanzar de lo que pensás.