Bitácora abierta · Agentes de IA · Ventas B2B

De 5 horas a 13 segundos: lo que aprendimos al darle un worker autónomo a nuestra agente de prospección, y por qué eso exige respeto

Durante años, prospectar una cuenta me tomaba una tarde. El 12 de octubre de 2026 vi a un proceso hacer el ciclo completo de preparación en trece segundos, con un gasto de dos centavos y medio de dólar, y detenerse solo antes del único paso que importa: enviar. Esto es lo que medimos, lo que construimos para que esa velocidad fuera tolerable y lo que pienso después de verlo.

Respuesta breve. Transgenia conectó a su agente de prospección, Aitana, con un worker local que corre con la Messages API de Claude y con un conector MCP acotado hacia el ERP. En dos ciclos reales, el worker leyó la base, decidió, creó un borrador vacío de correo masivo, lo releyó y liquidó su gasto: 13 y 15 segundos por ciclo, USD 0.045 en total, cero correos enviados. El mes anterior, el mismo canal comercial llevaba 48 días sin un solo envío porque cada paso dependía de una persona. La velocidad no es la noticia. La noticia es que fue tolerable solo porque el envío no está al alcance del agente, el presupuesto se reserva antes de pensar y cada afirmación tiene una lectura de vuelta. A eso le llamamos respeto a la inteligencia artificial.
Diagrama 1. El proceso manual de prospección en siete pasos, de elegir la cuenta a planificar los siguientes toques, con una estimación de minutos por paso que suma entre tres y cinco horas.
Ver diagrama Mermaid
flowchart LR
    A["1. Elegir la cuenta
20 a 30 min"] --> B["2. Buscar correos
y al decisor
30 a 60 min"] B --> C["3. Llamada previa
15 a 30 min"] C --> D["4. Redactar el correo
30 a 45 min"] D --> E["5. Curar y depurar
20 a 30 min"] E --> F["6. Enviar y registrar
10 min"] F --> G["7. Planificar
los siguientes toques
20 a 30 min"] G --> T(["Total estimado:
3 a 5 horas por prospecto"])
Diagrama 1. La tarde de prospección tal como la vivía el autor antes del piloto. Los minutos son una estimación personal, no telemetría; el total de tres a cinco horas por prospecto es la cifra que sirve de línea base en este artículo.

La tarde de cinco horas: cómo prospectaba una persona

Llevo la mayor parte de las ventas de Transgenia. Antes del piloto, prospectar una cuenta nueva era una tarde completa. Elegir la empresa y entender a qué se dedica. Buscar los correos y al decisor, que casi nunca está publicado. Hacer una llamada previa para confirmar que la persona existe y que el tema le incumbe. Redactar el correo. Curarlo: quitar adjetivos, verificar cada cifra, poner la firma correcta y los dos adjuntos que exige nuestra política. Enviarlo y registrarlo. Y planificar los siguientes toques, porque un correo sin seguimiento es un correo tirado.

A ojo de buen cubero, entre tres y cinco horas por prospecto. Lo digo con esa expresión a propósito: es una estimación personal, no telemetría, y así la tratamos en el resto del texto. Nadie midió esas tardes con un cronómetro. Lo que sí medimos, y con detalle, fue lo que vino después.

El problema de ese proceso no era su calidad. Era que solo ocurría cuando yo tenía la tarde libre.

Lo que decía nuestra telemetría en septiembre

Tenemos un agente de prospección desde mediados de 2026. Se llama Valentina en el código y Aitana en la firma comercial. Ya contamos en este blog cómo diseñamos su motion de demo y sus reglas duras. Lo que no habíamos contado es lo que pasó cuando la operación dependía de que una persona iniciara cada paso.

Nuestra bitácora semanal de revisión, que un agente de gestión escribe cada sábado a partir de los registros del sistema, marcó el canal comercial en rojo en las semanas 35 y 36. Los datos son nuestros y los citamos tal como quedaron escritos:

Diagrama 2. Línea de tiempo del canal comercial entre julio y septiembre de 2026: última ola el 21 de julio, barrido de 92 leads el 14 de agosto sin activar, revisiones semanales en rojo el 29 de agosto y el 7 de septiembre, y el resumen sabatino sin correr diez semanas.
Ver diagrama Mermaid
timeline
    title Canal comercial, julio a septiembre de 2026
    21 de julio : Última ola de correos enviada
    14 de agosto : Barrido curado de 92 leads : queda sin activar
    29 de agosto : Revisión semanal en rojo : 38 días sin envíos
    7 de septiembre : Revisión semanal en rojo : 48 días sin envíos : resumen sabatino ausente 10 semanas
    11 de septiembre : Scoreboard de la meta H2 : 0 % de avance
Diagrama 2. Lo que decía nuestra propia bitácora semanal antes del piloto. El agente existía y las plantillas estaban listas; lo que faltaba era que alguien iniciara cada paso. El silencio saliente llegó a 48 días.

Ese era el estado del arte de nuestra propia operación. Las plantillas existían. El emisor con supresión y tope diario existía. Las listas existían. El agente existía. Lo que no existía era un proceso que arrancara, hiciera su trabajo y se detuviera sin que alguien lo acompañara de principio a fin. Y como ese alguien era yo, y yo estaba vendiendo, el canal se quedó quieto.

Conviene decirlo sin adornos: un agente que necesita una persona para cada paso no es un agente. Es un formulario con buena redacción.

Por qué no bastaba con "encender" al agente

La reacción natural a ese diagnóstico es darle al agente permiso para actuar solo. Nos negamos, y la razón está en la historia técnica del runtime.

Valentina pasó por siete versiones antes de tocar un buzón real. La primera decisión fue de plataforma: una implementación propia sobre la Messages API, porque en la validación de aquel momento los agentes gestionados no estaban disponibles para nuestra organización. Después vino un runner que solo producía borradores con datos sintéticos. Luego un ledger con idempotencia por identificador de mensaje y un límite global de cinco intentos por persona. Luego el manejo de deferencias del proveedor de correo y la conciliación terminal. Luego el cierre fail-closed: cualquier código ambiguo se trata como fallo y no se reintenta. Luego un ledger durable en SQLite que sobrevive a reinicios y a dos procesos concurrentes. Y al final, la lectura de salud de un buzón IMAP, primero probada sin red con 219 pruebas automáticas y después ejecutada una sola vez en vivo.

Diagrama 3. Mapa de evolución del runtime de Valentina: decisión de plataforma, modo solo borradores, ledger e intentos, deferencias, cierre fail-closed, ledger durable, preparación de salud de buzón y salud real verificada el 12 de octubre.
Ver diagrama Mermaid
flowchart LR
    V0["v0.0
Decisión de plataforma"] --> V1["v1.0
Solo borradores,
datos sintéticos"] V1 --> V11["v1.1 y v1.2
Ledger e intentos
máximo cinco"] V11 --> V13["v1.3
Deferencias y
conciliación"] V13 --> V14["v1.4
Cierre fail-closed"] V14 --> V2["v2.0
Ledger durable local"] V2 --> V3["v3.0-preflight
Salud de buzón
probada sin red"] V3 -->|"VoBo y lectura real
12 de octubre de 2026"| N["v3.0-health
Salud real verificada"] N -.->|"evolución operativa,
no un release"| P["Piloto operativo
con worker local"]
Diagrama 3. Siete versiones antes de un solo correo. Cada paso se cerró con pruebas sin red; la única lectura real del buzón se hizo en modo de solo lectura y quedó registrada con su hash.

Esa única lectura en vivo, el 12 de octubre a las 00:13 hora de la Ciudad de México, se hizo sobre TLS 1.3 con certificado verificado, abrió la carpeta con el comando EXAMINE, que en el protocolo IMAP equivale a modo de solo lectura, y cerró sesión. Cuatro comandos registrados, cero mutaciones, evidencia guardada con su hash. No leyó un solo mensaje.

Cuento todo esto porque explica el estándar que después le exigimos al worker. Si para mirar un buzón sin tocarlo pedimos 219 pruebas y una autorización con frase exacta, para escribir en el ERP no íbamos a pedir menos.

La decisión de plataforma: un proceso local y finito

El 10 de octubre revalidamos la arquitectura contra la documentación vigente de Anthropic. La conclusión fue menos ideológica de lo que parece.

Los agentes gestionados de Claude, los que corren en la nube y tienen sesiones persistentes, conectan sus herramientas a través de servidores MCP con URL remota y autenticación por sesión mediante un almacén de credenciales. Es un diseño correcto para infraestructura publicada. Nuestras herramientas no están publicadas: el conector hacia el ERP corre en un contenedor dentro de una computadora de escritorio, sin puertos expuestos. Una conexión remota a localhost no existe. Antes de tener un gate remoto, persistente y autenticado, esa ruta no era un camino.

Las extensiones de escritorio, por su parte, son una buena superficie para que una persona trabaje con el agente, pero no son un puente de sincronización, y no les íbamos a entregar credenciales de envío.

Diagrama 4. Comparación de dos rutas: agentes gestionados en la nube, que requieren conexiones MCP con URL remota y autenticación por sesión y por eso no alcanzan servicios locales, frente a un worker local que usa la Messages API y el servidor MCP de la propia máquina.
Ver diagrama Mermaid
flowchart TB
    subgraph MA["Ruta A: agente gestionado en la nube"]
        A1["Conexiones MCP
con URL remota"] --> A2["Autenticación
por sesión"] A2 --> A3["Nuestro MCP vive
en una PC: localhost"] A3 --> A4(["Sin ruta de conexión
hasta tener un gate remoto"]) end subgraph LW["Ruta B: worker local y finito"] B1["Proceso Node
en la misma PC"] --> B2["Messages API
modelo fijo"] B2 --> B3["Servidor MCP local
en contenedor"] B3 --> B4(["Informe en disco
y cese del proceso"]) end D{"¿Dónde viven
las herramientas?"} -->|"en la nube"| MA D -->|"en la PC"| LW
Diagrama 4. Por qué elegimos un proceso local y finito en vez de un agente gestionado. No fue una objeción al producto: fue que nuestros servicios viven en una computadora, y una conexión remota a localhost no existe.

Elegimos lo aburrido: un proceso Node local, sin dependencias nuevas, que arranca cuando una persona hace clic, llama a la Messages API con un modelo fijo, usa el conector MCP local y termina. No es un servicio permanente. No se instala como tarea programada. No abre puertos. Si la computadora está apagada, no pasa nada, y eso también está documentado como límite.

Un ciclo que termina solo

El contrato del ciclo se escribió antes que el código, y lo dibujamos antes de implementarlo. Una persona inicia. El worker verifica identidad del ERP, fuente de credenciales autorizada y presupuesto. Revisa scoring, historial de toques, bajas y respuestas. Si falta evidencia o no hay audiencia elegible, termina en HOLD con un informe, y HOLD no se reintenta solo. Si hay audiencia, congela un lote inmutable y espera un VoBo humano, sin bucle de espera: el proceso simplemente termina y deja el lote listo. El envío, cuando ocurra, sale exclusivamente por el módulo de correo masivo del ERP, nunca por un SMTP del agente.

Diagrama 5. Ciclo operativo del agente: preflight, revisión de elegibilidad, HOLD con informe si falta evidencia, lote inmutable, espera de VoBo sin bucle, revalidación y despacho exclusivamente por el canal de correo del ERP, con conciliación de trazas al final.
Ver diagrama Mermaid
flowchart TD
    START["PAUSADO
sin ciclo activo"] --> RUN["Una persona inicia el ciclo"] RUN --> PREF["Preflight: identidad del ERP,
fuente autorizada y presupuesto"] PREF --> CHECK["Revisar scoring, historial de toques,
bajas y respuestas"] CHECK --> OK{"¿Evidencia completa
y audiencia elegible?"} OK -- No --> HOLD["HOLD con informe
no se reintenta solo"] HOLD -->|"solo con nueva instrucción"| RUN OK -- Sí --> LOT["Lote inmutable
IDs, texto, firma y ventana"] LOT --> WAIT["ESPERANDO VoBo
sin bucle de espera"] WAIT --> AP["VoBo explícito
para ese lote y esa revisión"] AP --> RECHECK["Revalidar supresiones,
cupo e idempotencia"] RECHECK -->|"dato incierto"| HOLD RECHECK -->|"controles completos"| MAIL["Despacho solo por
el correo masivo del ERP"] MAIL --> REPORT["Conciliar trazas e informar
en cola no es entregado"] REPORT --> START
Diagrama 5. El contrato del ciclo. La única transición que lleva a un envío pasa por un VoBo humano explícito y por una revalidación posterior. Todo lo demás termina en HOLD con informe, y HOLD no se reintenta solo.

El 12 de octubre corrimos dos ciclos reales y un tercero vacío.

El primero fue de solo lectura: dos inferencias, dos llamadas de conteo al ERP, un informe en disco y cese del proceso. Entre la reserva del presupuesto y su liquidación pasaron 15 segundos. Gasto calculado: USD 0.018.

El segundo fue el que importa. Con autorización explícita para una sola escritura, el worker creó una plantilla de correo masivo sin destinatarios, con un asunto que dice en mayúsculas que no debe enviarse, la releyó, contó los correos y las trazas asociadas, y encontró cero y cero. Dos inferencias, una escritura, 13 segundos entre reserva y liquidación. Gasto calculado: USD 0.026.

Diagrama 6. Secuencia del segundo ciclo real del worker: reserva de presupuesto, primera inferencia, llamada a la herramienta que crea el borrador, segunda inferencia, lectura independiente del borrador y liquidación del gasto, con trece segundos entre la reserva y la liquidación.
Ver diagrama Mermaid
sequenceDiagram
    autonumber
    participant W as Worker local
    participant L as Ledger de presupuesto
    participant API as Messages API
    participant MCP as MCP del ERP
    W->>L: reservar USD 5 (t = 0 s)
    W->>API: inferencia 1 (3,763 tokens de entrada)
    API-->>W: decisión: crear plantilla sin destinatarios
    W->>MCP: crear borrador propio (una operación, sin reintentos)
    MCP-->>W: borrador en estado draft, 0 destinatarios
    W->>API: inferencia 2 (4,403 tokens de entrada)
    API-->>W: informe redactado
    W->>MCP: releer borrador, contar correos y trazas
    MCP-->>W: 0 correos, 0 trazas
    W->>L: liquidar USD 0.026 (t = 13 s)
    W->>W: escribir informe y terminar
Diagrama 6. Los trece segundos, reconstruidos desde el ledger de presupuesto y el registro de uso por solicitud. Dos inferencias, una escritura, cero destinatarios y un gasto calculado de USD 0.026.

El tercer arranque fue el que más me tranquilizó. Lo lanzamos como ciclo diario: el worker buscó candidatos nuevos después de aplicar supresiones, historial de cinco toques y exclusiones del lote anterior, no encontró ninguno, y terminó sin hacer una sola inferencia, sin crear plantillas y con gasto cero. Un segundo clic el mismo día devolvió el resultado anterior con la bandera de repetición activada y el hash del ledger intacto.

Total de los dos ciclos con inferencia: USD 0.045 de un piloto autorizado de USD 20.

Los guardarraíles que hacen tolerable la velocidad

La parte que me interesa compartir no es la velocidad. Es la lista de cosas que decidimos antes de encender el proceso, porque son las que hacen que trece segundos no sean trece segundos de riesgo.

El presupuesto se reserva antes de pensar. Cada ciclo escribe una reserva de USD 5 en un ledger durable antes de la primera inferencia. Si la reserva no cabe en el tope del piloto, el proceso no arranca. Al terminar, liquida al consumo calculado con el uso de tokens reportado por la API y las tarifas públicas del modelo. Si el resultado es incierto, conserva la reserva completa y bloquea el siguiente ciclo hasta que una persona concilie. Los límites internos son explícitos: máximo ocho turnos de modelo, veinte llamadas al conector, 2,048 tokens de salida, tiempo de espera de 120 segundos y ningún reintento automático. El modelo está fijado y no hay fallback silencioso: si cambia el precio o el modelo, alguien tiene que cambiarlo a mano.

Diagrama 7. Modelo de presupuesto del worker: reserva de cinco dólares antes de cada ciclo, verificación contra el tope del piloto de veinte dólares, liquidación al consumo calculado con tarifas públicas, y conservación de la reserva completa si el resultado es incierto.
Ver diagrama Mermaid
flowchart LR
    S["Inicio de ciclo"] --> R{"¿Reserva de USD 5
cabe en el piloto de USD 20?"} R -- No --> STOP["No arranca
sin inferencia"] R -- Sí --> RES["Reserva escrita
en el ledger durable"] RES --> RUN["Ciclo: máximo 8 turnos,
20 llamadas MCP,
sin reintentos"] RUN --> U{"¿Uso de tokens
verificable?"} U -- Sí --> SET["Liquidar al costo calculado
con tarifas públicas"] U -- No --> KEEP["Conservar la reserva completa
y bloquear hasta conciliar"] SET --> END["Informe y cese"] KEEP --> END
Diagrama 7. El dinero se reserva antes de pensar, no después. Si el worker no puede demostrar cuánto gastó, el ledger asume que gastó la reserva entera y bloquea el siguiente ciclo hasta que una persona concilie.

Un ciclo por día y un solo proceso a la vez. Un cerrojo local impide dos ciclos simultáneos. La fecha local decide si ya hubo un ciclo; un segundo arranque devuelve el resultado anterior sin gastar. Un día sin candidatos nuevos termina sin inferencia y sin borradores vacíos, porque un borrador vacío creado por rutina también es ruido en el ERP.

Diagrama 8. Guardarraíles de repetición: un cerrojo local impide dos ciclos simultáneos; un ciclo por fecha local; un segundo arranque el mismo día devuelve el resultado anterior sin gastar; y un día sin candidatos nuevos termina sin inferencia ni borradores.
Ver diagrama Mermaid
flowchart TD
    C["Clic en el lanzador"] --> LOCK{"¿Hay un cerrojo
de otro proceso?"} LOCK -- Sí --> X1["Termina: ya hay
un ciclo en curso"] LOCK -- No --> DAY{"¿Ya hubo un ciclo
en esta fecha local?"} DAY -- Sí --> X2["Devuelve el resultado anterior
replayed = true, gasto 0"] DAY -- No --> CAND{"¿Hay candidatos nuevos
tras supresiones e historial?"} CAND -- No --> X3["Termina sin inferencia
ni borrador: gasto 0"] CAND -- Sí --> RUN["Ciclo con presupuesto reservado
máximo diez borradores"] RUN --> REL["Libera el cerrojo
y escribe el informe"]
Diagrama 8. Lo que pasó el 12 de octubre con el tercer arranque: sin candidatos nuevos, sin inferencia, sin gasto y sin plantillas vacías. Un segundo clic ese mismo día devolvió el resultado anterior, con el hash del ledger intacto.

El conector no tiene botón de enviar. El servidor MCP dedicado expone seis herramientas de lectura y dos de borrador: crear y editar únicamente los borradores que creó el propio ciclo, con un máximo de diez destinatarios. No existe herramienta de envío, de programación, de borrado ni de modificación de contactos. No es una política escrita en un documento que el agente podría ignorar: es una ausencia en el código. El envío lo hace una persona, desde el ERP, después de revisar el lote.

Diagrama 9. Las dos capas de herramientas del conector: seis de lectura, más la creación y edición de borradores propios con tope de destinatarios; y la lista de lo que el conector no puede hacer: enviar, programar, borrar ni modificar contactos.
Ver diagrama Mermaid
flowchart LR
    subgraph READ["Capa 1: seis herramientas de lectura"]
        R1["Estado y versión"]
        R2["Campos del modelo"]
        R3["Buscar y leer"]
        R4["Contar"]
    end
    subgraph DRAFT["Capa 2: borradores propios"]
        D1["Crear borrador
máximo diez destinatarios"] D2["Editar solo lo que
creó este ciclo"] end subgraph NO["Fuera del conector, por diseño"] N1["Enviar"] N2["Programar"] N3["Borrar"] N4["Modificar contactos"] end W["Worker"] --> READ W --> DRAFT DRAFT -.->|"solo una persona,
desde el ERP"| N1 W x--x NO
Diagrama 9. El conector no tiene botón de enviar. No es una política escrita en un documento: es una ausencia en el código. La velocidad del worker se vuelve tolerable porque lo irreversible no está a su alcance.

Cada afirmación tiene una lectura de vuelta. El worker no reporta "creé el borrador". Relee el registro, verifica que esté en estado borrador, cuenta los correos y las trazas asociadas y escribe esos ceros en el informe. Nosotros repetimos esas lecturas con consultas independientes antes de dar el ciclo por bueno. Un informe de agente es una hipótesis hasta que alguien la contrasta.

Las reglas comerciales también son código. Máximo cinco toques por persona, contados entre campañas y canales. Un lote lógico por día. Texto breve y con evidencia, sin fabricar cifras. Un lead que ya es oportunidad o cliente no entra en prospección fría. Estas reglas existían en nuestras skills como texto; ahora algunas viven en la guardia previa a cada escritura, que falla cerrado si no puede verificar el historial.

Qué demostró el piloto y qué no

Nos obligamos a hacer esta distinción antes de escribir el artículo, porque es muy fácil confundir capacidad técnica con resultado comercial.

Diagrama 10. Dos columnas: lo que el piloto demostró, como capacidad técnica de leer, decidir, escribir un borrador y parar bajo presupuesto, frente a lo que no demostró, como una audiencia comercial nueva, un envío real o la operación sin la computadora encendida.
Ver diagrama Mermaid
flowchart LR
    subgraph SI["Lo que el piloto demostró"]
        S1["Leer el ERP y contar
con herramientas acotadas"] S2["Decidir y escribir
un borrador propio"] S3["Releer su propia escritura
y verificar 0 correos, 0 trazas"] S4["Reservar, gastar y liquidar
bajo tope"] S5["Parar solo, sin gasto,
cuando no hay candidatos"] end subgraph NO["Lo que el piloto no demostró"] N1["Una audiencia nueva
elegible y aprobada"] N2["Un envío real
a un prospecto"] N3["Operar con la PC apagada
o en un servidor remoto"] N4["Recibir y clasificar
respuestas"] N5["Que la clave del modelo
tenga un límite global"] end SI ~~~ NO
Diagrama 10. La distinción que nos obligamos a hacer antes de escribir este texto. Un borrador vacío creado por una máquina es prueba de capacidad técnica, no un lote comercial elegible.

Demostró que un proceso autónomo puede leer el ERP con herramientas acotadas, decidir, escribir un borrador propio, releer su escritura, reservar y liquidar presupuesto, y detenerse solo cuando no hay trabajo. Todo eso con evidencia: manifiestos, ledger, lecturas de vuelta y pruebas automáticas, 219 del runtime y 13 del worker.

No demostró una audiencia comercial nueva y aprobada: la base no ofrecía candidatos elegibles ese día sin relajar criterios, y no los relajamos. No demostró un envío real a un prospecto; no lo hubo. No demostró operar con la computadora apagada ni en un servidor remoto. No demostró recibir ni clasificar respuestas; la lectura de salud del buzón no es ingesta. Y no demostró que la clave del modelo tenga un límite global de gasto: el ledger limita a este worker, no a otros programas que usen la misma clave.

Un borrador vacío creado por una máquina es prueba de capacidad técnica. No es un lote elegible, y no lo presentamos como tal.

La comparación honesta: horas contra segundos

Quiero ser cuidadoso con la cifra del título, porque es la que más se va a repetir.

Las tres a cinco horas son una estimación personal por prospecto, de principio a fin, incluida la llamada y la planificación de los toques siguientes. Los 13 y 15 segundos son telemetría por ciclo, reconstruida desde el ledger de presupuesto y el registro de uso por solicitud. Un ciclo no incluye la llamada previa ni la decisión de enviar, y en estas pruebas tampoco incluyó una audiencia real. No estamos comparando lo mismo con lo mismo, y preferimos decirlo a que lo descubra un lector atento.

Diagrama 11. Comparación honesta: el trabajo humano por toque, de tres a cinco horas, frente al ciclo de máquina, de trece a quince segundos; en medio, la decisión humana de enviar, que se conserva a propósito como el único cuello de botella.
Ver diagrama Mermaid
flowchart LR
    subgraph H["Trabajo humano por toque"]
        H1["Investigar, llamar, redactar,
curar, enviar y planificar"] H2(["3 a 5 horas
estimación personal"]) H1 --> H2 end subgraph M["Ciclo de máquina"] M1["Reservar, inferir, escribir borrador,
releer, liquidar"] M2(["13 a 15 segundos
telemetría del ledger"]) M1 --> M2 end H2 -.->|"lo que cambia"| M2 M2 --> V{{"Decisión humana de enviar
cuello de botella conservado"}} H2 --> V
Diagrama 11. No comparamos lo mismo con lo mismo y lo decimos. Las horas son estimación personal por prospecto; los segundos son telemetría por ciclo. Lo que queda entre ambos, la decisión de enviar, es el cuello de botella que queremos conservar.

Lo que sí cambia, y cambia de verdad, es dónde queda el cuello de botella. Antes el cuello de botella era mi tarde. Ahora el cuello de botella es una decisión: revisar un lote congelado y dar un VoBo. Esa decisión toma minutos, no horas, y es la única que queremos conservar, porque es la única irreversible.

Cuando vi el informe del segundo ciclo sentí algo que no esperaba sentir frente a un archivo de texto. Sentí miedo. No porque el proceso hubiera hecho algo malo, sino porque hizo algo correcto más rápido de lo que yo podía observarlo. Esa sensación es la que da origen a la última sección.

Qué opinamos en Transgenia

Este artículo no es neutral y conviene decirlo. Nuestra postura, para que la contrastes con la de cualquier otro proveedor:

Diagrama 12. Modelo de respeto operativo a la inteligencia artificial en cinco pasos: del susto inicial a los límites escritos antes de encender, la evidencia por cada afirmación, la delegación con VoBo humano y la confianza ganada que permite ampliar permisos por evidencia.
Ver diagrama Mermaid
flowchart LR
    F["Susto inicial
funciona y es rápido"] --> G["Límites escritos
antes de encender"] G --> E["Evidencia por cada afirmación
pruebas, ledger, lecturas de vuelta"] E --> D["Delegación con VoBo
la persona decide lo irreversible"] D --> C["Confianza ganada"] C -->|"ampliar permisos
solo con evidencia"| G C -.->|"nunca por entusiasmo"| F
Diagrama 12. Nuestra tesis en un dibujo. Respetar a la inteligencia artificial no es temerle ni venerarla: es tratarla como a cualquier sistema que actúa más rápido de lo que podemos supervisar, con límites previos, evidencia y una persona en el paso irreversible.

Fuentes

Los hechos técnicos sobre productos y protocolos se apoyan en fuentes públicas. Las cifras del piloto y del canal comercial son de Transgenia: provienen de nuestra bitácora de auditoría interna del 10 al 12 de octubre de 2026 y de nuestras revisiones semanales de agosto y septiembre, y se indican como tales.

Preguntas frecuentes

¿El agente envía correos solo?

No. El conector que usa el worker no tiene herramienta de envío, programación ni borrado. Puede leer el ERP y crear o editar sus propios borradores con un máximo de diez destinatarios. El envío lo hace una persona desde el módulo de correo masivo del ERP, después de revisar el lote y dar un VoBo explícito.

¿Qué significa exactamente "13 segundos"?

Es el tiempo entre la reserva de presupuesto y su liquidación en el segundo ciclo real del worker, reconstruido desde el ledger y el registro de uso por solicitud. Incluye dos inferencias, una escritura de borrador y las lecturas de verificación. No incluye la llamada previa, la revisión humana ni la decisión de enviar.

¿De dónde salen las tres a cinco horas?

Es la estimación personal del autor sobre el proceso manual completo de prospección de una cuenta: investigar, conseguir correos, llamar, redactar, curar, enviar y planificar los siguientes toques. No es telemetría y el artículo lo indica cada vez que la usa.

¿Cuánto costó el piloto?

Los dos ciclos con inferencia sumaron USD 0.045 calculados con el uso de tokens reportado por la API y las tarifas públicas de Sonnet 5.5, de un piloto autorizado de USD 20 con tope de USD 5 por ciclo. El tercer ciclo, sin candidatos nuevos, costó cero. No es una factura ni una verificación de saldo de la cuenta.

¿Por qué no usaron un agente gestionado en la nube?

Porque los agentes gestionados conectan sus herramientas mediante servidores MCP con URL remota y autenticación por sesión, y nuestro conector hacia el ERP corre en un contenedor local sin puertos expuestos. Sin un gate remoto persistente y autenticado, esa ruta no existe. Elegimos un proceso local y finito que arranca con un clic y termina solo.

¿Qué pasa si el worker falla a mitad de un ciclo?

El diseño es fail-closed. Si el resultado es incierto, el ledger conserva la reserva completa de presupuesto y bloquea el siguiente ciclo hasta que una persona concilie. No hay reintentos automáticos ni fallback de modelo. Un cerrojo abandonado por una caída requiere confirmar que no hay proceso activo antes de recuperarlo a mano.

¿Esto ya funciona con la computadora apagada?

No. El worker necesita la computadora, Node y el contenedor del conector encendidos. No está instalado como servicio ni como tarea programada, y no hay despliegue remoto. Es una limitación conocida y documentada; migrarlo a un ejecutor remoto requiere primero un gate autenticado y una medición de capacidad.

¿Qué quieren decir con "respeto a la inteligencia artificial"?

Respeto operativo, no temor ni veneración: tratar a un sistema que actúa más rápido de lo que podemos supervisar con límites escritos antes de encenderlo, evidencia por cada afirmación y una persona que decide el único paso irreversible. Es la misma disciplina que se le exige a cualquier automatización con acceso a producción.

Sobre el autor y Transgenia

Efraín Carreón Ortiz es Director General de Centrum Transgenia, una boutique tecnológica mexicana, y lleva la mayor parte de las ventas de la empresa. Está acreditado con la insignia oficial Claude Code (Claude Partner Badge) emitida por Anthropic, verificable en Credly.

Transgenia es OpenAI Select Partner dentro del OpenAI Partner Network y partner registrado en el Claude Partner Network de Anthropic. Equipo: Víctor Estrada Bello, Chief PMO; Danild Johan Zambrana López, Chief Technology Officer; Jaime Lozano Castañeda, Chief Marketing Officer; Efraín Carreón Ortiz, Director General (Chief Executive Officer).

Hablemos: contacto@transgenia.org, WhatsApp +52 55 8034 0405, agenda de 15 minutos o la página de contacto.

Sigue leyendo

← Volver al Blog
Transgenia, Verified IT agency on Vai.me