Este portafolio tiene un agente de IA en el dock. La primera versión hablaba en primera persona: «hola, soy Cleyvin, ¿en qué te ayudo?». Funcionaba, pero me incomodaba. Un visitante le escribía a algo que decía ser yo, y no lo era. Si preguntaba por un precio, el modelo improvisaba. Si preguntaba por mi disponibilidad, inventaba.
Un agente que finge ser una persona real no es un truco simpático. Es una mentira pequeña que crece sola.
El rediseño
Lo rehíce como lo que de verdad necesitaba: un asistente de intake. Ahora no dice que es Cleyvin. Habla de Cleyvin en tercera persona, deja claro que es un asistente, y tiene un único trabajo: entender qué necesita quien escribe y pasarme el dato. El flujo de la conversación es deliberado:
- Hace preguntas de descubrimiento: tipo de proyecto, alcance, plazo.
- Da un estimado en dólares, sacado de una tabla de precios real que vive en el código, no de la imaginación del modelo.
- Cuando tiene lo suficiente, deriva el lead.
El tool-calling de dos turnos
La pieza técnica interesante es cómo se cierra. El agente tiene una sola herramienta, submit_lead. El backend (/api/agent) hace tool-calling contra OpenAI con un flujo de dos turnos:
- El modelo decide que tiene los datos y emite una llamada a
submit_leadcon el nombre, el contacto y el resumen del proyecto. - El backend ejecuta la entrega de verdad, y le devuelve al modelo el resultado.
- El modelo redacta el turno final: la confirmación humana para el visitante.
Esa segunda vuelta importa: el usuario no ve un tool_call crudo, ve una despedida en lenguaje natural que confirma que el mensaje salió.
La entrega
submit_lead no escribe en una base de datos que después tendría que acordarme de revisar. Manda el lead por dos canales a la vez:
- Un mensaje a un bot de Telegram — me llega al teléfono al instante.
- Un email vía Resend.
Cada canal está detrás de su variable de entorno. Si falta el token, ese canal simplemente no se intenta; el agente no se cae. Y el lead trae una etiqueta de origen, así sé si vino del chat o del formulario de contacto.
Lo que aprendí
Dos cosas. La primera: un agente de cara al público no tiene que ser impresionante, tiene que ser honesto sobre lo que es. El momento en que dejó de fingir ser yo fue el momento en que empezó a dar confianza.
La segunda: el valor de un agente así no está en la conversación, está en el handoff. Una charla linda que no termina en un dato accionable en mi teléfono es entretenimiento. El tool-call de dos turnos es lo que convierte la charla en un lead.