INFORME TÉCNICO · AGOSTO 2026

Una plataforma que genera agentes de venta verticales, no un chatbot con respuestas armadas.

Qué hay construido, cómo está armado, qué garantiza el código y qué todavía no está. Con los números medidos y sin los que no lo están.

Guillermo: como quedamos, acá va el resumen. Está escrito para que lo lea alguien del oficio, así que va derecho al grano y con los faltantes a la vista — incluida la foto del producto que pediste en la prueba y que hoy no está. Preferí que te enteres acá y no probando.

Tus otras dos preguntas —si puede correr en local y si se conecta por API— tienen sección propia, la 06, contestadas de frente. Lo del CRM que instalás está en la 05: ahí hay algo concreto para hablar. Y como la seguridad es tu terreno, la 07 es entera de eso — con lo que hay y también con lo que falta, que es la parte que suele no escribirse.

— Fabián Moncalvo, GeneraIA

01Qué es, y qué no es

La diferencia que ordena todo el diseño es una sola, y no es técnica: un buscador espera que el cliente ya sepa lo que quiere. Un vendedor pregunta, entiende el caso y recomienda.

Casi todo lo que se ofrece hoy como “agente de IA para comercios” es un buscador con lenguaje natural: matchea texto contra un catálogo y devuelve resultados. Funciona cuando alguien escribe el nombre exacto de un producto, y se cae cuando alguien escribe “algo para mi perro que está viejo y no come bien”, que es como habla la gente.

Estos agentes están construidos alrededor de la conversación de venta: califican al comprador, recomiendan con criterio, arman el carrito, cierran el pedido contra el stock real y avisan al dueño. La consulta al catálogo es una pieza adentro de eso, no el producto.

El activo que un buscador no tiene: cuando el agente no entiende algo, repregunta — y la persona aclara con sus propias palabras. Esa aclaración es material de altísima calidad que un buscador nunca obtiene, porque un buscador no puede repreguntar.

02Arquitectura, a nivel de bloques

Multi-tenant real desde el diseño: un solo sistema atendiendo N negocios, no una copia del código por cliente.

Stack: Python, PostgreSQL, Nginx, procesos bajo supervisor, servidor propio. Hoy hay 14 servicios corriendo en producción. Cómo están vigilados, respaldados y aislados va en la sección 07.

03La línea que divide el producto: qué garantiza el código y qué depende del modelo

Esta es la decisión de ingeniería más importante del proyecto, y la que probablemente ningún proveedor te va a poner por escrito.

Un modelo de lenguaje no es determinístico: acierta una vez y falla la siguiente con la misma entrada. Por lo tanto, todo lo que no puede fallar nunca no se le puede pedir por escrito al modelo: tiene que estar garantizado por código, fuera de su alcance.

El recorrido del proyecto lo demuestra sin discusión: cada una de las garantías de la columna izquierda empezó como una instrucción escrita en el prompt, y cada una volvió a fallar hasta que se movió al código. Ninguna de las que se movió al código volvió a fallar. Ninguna de las que quedó escrita dejó de fallar.

Garantizado por código — no puede fallar aunque el modelo se equivoque Depende del modelo — medido, con margen conocido
Los precios salen de la base de datos. El modelo no puede escribir un número de precio; los recibe ya resueltos o no los tiene. La redacción y el tono de la recomendación.
Una operación interrumpida no deja el pedido a medias. Si el turno se corta —red, timeout, límite del proveedor— el carrito vuelve exactamente al estado anterior. El cliente no termina pagando dos veces lo mismo. Que cuente con precisión lo que acaba de hacer.
No se puede agregar al carrito algo sin stock, ni cerrar un pedido que el stock no cubre. Que no ofrezca de más cuando el comprador fue ambiguo.
Un producto de una categoría nunca se ofrece para otra. Si alguien pregunta por perro, es imposible que reciba un producto de gato. Que elija el mejor de dos productos igual de válidos.
El cierre genera un pedido real, con número, contra el stock, con el método de pago y la forma de entrega registrados. No es un mensaje que dice “listo”. El momento exacto en que decide cerrar.
El catálogo que ve el agente nunca se recorta en silencio. Si por tamaño no entra completo, el sistema avisa al administrador en vez de dejar productos mudos. Cuántas opciones enumera antes de recomendar.

Por qué esto importa comercialmente y no solo técnicamente: lo caro de un agente que se equivoca no es que quede mal redactado. Es que cotice un precio que no existe, que cobre dos veces, o que venda algo que no hay. Todo eso está del lado izquierdo de la tabla.

