aim-to-pace.ai

Quería construir el Ferrari de los prompts. Y me salió un VW.

Promptear es fácil. Pero promptear a lo fácil, sencillamente, no basta. Y qué fácil de mejorar.

Original en Substack ↗ Lee aquí; dale like, comenta y suscríbete allí.

Eché a correr con una visión madura, el know-how y las ganas de trabajar con temas de IA a bordo. Con el impulso sano de querer entender las cosas y resolver problemas. Y con el impulso algo menos sano de querer perfeccionarlo todo, me enredé sin remedio.

Mi visión: un prompt que genera prompts.

No cualquier cosa del montón, sino máster-prompts de calidad. Prompts que usas una y otra vez o sobre los que puedes construir algo nuevo. Prompts que merecen entrar en un catálogo. Prompts fáciles de usar que hacen que la IA plantee las preguntas correctas y que son auténticos ayudantes del día a día o solucionadores especializados. Que puedes ensamblar como piezas de Lego para formar algo aún más grande.

Todo eso quería. No de inmediato, sí en el marco de una evolución de varios meses. Pero lo quería todo en un único prompt.

Pero el Nach fest kommt ab, und nach ab kommt Arbeit. también aplica en la informática.

Gemini se rindió y, desde aquella empresa, tengo con Claude un juramento meñique por escrito en todos nuestros proyectos: revisar conscientemente y con ojo crítico cualquier Verschlimmbesserung.

Pero empecemos por el principio. Promptear bien fue, es y seguirá siendo importante si quieres sacarle a un LLM los resultados realmente buenos. Es lógico, además: el prompt es la instrucción a la máquina. Antes había que programar de verdad y hablar en lenguajes de ordenador complicados y reales. Con la llegada de la IA, instrucción y datos se mezclan y vienen envueltos en lenguaje cotidiano de lo más normal, accesible para cualquiera.

Un mascullado «Quítale los errores al texto y ponlo en español» se ha convertido así en un comando de programación que funciona.

Y precisamente en esa sencillez hay un arma de doble filo. Porque cualquier prompt funciona y da resultados. No existe un prompt de verdad equivocado ni prompts obviamente malos. Pero aun así hay prompts malos y métodos para hacerlos mejores. Si quieres resultados sorprendentemente buenos, no te queda otra que optimizar un poco. O sea, al final: describir con más precisión lo que quieres.

Para seguir con el mini-ejemplo de antes: ¿Qué errores? ¿Solo gramaticales o también estilísticos? ¿Quieres que se te devuelva solo el texto en español, o también la versión alemana corregida? ¿Y quieres saber dónde estaban los errores o qué se ha cambiado en total?

Claro que, si no necesitas ni quieres saber todo eso, tampoco hace falta que lo digas. Pero casi siempre tienes una expectativa implícita, y se siente sistémicamente más injusto cuando quien la decepciona es una máquina. Con la IA tienes que hacer explícita tu expectativa, y encima ni siquiera hace falta que tengas en cuenta sentimientos humanos.

Y el resultado de la IA mejora todavía más cuando le das contexto y el cuadro completo, en lugar de las instrucciones sueltas «fuera errores» y «traduce al español».

Adornemos el ejemplo con algo concreto: Supongamos que en tu último viaje a España tuviste muy mala suerte. El hotel te cargó después y por error las tarjetas de crédito. Has reunido toda la información y quieres aclararlo directamente con el hotel. Con esa información y ese input, la IA puede ayudarte mucho más de lo que quizá te imaginas. Elaborar contigo el tono, la mejor manera de proceder a nivel psicológico y jurídico. Acompañarte y asesorarte de forma concreta en todo el proceso.

Así que el paso más importante es puro mindset por tu parte. Ni miniinstrucciones puntillosas, pero tampoco solo frases a medias, genéricas e inacabadas. Si alimentas bien a la IA, puede responder mejor de lo que crees.

