El arte de no saber: cómo estamos construyendo un coach de IA desde cero

Aprendizajes y consejos de nuestros experimentos construyendo una app web con IA y dos apps móviles sin experiencia previa.

03.09.24
10 min. tiempo de lectura
Este contenido fue traducido con IA. Ver original
Visita agile-academy.com/en/henrik/ para unirte a la lista de espera.

No lo planificamos. No realmente.

Nuestro cursor está sobre el botón "Enviar para revisión" de las apps de nuestro Coach Ágil con IA que hemos estado construyendo durante las últimas 4 semanas. Realmente no sabíamos cómo hacer apps hace 4 semanas. Lo hicimos de todos modos.

"¿Qué es lo peor que puede pasar?"
"Podrían rechazarla."
"Dale al botón."

Spoiler: Ambas apps fueron aceptadas en un par de días.

¿Cómo llegamos aquí?

Es 2023 y la IA está en todas partes. ChatGPT es el nuevo juguete brillante. "Mira, ¡puede hacer un poema sobre Scrum Masters!" alguien publicó en nuestro Slack. "Acaba de escribir mi email; es como magia", escribió otro. Empezamos a usar la IA para pequeñas cosas: generar ideas, manejar tareas rutinarias, y simplemente divertirnos.

Pero era más que un truco, y todos lo sabíamos. Estábamos impresionados, y quizás sintiéndonos rezagados. Esto era nuevo, grande y se movía rápido, y aquí estábamos, tratando de ponernos al día.

Ahí fue cuando nos dimos cuenta: esto no era solo algo para observar desde la barrera. Podíamos construir algo con esto.

Esto es lo que hicimos, lo que aprendimos, además de algunos vistazos tras bambalinas.

1. Zambullirse: sin idea perfecta, solo empezar

No teníamos un gran plan ni una idea clara de qué crear. Pero sabíamos que lo nuestro es aprender y compartir conocimiento de una manera que perdure.

Y ahora, la IA era esta enorme y brillante herramienta que podíamos usar de una manera nueva. Pero, ¿qué exactamente íbamos a construir? ¿Y cómo lo haríamos?

En lugar de esperar la idea perfecta, simplemente empezamos a experimentar. Sin hojas de ruta elaboradas, sin largos debates, solo nosotros, un puñado de ideas y las ganas de ver qué podíamos hacer.

Aprendizaje:

No esperes la idea perfecta. Empieza pequeño, experimenta con la tecnología y deja que la dirección surja de lo que aprendes. Con tecnología que avanza rápido, esperar demasiado podría significar perder el momento.

Experimentos tempranos. Sin interfaz aún, solo descubriendo cómo obtener resultados de calidad.

2. Establecer una visión: más allá de otro chatbot

Desde el principio, no queríamos construir solo otro chatbot. ChatGPT ya estaba ahí y sabíamos que no podíamos (ni queríamos) competir con su escala. Pero lo que ChatGPT ofrecía en escala, le faltaba en calidad para temas de nicho, donde los detalles importan.

¿Y si nuestro Coach Ágil con IA pudiera aprovechar nuestra experiencia para proporcionar orientación confiable y provocadora, más allá de respuestas simples y genéricas?

Calidad, confianza y un toque humano se convirtieron en los pilares de nuestra visión. Queríamos contrarrestar los problemas comunes de la IA—ser genérica, impersonal y poco confiable—convirtiéndolos en nuestras fortalezas.

Aprendizaje:

Comienza con una visión y trabaja hacia atrás desde ahí. No necesitas todos los detalles desde el principio; nuevas ideas surgirán naturalmente a medida que avances.

3. Formar un equipo ágil y un proceso lean: mantenerlo simple

Una vez que decidimos construir el coach de IA, se formó un pequeño equipo: un diseñador, dos desarrolladores, y el resto del equipo como apoyo para feedback e ideas.

Sin mucha planificación, adoptamos un proceso lean: sincronizaciones diarias rápidas, conversaciones informales tipo retrospectiva para ajustar herramientas, y demos semanales para compartir el progreso. No se trataba de seguir un framework ágil estricto; se trataba de mantener las cosas simples y receptivas.

Aprendizaje:

Deja que tu proceso evolucione naturalmente. Las revisiones diarias, el feedback regular y las demos simples pueden mantenerte alineado. No lo pienses demasiado—a veces, el mejor enfoque es el que se adapta al ritmo de tu equipo.

4. El arte del prompting: prueba y error

Sabíamos que los prompts innovadores (las instrucciones que le das al modelo de lenguaje) iban a ser elementales para nuestra app. Hacer prompts suena fácil hasta que intentas hacerlo bien. Experimentamos con diferentes prompts: ajustando palabras, reescribiendo frases, probando hasta que se sintó correcto.

