En producciónControl de gastos que empieza con un mensaje.
Finanzas personales por conversación en WhatsApp: registra un gasto por mensaje y deja que el software determinista gestione los registros, totales y recordatorios.
- Rol
- Creador · producto e ingeniería
- Áreas
- Finanzas personales · Productos conversacionales · IA
Almuerzo 38
Registrado: almuerzo, 38,00, en alimentación.
¿Cuánto gasté en alimentación esta semana?
Esta semana, hasta ahora:
- Alimentación
- 284.00
- Transporte
- 120.00
Conversación ilustrativa · importes de ejemplo
El problema
El control de gastos suele fallar por un motivo banal: es otra aplicación, otro formulario, otra cosa que recordar al pagar el café. La información existe. Simplemente rara vez llega a algún lugar útil.
Lukre parte de una apuesta menor. Si registrar un gasto se parece a enviar un mensaje, quizá se registre. Trabaja con lo que las personas le cuentan: no se conecta a bancos, no mueve dinero y no ofrece asesoramiento fiscal ni de inversión.
La experiencia
Hablas con Lukre por WhatsApp. Escribes un importe, lo describes en una nota de voz o envías la foto de un recibo, y se convierte en un registro categorizado. Después preguntas en el mismo chat: cuánto se gastó en alimentación este mes, qué aumentó, cómo va el presupuesto. Un hogar puede compartir el historial y cada miembro escribe desde su propio número.
Un panel web complementa la conversación. Allí los registros se convierten en gráficos e historial y algunas revisiones resultan más cómodas que en el chat: confirmar un recibo que requiere revisión, responder una pregunta pendiente o ajustar un límite presupuestario.
La arquitectura en pocas líneas

Lukre son dos sistemas con un contrato entre ellos. Una capa de conversación, construida sobre el agente de código abierto Hermes, mantiene la sesión de WhatsApp, lee cada mensaje y decide qué operación se solicita. Un servicio financiero en Python es la única fuente de verdad para el dinero y expone al agente un conjunto seleccionado de operaciones como herramientas de Model Context Protocol (MCP).
El agente propone; el servicio comprueba quién lo pide, lee los números con código determinista, aplica las reglas y guarda el registro. La frase de confirmación que recibes se construye a partir de los valores almacenados.
Decisiones que lo definen
Los números quedan en el código
Para gastos escritos, el modelo transmite el mensaje; un analizador del dominio lee importe, fecha y categoría. El dinero usa Decimal de extremo a extremo.
El hogar nunca es un argumento
Proviene de la credencial del agente y vuelve a imponerse mediante seguridad por fila en PostgreSQL. El modelo no puede elegir otro hogar.
Cada mensaje se aplica una vez
El identificador del mensaje se reserva en la misma transacción que el registro; así, un mensaje reenviado no registra el gasto dos veces.
Tecnología por responsabilidad
Conversación
Hermes, un entorno de ejecución de agentes de código abierto, con WhatsApp mediante Baileys. Mi parte es un plugin Python que controla la entrada de cada mensaje y fija el remitente.
Model Context Protocol (MCP)
El límite estructurado de herramientas entre agente y servicio financiero: entradas tipadas, resultados JSON y ninguna autoridad propia.
Aplicación y dominio
Python 3.12 y FastAPI, con Pydantic en los bordes y un paquete de dominio sin código web ni de base de datos.
Registros
PostgreSQL mediante SQLAlchemy y Alembic, con cada tabla multiinquilino delimitada por el hogar.
Recibos y voz
Un modelo multimodal lee recibos y genera un candidato que debe superar comprobaciones de confianza y aritmética. Las notas de voz llegan como transcripciones.
Panel
Páginas renderizadas en el servidor con htmx y gráficos, que leen del mismo servicio.

