Escritos e Ideas
Reflexiones sobre ingeniería de IA, sistemas LLM y cómo construir software que escala.

Construir un servidor MCP en Python
La mayoría de los tutoriales de MCP te muestran un tool de “hello world” — una función, dos argumentos, un print — y se detienen justo …

Agentes Human-in-the-Loop con LangGraph
La promesa de los agentes autónomos siempre es “maneja toda la tarea de principio a fin.” La realidad al desplegar uno es que casi nadie …

LangChain vs LangGraph: Cuándo Realmente Necesitas un Grafo
Pregúntale a un equipo por qué migraron de LangChain a LangGraph y generalmente obtendrás un encogimiento de hombros y “el agente seguía …

RAG Multi-Tenant: Filtrado de Metadatos Sin Filtrar Datos
Un sistema RAG multi-tenant tiene un modo de fallo que los sistemas single-tenant no tienen: puede producir una respuesta que es fluida, bien citada y …

Por Qué Tu RAG Recupera los Chunks Equivocados
“El modelo está alucinando” es el diagnóstico por defecto cuando un sistema RAG da una respuesta incorrecta, y generalmente es el …

Evaluando un Pipeline RAG: Recall@k, MRR, Faithfulness
La mayoría de los equipos “evalúan” su pipeline RAG haciéndole un puñado de preguntas, leyendo las respuestas y decidiendo si se siente …

Reranking en RAG: Cuándo Vale la Latencia
“Agrega un reranker” se ha convertido en la respuesta predeterminada a “nuestras respuestas de RAG no son buenas”, más o menos …

Búsqueda Híbrida: Combinando BM25 y Vectores en Postgres
La promesa de la búsqueda vectorial es que entiende el significado, no solo las palabras clave — pregunta por “cancelar una suscripción” y …

Jev de TypeSafe: Decisiones de IA Tipadas para Backends
La mayoría de las llamadas a LLM en un backend de producción no piden prosa. Piden una decisión: a qué cola va este ticket, si hay que escalarlo, si …

Estrategias de Chunking para RAG con Documentos Reales
La mayoría de los post-mortems de RAG empiezan en el lugar equivocado. Alguien cambia el modelo de embeddings, añade un reranker, ajusta el prompt, y …

Celery + Redis: Trampas de las que Nadie te Avisa
Redis es el broker por defecto para la mayoría de los proyectos nuevos de Celery, y por buenas razones — ya está en el stack para caching, es rápido, …

Reintentos, Backoff y Dead-Letter Queues en Celery
El comportamiento de reintento por defecto con el que la mayoría de los equipos despliegan Celery es max_retries=3 y nada más — sin backoff, sin …