Nuestro prompt actual tiene más de 5.000 caracteres, repleto de detalles que hacen que nuestra IA suene como nosotros. Es como escribir una receta secreta, y fue necesario probar mucho para llegar ahí, y seguimos ajustándolo regularmente.

Aprendizaje:

Experimenta con los prompts. Prueba diferentes variaciones para ver qué funciona y ajústalos frecuentemente. Buenos prompts son cruciales para el rendimiento de la IA.

5. Lanzar pronto y con frecuencia: soltar el perfeccionismo

No esperamos la perfección. En cuanto nuestra primera versión fue suficientemente buena, la lanzamos. ¿Era perfecta? ¿Incluía las innumerables ideas y funcionalidades que habíamos pensado? Definitivamente no. Pero no tenía sentido continuar sin feedback de personas reales.

Con la IA, no puedes predecir cada resultado, y cada interacción de usuario es diferente. La única manera de saber qué funciona es sacarlo al mercado, ver cómo lo usan las personas y adaptarse basado en lo que aprendes.

Aprendizaje:

No apuntes a la perfección antes del lanzamiento. Saca un producto mínimo viable rápidamente y aprende del feedback de los usuarios para mejoras rápidas. Esta no es una idea nueva, pero en el panorama de IA que evoluciona rápidamente importa más que nunca.

Una versión temprana de Henrik. Los usuarios podían hablar con Henrik y dar feedback sobre las respuestas – todo lo que necesitábamos para empezar.

6. Sobre hombros de gigantes

Resulta que no tienes que construir todo tú mismo. Nos apoyamos en frameworks y plantillas como Gravity, que maneja todas las cosas tediosas pero necesarias como gestión de usuarios, autenticación y email, para que pudiéramos centrarnos en lo que importa. Nos apoyamos mucho en herramientas como LangChain y por supuesto la API de OpenAI, que hacían gran parte del trabajo pesado tras bambalinas.

Aprendizaje:

Aprovecha las herramientas existentes para acelerar el desarrollo. No construyas desde cero cuando alguien más ya ha resuelto el problema. Las herramientas adecuadas pueden ahorrarte mucho tiempo.

7. Aprender de expertos (como el verdadero Henrik)

Debemos mucho a Henrik Kniberg, quien nos guió a través de algunas de las partes más críticas del proceso de desarrollo. Comenzó con un taller que estableció el tono y la dirección de nuestro trabajo. Como mentor del equipo y homónimo de nuestro producto, Henrik nos empujó hacia nuevas direcciones y nos ayudó a dar forma al Coach Ágil con IA en lo que es hoy. Su influencia ha sido invaluable, y estamos agradecidos por su apoyo a lo largo del camino.

Aprendizaje:

Acércate y aprende de los expertos. Una perspectiva fresca de alguien experimentado puede abrir nuevos caminos que no habías considerado.

El video de Henrik sobre IA Generativa es una gran forma de empezar

8. El desafío del contenido: ¿qué le damos de comer a la IA?

Hemos pasado años creando y curando contenido en el que creemos, y ahora teníamos que descubrir cómo convertir eso en la base de nuestro coach de IA. No se trataba solo de volcar nuestros materiales en el sistema. Queríamos que nuestra IA fuera confiable, atractiva y genuinamente útil. Así que pasamos horas seleccionando y refinando los fragmentos de conocimiento adecuados, y asegurándonos de que la IA pudiera entenderlos y usarlos eficazmente.

Aprendizaje:

Invierte tiempo en curar tu contenido. Asegúrate de que sea preciso y refleje el tono y la voz para tu IA. Mejor contenido lleva a una IA más confiable.

9. Iterando la implementación del LLM: adaptar, adaptar, adaptar

Mejorar el coach de IA requirió múltiples iteraciones, cada una enseñándonos qué funcionaba y qué no:

1. Usando GPT personalizado dentro de ChatGPT:

Empezamos con GPTs personalizados dentro de ChatGPT. Era fácil—no se requería código. Sin embargo, rápidamente alcanzamos límites con el control y la calidad del output. También sabíamos que queríamos lanzar nuestro propio producto fuera del ecosistema de OpenAI con su propia marca y una conexión más directa con nuestros otros productos.

2. Interfaz personalizada con la API de Asistente:

Inicialmente construimos una interfaz personalizada usando la API de Asistente. Esto nos dio más control sobre qué documentos usaba la IA. Pero pronto encontramos limitaciones de escalabilidad y era difícil controlar qué partes del conocimiento personalizado se usaban para generar respuestas.

3. Interfaz personalizada con LangChain y Weaviate Vector DB:

Luego implementamos un Asistente personalizado usando LangChain y conocimiento de una base de datos vectorial Weaviate. Esta configuración nos permitió traer solo conocimiento relevante, mejorando la calidad. Los resultados fueron excelentes en la mayoría de los casos, pero a veces el Asistente se perdía en bucles infinitos o proporcionaba respuestas extrañas y poco naturales.

4. Agente LangChain:

