Volver a proyectos

Agentes· Herramienta

Mi Hogar

Un gestor de finanzas personales de un solo usuario que manejas chateando con un bot de Telegram. Un agente de OpenAI con tools tipadas convierte texto, notas de voz y fotos de recibos en transacciones; un dashboard en Next.js cubre reportes, presupuestos, deudas y nómina colombiana.

App privada de un solo usuario. Código abajo.Código →

Problema

La mayoría de apps de finanzas mueren porque registrar un gasto es fricción. La apuesta acá: el input más rápido es un mensaje de chatque ya tienes abierto en el teléfono. Por eso la interfaz principal es un bot de Telegram, no un formulario. Las restricciones: la plata tiene que ser exacta, los datos tienen que quedar bloqueados a un solo dueño, y todo se publica como un repo de referencia totalmente público, sin datos financieros reales dentro.

Mi rol

Diseñé y construí todo el sistema spec-first. Un agente de OpenAI con tool calling (11 tools tipadas, un loop acotado a 6 saltos) convierte lenguaje natural, notas de voz transcritas con Whisper y fotos de recibos extraídas por visión en transacciones tipadas. La plata se guarda como enteros en centavos, con un código de moneda por fila. La parte numérica vive en TypeScript puro y testeado, no en el prompt: tablas de amortización, un simulador de pago anticipado (reducir plazo vs. reducir cuota) y un motor de nómina colombiana (rangos de UVT, retefuente, salario integral, AFC). Row-Level Security de un solo dueño protege cada tabla, la service-role key nunca llega al cliente, y el webhook valida un header secreto más una whitelist de Telegram.

Tradeoff

El LLM es un parser de input, no una base de datos ni una calculadora. El agente solo llama tools tipadas; cada monto, presupuesto y número de amortización se calcula en TypeScript testeado. Eso renuncia a la flexibilidad de dejar que el modelo razone sobre los números, pero compra exactitud y testabilidad donde más importa: la plata. Elegí Telegram sobre una app propia por la captura sin fricción, a cambio de una UI conversacional que no controlas del todo.

Métrica

La plata es exacta por construcción: enteros en centavos, nunca floats, con código de moneda por fila y dólares convertidos automáticamente con la TRM del día. Todo input externo (payloads de Telegram, args de tool calls, formularios) se valida con Zod. El loop del agente está acotado a 6 saltos de tool, y el acceso queda bloqueado por RLS scoped al dueño. Este sitio enlaza la copia pública limpia y sin datos: cada monto, identidad y credencial dentro es un placeholder.