Para eso necesita justo la información que a nosotros a menudo nos parece obvia y evidente, o que a ti te parece irrelevante, porque tú solo quieres que te traduzca el correo en vez de esperar o exigir más. Pero quien quiere más resultado también tiene que dar más información. Y esa información se saca —y con esto se cierra el círculo— mejor mediante un buen prompteo que tecleando sin más.

Pero volvamos a mi pequeña cruzada en busca del santo prompt.

Como esta nueva forma de interactuar con una máquina resulta poco habitual, y la inmensa mayoría todavía no ha aprendido a manejarla bien, existen muchas herramientas de ayuda. Y he probado muchas de ellas, porque quería resultados especialmente buenos de la IA, sabiendo o intuyendo lo que es capaz de hacer.

Todos esos generadores de prompts me parecen más bien malos y engorrosos. Tienes que rellenar pseudoformularios que, con mayor o menor cabeza, sueltan un prompt de aspecto bonito que nunca acaba de encajar y que siempre tengo que reajustar.

Todos esos gurú-máster-prompts o magic-prompts, ultrapulidos y altamente optimizados para hacer exactamente una cosa muy bien, suelen hacerla de verdad muy bien. Pero están construidos cada uno a su manera y desperdigados por todos los canales y páginas web imaginables, y exigen una disciplina casi de contable si no quieres andar buscándolos todo el rato.

Nos queda, pues, el buen y viejo trabajo manual. Patrones de prompt y recetarios de buenas prácticas. De esos hay a montones, así que a leer, a pensarlo y a aplicarlo. Pero, a la larga, eso también es una tontería. Tienes una IA que entiende de verdad el lenguaje coloquial, y entonces te toca meterte a martillazos la pirámide de Freytag como un niño en el colegio y recitar cinco actos en el orden correcto. El esquema por sí solo no hace un buen drama. La estructura es buena e importante, pero también mata un poco la diversión y el alma. Pero lamentarse no ayuda. La estructura ayuda, está demostrado. Con prompts claros y bien pensados los resultados son muchísimo mejores. Más reproducibles. Más reutilizables. Más ampliables. Más comunicables.

Haciendo cherry-picking, extraje de todos esos patrones los elementos que prácticamente todos tenían en común: descripción del rol, información de contexto, condiciones especiales y restricciones, descripción de la tarea y el formato de salida deseado. Luego les puse nombres internacionales y lo empaqueté en un formato de acrónimo pegadizo:

Assign-Inform-Modify-Task-Output (AIM-TO para abreviar)

Con eso despacho el 80% de mis casos de uso. Y cuando hace falta un poco más, puedo completarlo según convenga con unos cuantos bloques adicionales como Priority, Ask back, Chain of thought o Example (PACE para abreviar).

Ya tenía mi propio patrón de prompt. Nice. La mayor parte del valor añadido se gana de todas formas por el mero acto de estructurar. No es una obra maestra, pero sí un trabajo sólido. El acrónimo de talla mundial AIM-TO-PACE, que convertí en mi seña de identidad, cronológicamente llegó en realidad mucho después.

El problema: promptear según un patrón —cualquiera— funciona bien, pero es taaaaaan abuuuuurriiiiidooooo. Y estúpido. Tienes que darles forma a tus pensamientos. Con pensamientos largos y enrevesados eso llega a ser francamente laborioso. Y lento. Antes de terminar, casi siempre ya tengo ideas nuevas que en este montaje anti-brain-dump no consigo transmitir como es debido.

Si al menos tuviéramos algo que nos quitara de encima las tareas aburridas y estúpidas. Un siervo calculador. Y a poder ser uno que encima entienda mi ensalada mental original.

Claro, de eso que se encargue mi IA de cabecera. Las primeras 5-6 iteraciones pasaron volando; las tres primeras versiones completas fueron todas utilizables y cada una un poco mejor que la anterior.

El meta-prompt: el prompt que genera prompts estaba creado. Mi meta-prompt.