04El catálogo: dónde está el problema real

El problema no es guardar muchos productos. Es que el agente los conozca todos sin que la conversación se vuelva impagable ni el modelo se pierda.

El techo que casi nadie muestra

Casi todas las implementaciones que circulan meten el catálogo dentro del contexto del modelo. Con veinte productos anda perfecto. Con doscientos, empieza a recortarse en silencio: no hay error, no hay alerta, simplemente hay productos que el agente deja de saber que existen y nunca ofrece. El dueño no se entera nunca — lo único que ve es que no vende.

Medido sobre un catálogo sembrado de 200 líneas antes de resolverlo: 63 productos quedaban invisibles, un 32% del catálogo. Entre ellos, el más caro.

Cómo está resuelto hoy

El agente navega el catálogo en lugar de recibirlo entero: baja por rubro y subrubro hasta el nivel de detalle que la consulta necesita, y nunca devuelve una respuesta vacía — si no reconoce el filtro, devuelve el mapa para poder repreguntar. El resultado se midió contra dos catálogos reales, corriendo cada escenario cinco veces:

0

productos invisibles con el catálogo completo cargado, contra 63 antes.

25×

más grande el catálogo, y la misma cantidad de intercambios para cerrar la venta. Empate exacto en 5 corridas de cada uno.

257

productos en 10 rubros y 10 subrubros, con marca definida en los 257, corriendo hoy en el multirubro.

Lo difícil de verdad: el vocabulario del comprador

Resuelto el volumen, queda el problema caro, que es de idioma y no de arquitectura: el comprador no escribe el nombre del producto. Escribe “pichicho”, “planchita”, “jarra eléctrica”, “termo para tereré”. Hay literatura académica de cuarenta años sobre esto — dos personas eligen la misma palabra para la misma cosa menos del 20% de las veces — y las plataformas grandes lo resuelven con volúmenes de tráfico que un comercio de barrio no va a tener nunca.

Es la línea de trabajo principal hoy, y el enfoque es el que corresponde al tamaño del cliente: el sistema propone y una persona confirma, con el trabajo de análisis centralizado en nosotros para que al dueño del negocio le lleguen pocas propuestas y buenas, en vez de una lista que no va a mirar.

Sin maquillaje

Esta parte no está terminada y no tiene fecha prometida. Lo que sí está medido es cuánto rinde cada camino y cuál es el techo de cada uno — que es la razón por la que no se promete.

05Entrada de datos e integración con sistemas existentes

El punto en el que casi todo proyecto de este tipo se muere: nadie va a cargar su catálogo dos veces.

Y el riesgo no es el que parece. Una foto vieja es un detalle; un precio viejo es una venta mal cobrada. Por eso el problema real no es importar una vez, es mantener sincronizados precio y stock. La estrategia es una escalera de tres escalones, deliberada:

Carga por pantalla Funcionando

Alta y edición de productos, precios, stock, rubros y subrubros desde el panel, con asignación en lote. Es lo que hay hoy y es lo que usa un comercio que tiene el catálogo en la cabeza o en una planilla.

Importación por archivo En construcción

Una planilla con nombre, precio, stock, rubro y el enlace de la foto como una columna más. Es el escalón que resuelve el grueso de los casos, porque funciona con cualquier sistema de gestión: todos exportan. No depende de que el proveedor del cliente nos deje conectarnos, ni de que tenga con qué.

Conexión directa al sistema del cliente No construida — y a propósito

Técnicamente no es difícil. Lo que la vuelve inviable en el caso general es la dispersión: cada comercio tiene un sistema distinto, muchos no tienen forma de conectarse, y si el proveedor del cliente cambia algo se rompe del lado de él y llaman a quien puso el agente. Pedir las credenciales del sistema de un negocio, además, te vuelve responsable de un acceso a sus datos.

Esa dispersión desaparece si el sistema es uno solo. Con un socio que instala siempre el mismo CRM en sus clientes, deja de ser “integrar con lo que haya” y pasa a ser un trabajo acotado, con alcance definible y una sola vez: se hace contra ese sistema y sirve para toda su cartera.

En una línea: hoy no hay ninguna integración directa a un CRM y no se promete ninguna. Pero el orden de prioridades del proyecto siempre puso la conexión directa detrás de “que exista un socio real que la pida sobre un sistema concreto” — justamente porque hacerla a ciegas, sin saber contra qué, es tirar el trabajo.

06Dónde corre y con qué se conecta

Dos preguntas que aparecen enseguida cuando quien lee administra infraestructura ajena. Las dos tienen respuesta clara, y ninguna de las dos es “sí” a secas.