Para contrarrestar estos problemas, implementamos un agente LangChain. Este enfoque bastante nuevo dio los mejores resultados hasta el momento. El agente puede decidir qué herramientas e información usar según la consulta del usuario y es más eficiente con su memoria de interacciones pasadas. Por ejemplo, si un usuario dice "Hola", el agente decide que no necesita buscar en su conocimiento especializado para simplemente saludar.

La contrapartida es que cedes algo de control porque el agente tiene más autonomía. Sin embargo, los beneficios de calidad y eficiencia mejoradas superan con creces esto. La librería de agentes de LangChain ofrece muchas opciones y configuraciones para ajustar el rendimiento del modelo.

5. Alguna nueva solución increíble.

Qué viene después de los agentes, aún no lo sabemos. Veamos...

Aprendizaje:

Si una configuración no funciona, no te aferres a ella. Sigue probando nuevas configuraciones y aprende de cada una. Nuevas soluciones surgen a diario en el panorama de la IA, así que manténte abierto y listo para adaptarte a las últimas herramientas y enfoques para mejorar tu producto.

10. Construir la app móvil: un salto de fe

Siempre supimos que necesitaríamos una app móvil, pero construir una parecía abrumador. Cuando Sohrab preguntó qué se necesitaría para crear una app, dudábamos. Las apps móviles son complejas, y nunca lo habíamos hecho antes. A pesar de que nuestra app web aún estaba en etapas tempranas con mucho por hacer, tenía sentido empezar la app móvil pronto. Al hacer funcionar la app con un conjunto limitado de funcionalidades, evitamos el riesgo de tener que ponernos al día después cuando el producto fuera más complejo. Además, nos dio una oportunidad temprana de aprender y adaptarnos.

Usando Expo y React Native, construimos versiones para iOS y Android en cuatro semanas. Presionar el botón "Enviar para revisión" fue bastante emocionante. Nos recordó dar el salto y ver dónde aterrizamos.

Aprendizaje:

Si los usuarios expresan una necesidad, da el salto. La curva de aprendizaje puede ser empinada, pero la experiencia práctica supera la planificación teórica. Frameworks como Expo y React Native funcionan bien para construir apps multiplataforma. En el pasado, las apps no nativas podían sentirse torpes o fuera de lugar, pero estos frameworks han evolucionado significativamente. Solo sacrificas un poco de la sensación nativa, y a cambio obtienes desarrollo rápido y mantenimiento más fácil entre plataformas.

11. Usar IA para construir IA: empoderar a todos

Una de las cosas más geniales fue usar IA para ayudar a construir nuestra IA. Configuramos diferentes GPTs para tareas específicas: uno para programar, otro para escribir, y así sucesivamente. Incluso yo, un diseñador con habilidades limitadas de programación, me encontré programando con la ayuda de Cursor, un editor de código con un asistente integrado. La IA se convirtió en un habilitador, permitiendo a todos contribuir de nuevas maneras.

Aprendizaje:

Usa la IA para mejorar tu proceso de desarrollo y construir herramientas especializadas. Como aprendimos de Henrik Kniberg: con cada tarea en tu lista, pregúntate: ¿Cómo puede la IA ayudarme con esto?

12. Mantener el toque humano

En un proyecto impulsado por IA, es fácil perder de vista el elemento humano. Así que hicimos un esfuerzo consciente para prevenirlo:

- El logo fue primero esbozado en un post-it.

- El código fue revisado manualmente, seleccionado y escrito.

- El copy de marketing fue primero escrito en papel—con un lápiz.

- Los emails a usuarios fueron escritos y enviados manualmente con un enfoque artesanal, sin pensar en escalado aún. (Consejo: No optimices para escala prematuramente)

Aprendizaje:

La IA es una herramienta poderosa, pero son los elementos humanos los que hacen que un producto se sienta genuino y cercano. Mantén el toque personal vivo en tu proyecto.

Bocetos tempranos de Henrik. Hechos por un humano.

13. Solo estamos empezando

Construimos mucho rápidamente, pero todavía lo estamos descubriendo. Cada día trae nuevos desafíos, lecciones e ideas para probar. Seguimos aprendiendo, iterando e intentando hacer algo que funcione.

Y eso está bien porque así es como siempre hemos operado. Vivimos según los principios que enseñamos: aprender rápido, adaptarse rápidamente y seguir avanzando.

Aprendizaje:

Mantén la curiosidad y la flexibilidad. Sigue probando suposiciones, abraza lo que aprendes y esté listo para cambiar de dirección.

Y no olvides divertirte en el camino.

---

Si quieres ver lo que hemos construido, únete a la lista de espera de nuestro coach de IA, Henrik, aquí. Si tienes preguntas, contáctanos. Siempre estamos dispuestos a charlar sobre nuestros aprendizajes.

Habla con nuestro Asistente Habla con nuestro Asistente