Cómo revisar un porcentaje que te dio un agente de IA
Cuatro revisiones de dos minutos para saber si el porcentaje de tu agente cuenta lo que pediste: qué es una fila, el numerador, el denominador y los vacíos.
En esta guía
Le pediste a tu agente un porcentaje y te lo dio, con código que corrió sin errores. Eso dice que el código funciona, no que cuente lo que pediste. Estas cuatro revisiones te dicen pronto si algo está mal y te dejan por escrito qué decidió el agente.
Supuestos: tienes el código o el registro de lo que corrió el agente, y puedes correr Python con pandas, o pedirle al agente que corra lo que tú le indiques.
El caso
Tienes un archivo de pedidos y preguntas: "¿Qué porcentaje de nuestros clientes compró más de una vez en septiembre?". El agente responde 62.5%.
import io
import pandas as pd
pedidos = pd.read_csv(io.StringIO("""pedido,cliente,fecha,total
1001,ana,2026-09-02,350
1002,beto,2026-09-03,120
1003,ana,2026-09-10,90
1004,carla,2026-09-11,410
1005,dani,2026-09-12,75
1006,ana,2026-09-20,60
1007,beto,2026-09-25,200
1008,elena,2026-09-28,
"""))1. ¿Qué es una fila?
Antes de mirar el porcentaje, di qué representa una fila: su granularidad. Imprime tres conteos:
print(len(pedidos), "filas")
print(pedidos["pedido"].nunique(), "pedidos distintos")
print(pedidos["cliente"].nunique(), "clientes distintos")8 filas8 pedidos distintos5 clientes distintosUna fila es un pedido, no un cliente. Tu pregunta habla de clientes, así que el denominador tiene que ser 5, no 8.
2. ¿Qué se contó arriba de la división?
Busca en el código del agente qué cuenta el numerador. Un patrón frecuente es marcar cada fila cuyo cliente aparece más de una vez:
veces = pedidos["cliente"].map(pedidos["cliente"].value_counts())
print(f"{(veces >= 2).mean():.1%}")62.5%Ese 62.5% es "la proporción de pedidos hechos por clientes que repiten" (5 de 8). Es un número válido, pero responde otra pregunta.
3. ¿Entre qué se dividió?
Calcula lo que preguntaste, a nivel cliente:
por_cliente = pedidos.groupby("cliente")["pedido"].nunique()
recurrentes = (por_cliente >= 2).sum()
total = len(por_cliente)
print(f"{recurrentes} de {total} clientes = {recurrentes / total:.1%}")2 de 5 clientes = 40.0%Pide siempre el porcentaje junto con sus dos conteos ("2 de 5"). Un porcentaje sin denominador no se puede revisar.
4. ¿Qué pasó con los vacíos?
print(pedidos["total"].isna().sum(), "pedidos sin total")1 pedidos sin totalSi un total vacío significa "cancelado", ¿elena cuenta como cliente? Aquí no cambia el resultado, porque elena solo tiene un pedido, pero en otra tabla sí podría. La decisión es tuya, no del agente. Lo que sí le puedes exigir es que diga cuántos vacíos encontró y qué hizo con ellos.
Cómo saber que ya terminaste
Puedes escribir el resultado en una frase que otra persona puede comprobar: "40% (2 de 5) de los clientes con pedidos en septiembre hizo 2 o más pedidos; un pedido sin total se contó como pedido." Si no puedes escribir esa frase, falta una revisión.
Lo que estas revisiones no hacen
- No prueban que el número esté bien: detectan errores comunes pronto.
- No sustituyen saber qué significa "cliente recurrente" en tu equipo. Si hay una definición oficial, el agente necesita leerla: ponla en su archivo de instrucciones.
- No dependen de qué agente uses: aplican igual a un script que escribiste tú.
Fallas frecuentes
| Síntoma | Causa probable |
|---|---|
| El porcentaje es más alto que lo que esperabas | Se contaron filas (pedidos) en vez de entidades (clientes) |
| Los porcentajes de varias categorías suman menos de 100% en una pregunta de opción única | El denominador incluye filas que no aplican, o se dividió entre menciones |
| El resultado cambia al volver a pedirlo | El agente tomó otra decisión sin decirlo. Pídele que escriba sus supuestos antes de calcular |
Para practicarlo con datos reales
En IA agéntica para datos revisas lo que hace tu propio agente con una encuesta de miles de respuestas, y tu Maestro te acompaña mientras decides qué número firmas.