¿Puede correr en la infraestructura del cliente?

El sistema no está atado a ninguna nube propietaria: Linux, PostgreSQL, Nginx y procesos supervisados, sobre servidor propio. No hay plataformas cerradas en el medio. Desplegarlo en otra infraestructura es un problema de operación, no de arquitectura.

Pero “local” tiene tres capas, y conviene separarlas porque solo dos dependen de nosotros:

Capa¿Puede correr en infraestructura del cliente?
La aplicación y la base de datos
catálogo, precios, stock, pedidos, clientes, conversaciones
Sí. Software estándar sobre Linux, sin dependencias de plataforma. Es portable por construcción.
El modelo de lenguaje Hoy no. Es un servicio externo, y el texto de la conversación viaja a ese proveedor para poder responderla. Correrlo sobre GPU propia con modelos abiertos es posible y está evaluado, pero no construido: tiene costo de hardware y una caída de calidad que habría que medir antes de prometer nada.
El canal de WhatsApp No, y no depende de nadie. WhatsApp Business API es de Meta y los mensajes pasan por Meta obligatoriamente. Quien diga lo contrario está diciendo algo que no es cierto.

Dos precisiones sobre los datos, que suele ser el fondo real de la pregunta:

Para que no haya malentendido

Una instalación dedicada sobre infraestructura del cliente es una conversación que se puede tener. Entregar el código fuente no — no se licencia en ninguna modalidad. Son dos cosas distintas que la palabra “local” suele mezclar.

¿Tiene API?

Hay que separar consumir de exponer.

Y dos cosas concretas para quien quiera integrar hoy:

El panel ya es multi-cliente

Un socio con su propio usuario, viendo únicamente sus clientes, ya opera sin que exista ninguna API. Para una empresa chica, una pantalla suele ser preferible a una integración que después hay que mantener cada vez que algo cambia de un lado.

La pieza mínima no es una API

Es un aviso de salida: cuando el agente confirma un pedido, notificar a un sistema externo con los datos de ese pedido. Es chico, es acotado, y resuelve casi todo el caso de “quiero que lo que vende el agente entre en mi CRM”. Ese sería el primer escalón, no una API general.

En una línea: hoy consume APIs y no expone la propia. Y lo primero que se construiría no sería una API completa, sino el aviso de pedido confirmado hacia el sistema del socio — más barato, más rápido de mantener y resuelve el caso real.

07Seguridad

Un agente que atiende compradores maneja datos de terceros y opera sobre el stock y los precios de un negocio. Lo que sigue es específico a propósito: ante alguien del oficio, “usamos los más altos estándares” es lo que dice el que no tiene nada que mostrar.

Aislamiento entre negocios

Es el riesgo número uno de cualquier sistema multi-cliente, y el que peor se ve cuando falla.

Acceso y permisos

Rastro y no repudio

Secretos y terceros

Superficie expuesta y continuidad

Lo que no hay — y decirlo es parte de lo mismo

No hay certificaciones (ni ISO 27001 ni SOC 2) ni pruebas de intrusión hechas por un tercero. El cifrado en reposo alcanza a los secretos, no al volumen completo del disco. Y el sistema es joven: lleva meses en producción, no años.

Un documento que solo enumere fortalezas no debería creerse. Esta lista es lo que hay hoy, verificado, y lo que falta está escrito al lado.

08Cómo se prueba (y por qué esto es la mitad del producto)

Con un componente no determinístico adentro, la pregunta no es “¿anda?”. Es “¿cómo me entero el día que deje de andar?”.

El argumento que resume la sección: no probamos que funcione. Probamos que sepamos darnos cuenta cuando deja de funcionar. Lo primero lo dice cualquiera; lo segundo se tiene que construir aparte, y es lo que hace que un cliente no se entere de un problema antes que vos.

Dato de la última medición completa de conversación: 123 casos, cada uno corrido 5 veces. 121 dieron resultado idéntico las 5 veces. Ninguno roto. Los 2 restantes están identificados y son de calidad de venta, no de integridad de datos.

09Un motor, tres verticales

La prueba de que es una plataforma y no un producto único es que ya genera verticales que no se parecen entre sí.

Vera — venta con catálogo

El vertical más desarrollado. Califica, recomienda, arma carrito, cierra pedido contra stock, registra pago y forma de entrega, y avisa al dueño.

Estado: en producción sobre un negocio de demostración de 24 productos, abierto por WhatsApp y Telegram.

Tienda Don Ramón — multirubro