Y desde la versión nº 3 no he vuelto a meter a la fuerza un razonamiento largo en un patrón de prompt, ni a escribir o leer entero un prompt largo. Atrás quedaron los tiempos en los que, solo por quedar bien con una IA, le prompteaba con zalamerías dándole la razón como a los tontos. Que lo haga otro.

Pero yo quería más. Por supuesto, el meta-prompt mismo tenía que obedecer —por pura soberbia— al patrón AIM-TO. Y debía optimizar el formato de salida del prompt resultante. Un bonito rodeo mental. A partir de la petición, el prompt generado debía reconocer automáticamente si el usuario quiere el modo diálogo o directamente un resultado. Preguntar por los parámetros más importantes, pero entregar siempre además una salida lista para copiar, basada en suposiciones fundadas y reflejadas de vuelta. Y aún debía tener muchas más funciones. Tengo muchísimas ideas. Pero un prompt no es un programa de ordenador que se pueda —o se deba— ampliar a voluntad.

El meta-prompt se volvió más potente y más grande, pero con ello también más frágil y ya no ampliable de forma sensata. Cada optimización rompía otra cosa. Efectos secundarios por todas partes. Gemini, tras una sesión de mejoras de dos horas dando vueltas en círculo, opinó que así no llevaba a ningún sitio. Pues entonces le pregunté a Claude. Como no conocía todavía el meta-prompt, podía ponerse a optimizar sin vicios. Y lo hizo. Pero aquí bastaron pocas iteraciones para que también él dijera que era un callejón sin salida.

Claro que duele cuando le has metido tiempo y energía y luego, sin más, no avanza. Se siente como algo desperdiciado. Pero, por supuesto, no lo es. En estos meses he aprendido muchísimo. También he entendido por qué desde el principio fue una lucha contra molinos de viento. No se puede «programarlo todo» dentro de un prompt largo con la mentalidad de antes. Ahí hay problemas técnicamente insalvables.

Pero el principio es y sigue siendo bueno: un prompt que genera prompts de calidad. Siempre y en todas partes. Solo texto. Ninguna herramienta. Ni mil fuentes que haya que guardar o recordar. Algo que funciona en cualquier LLM al uso. Sin vendor lock-in que me encadene a un LLM o que solo funcione con la mejor versión de la IA.

Demasiado bueno como para dejarlo sin más. Lo bastante bueno como para empezar de cero por completo. Así que arrancar de forma radical desde 0, con objetivos y antiobjetivos estrechos y sencillos.

  • El meta-prompt no tiene por qué ser él mismo AIM-TO — el paso más duro para mí, pero también el más eficaz
  • Tiene que generar AIM-TO:
    • Estable
    • Robusto
    • Fácil de usar, pero sin florituras

Eso estuvo listo en una sola sesión. Tal como es en su forma actual. Así lo distribuyo. Y funciona conmigo, con amigos, conocidos y compañeros. La barrera de entrada está y sigue estando ahí, pero es baja. El escepticismo también está ahí. Pero quien supera esa primera barrera suele quedarse enganchado. Y el framework AIM-TO-PACE —es decir, patrón y meta-prompt combinados— tiene en realidad más ventajas de las que se ven a primera vista. El generador de prompts de bolsillo. Al prompt estructurado por la vía reglamentaria. Sí, eso también es aburrido, pero menos trabajo. Y lo mejor de todo. No tengo que hacerme un nudo en la lengua virtual. Tras una pequeña preparación puedo ponerme a promptear a la buena de Dios sin merma de calidad.

Los pensamientos vuelven a ser libres.

Espera, si yo tenía el prompt perfecto en algún historial de chat. ¿O me lo guardé en local? ¿O me lo mandé por correo? Ah no, ese lo vi en YouTube, es buenísimo. Lo busco un momento.

«Dosss horasss dessspués…» voz del narrador de Bob Esponja

Cuando la búsqueda tarda más que construir el prompt… Por suerte, esos tiempos se acabaron. Y desde entonces verschlimmbessern es mi palabra intraducible favorita.