El caso difícil: 257 productos en 10 rubros que no tienen nada que ver entre sí —alimento, indumentaria, bazar, limpieza, librería, juguetería—, con canal propio.

Estado: en producción, en etapa de afinado.

Agendamiento — turnos

Vertical distinto sobre la misma base: no vende productos, coordina agenda. Sirve como prueba de que la arquitectura no está atada a la venta de catálogo.

Estado: en producción, con base y monitoreo propios.

Precisión importante

Los negocios que corren hoy son bancos de prueba con catálogos completos y reales en tamaño, no comercios facturando. Está dicho a propósito: preferimos que se entienda contra qué se midió cada número antes que inventar un cliente que después no se pueda mostrar. El multirubro está armado justamente para medir el peor escenario, que es donde se rompen estos sistemas.

10Estado real, sin maquillaje

Lo que corre hoy y lo que todavía no. Separado a propósito, porque mezclarlo es la forma más rápida de perder credibilidad con alguien que va a probarlo.

CapacidadEstadoDetalle
Conversación de venta completa hasta el pedidoFuncionandoCarrito, cierre, pedido real contra stock, método de pago y forma de entrega.
WhatsApp Business API y TelegramFuncionandoNúmero real de WhatsApp, mismo motor en los dos canales.
Multi-tenant con aislamiento en baseFuncionando21 tablas con seguridad a nivel de fila, 42 políticas.
Panel del dueño del negocioFuncionandoPedidos, productos, métricas, conversaciones, usuarios con permisos y auditoría.
Panel de administración de la plataformaFuncionandoAlta de cliente, configuración, catálogo, rubros, suscripción y corte automático.
Catálogo grande sin productos invisiblesFuncionandoMedido con 257 productos en 10 rubros.
Marca del producto como dato del catálogoFuncionandoRecién incorporado. Permite responder con certeza por una marca que el negocio no vende, en vez de improvisar.
Fotos de productoNo estáEl agente hoy lo dice y deriva a una persona, sin prometer lo que no puede. Entra por enlace, junto con la importación.
Importación de catálogo por archivoEn construcciónEs la pieza que más acorta la puesta en marcha de un cliente nuevo.
Conexión directa a un sistema de gestiónNo estáVer sección 05. Depende de definir contra qué sistema.
Despliegue sobre servidor propio, sin nube propietariaFuncionandoLinux, PostgreSQL, Nginx. Portable por construcción a otra infraestructura.
Consumo de APIs de tercerosFuncionandoWhatsApp Business API, Telegram y el proveedor del modelo.
API propia para operar desde afueraNo estáDecisión de orden. El panel multi-cliente ya cubre la operación de un socio sin API.
Aviso a un sistema externo al confirmar un pedidoNo estáEs la pieza más chica que resuelve la integración con un CRM. Ver sección 06.
Modelo de lenguaje sobre infraestructura propiaNo estáEvaluado, no construido. Requiere hardware y medir la caída de calidad antes de prometerlo.
Alta de un cliente sin intervención nuestraParcialTodo se carga por pantalla, pero el criterio del rubro todavía lo pone una persona. Es la línea de trabajo principal.

Ese último renglón es, con distancia, el más honesto del documento: el cuello de botella para escalar no es técnico, es de criterio. Cargar doscientos productos lleva una tarde. Darse cuenta de que una pregunta mal formulada al comprador le hace llevar el producto equivocado, no lo detecta ningún formulario. Ahí es donde está puesto el esfuerzo hoy.

11Para una empresa que ya instala sistemas en comercios

El encaje más natural no es como cliente. Es como canal.

Quien ya entra a un comercio a instalar y capacitar tiene resuelto lo que a nosotros nos cuesta caro: la relación, el conocimiento del negocio y la presencia para el alta. Y a la inversa, un agente de venta 24/7 es un producto recurrente que se apoya exactamente sobre el sistema que ya instaló.

Qué se entrega

Los agentes bajo la marca del socio, con su dominio y sus paneles; cada cliente suyo aislado del resto por la base de datos; alta y configuración por pantalla; y el motor común mantenido y mejorado del lado nuestro — cada mejora llega a toda la cartera sin trabajo del socio.

Qué no se entrega

El código fuente no se licencia, en ninguna modalidad. Es una decisión tomada y no es negociable: lo que se ofrece es el servicio funcionando y mantenido, con la marca del socio adelante.

Y lo más concreto: la conexión directa al CRM de la sección 05, que en el caso general no cierra, con un socio que estandariza el sistema en su cartera pasa a ser un trabajo acotado y con sentido económico. Es la conversación que vale la pena tener primero, porque define el orden de todo lo demás.