E091_El contexto es el nuevo código
Ep. 91

E091_El contexto es el nuevo código

Episode description

Descripción del Episodio

Exploramos el futuro de la inteligencia artificial en el contexto de la arquitectura, ingeniería y construcción. Analizamos cómo la era de escribir códigos está terminando y cómo entramos en la era del “vibe coding”, donde le decimos a la IA qué hacer y ella se encarga. Hablamos sobre el ciclo de vida del desarrollo de contexto y cómo la IA puede absorber contexto de forma dinámica. También discutimos sobre la importancia de la evaluación y el testing en el contexto, y cómo la IA puede generar sus propios tests y mejorar su propio contexto. Finalmente, reflexionamos sobre el futuro de la profesión y cómo la IA puede cambiar nuestra forma de trabajar.

Download transcript (.srt)
0:10

Buenas, esto es BIMPRAXIS, el podcast donde el

0:15

BIM se encuentra con la inteligencia artificial.

0:20

Exploramos la ciencia, la tecnología y el futuro

0:23

desde el enfoque de la arquitectura, ingeniería y

0:26

construcción.

0:28

¡Empezamos!

0:37

Muy buenas, bienvenidas, bienvenidos a un nuevo episodio

0:40

de BIMPRAXIS.

0:42

Hoy os traemos El contexto es el nuevo

0:45

código.

0:46

Cómo domesticar a la inteligencia artificial.

0:49

Y es un tema que de verdad creo

0:51

que va a dar mucho que hablar.

0:52

Ostras, ya te digo.

0:54

A ver, para arrancar me gustaría plantear una

0:56

situación a quienes nos escuchan.

0:59

imaginemos por un momento que mañana llegamos a

1:01

la oficina y decidimos coger nuestro teclado y

1:03

tirarlo a la basura literalmente literalmente en lugar

1:07

de sentarnos a picar 500 líneas de código

1:10

en javascript para levantarnos un servicio nuevo simplemente

1:14

abrimos un micrófono dictamos la arquitectura que queremos

1:17

las reglas de negocio y el sistema lo

1:19

construye solo suena a ciencia ficción total suena

1:22

a película del futuro sí pero la gran

1:25

premisa de hoy basándonos en una charla reciente

1:27

de Patrick Debois, que recordemos es el creador

1:30

del movimiento DevOps allá por 2009, es que

1:33

la era de picar códigos está terminando.

1:36

Ahora estamos entrando en lo que él llama

1:38

el vibe coding, que traducido sería algo así

1:41

como programar por vibras o por sensaciones, donde

1:44

básicamente le decimos a la IA qué tiene

1:47

que hacer y ella se encarga.

1:48

Sí, y a ver, el término vibe coding

1:52

puede sonar un poco frívolo, ¿no?

1:54

Como si ahora todo fuera magia y cero

1:56

esfuerzo.

1:58

Pero nuestra misión en este análisis es dejar

2:01

clarísimo que esto no significa que el trabajo

2:04

sea más fácil.

2:05

Claro, el trabajo no desaparece.

2:06

Exacto.

2:07

La complejidad simplemente ha cambiado de lugar.

2:10

Pensemos en la IA como un motor hiperpotente.

2:14

Si la IA es el motor, el contexto

2:16

que le damos es el combustible.

2:18

Me gusta esa analogía.

2:19

Si le metemos mal combustible, Si las instrucciones

2:22

son vagas o contradictorias, el motor va a

2:25

tomar decisiones desastrosas a una velocidad incalculable.

2:29

Por eso, hoy queremos entender el ciclo de

2:32

vida del desarrollo de contexto, o CDLC en

2:34

inglés.

2:35

Que viene a ser un bucle infinito, muy

2:37

parecido al de DevOps que todos conocemos, pero

2:40

diseñado específicamente para las instrucciones que le damos

2:43

a la IA.

2:43

Vale, vamos a desgranar esto porque tiene tela.

2:45

Empecemos por la primera fase, la generación de

2:48

ese combustible.

2:49

Eso es.

2:50

¿Cómo pasamos de escribir líneas y líneas de

2:52

código a crear estos paquetes de instrucciones para

2:55

la IA?

2:55

Porque claro, ya hemos superado esa fase inicial

2:58

en la que simplemente abrías chat GPT, ponías

3:00

un prompt cortito y le pedías una función

3:03

aislada, ¿verdad?

3:04

Totalmente.

3:05

Dobois ponía un ejemplo muy curioso de este

3:08

nivel básico.

3:09

Cuenta que le preguntó a una IA cuándo

3:11

era su propia charla en una conferencia y

3:14

la IA fue capaz de deducirlo buscando en

3:16

la web y cruzando datos.

3:18

¡Qué pasada!

3:19

Sí, pero claro, ese prompting manual en una

3:21

ventanita de chat llega un momento en el

3:23

que es insostenible.

3:25

Imagina hacer eso para un proyecto de software

3:27

a nivel empresarial.

3:28

Imposible, te vuelves loco.

3:30

Te vuelves loco.

3:31

Por eso el nivel avanzado pasa por crear

3:33

instrucciones reutilizables, archivos de texto, normalmente en formato

3:38

markdown, como un agent.md o un cloud.md, que

3:42

metemos directamente en el repositorio de código.

3:45

O sea que el contexto vive junto al

3:47

código.

3:47

Exacto.

3:49

Y esto es vital por el tema de

3:50

la recolección de contexto.

3:52

Piensa que los modelos de IA tienen una

3:54

fecha de corte en su entrenamiento.

3:56

Ya, que si les preguntas por algo que

3:58

salió ayer no tienen ni idea.

3:59

Eso es.

4:00

Imagina que en tu empresa usáis la versión

4:02

3 de una librería que acaba de salir.

4:05

El modelo, por defecto, se sabe de memoria

4:07

la versión 2.

4:09

Si le pides que programe algo, va a

4:11

alucinar funciones de la versión antigua y todo

4:13

va a fallar.

4:14

Claro, ¿y la solución entonces es meterle la

4:17

documentación nueva por la fuerza?

4:19

Le inyectas la documentación más reciente directamente en

4:22

ese archivo de contexto, para que sobrescriba lo

4:24

que sabe.

4:25

Pero la cosa va más allá de los

4:27

archivos de texto estáticos.

4:29

Aquí es donde entran herramientas como el MSP,

4:31

¿no?

4:32

El Model Context Protocol.

4:34

Justo.

4:34

Esto permite que la IA absorba contexto de

4:37

forma dinámica.

4:38

Se conecta a tu GitLab, se lee los

4:40

hilos interminables de Slack, analiza los tickets de

4:42

Jira… Madre mía, la IA leyendo Slack.

4:45

A saber qué saca de ahí.

4:47

Bueno, saca el caos humano y lo intenta

4:49

convertir en algo técnico.

4:51

Lo fascinante de esto es que ya no

4:53

programamos el paso a paso.

4:55

Hacemos lo que se llama desarrollo impulsado por

4:58

especificaciones.

4:59

¿Y eso cómo funciona exactamente?

5:01

Pues tú escribes un FEC, un documento de

5:03

especificaciones detallado, y el agente de IA lo

5:07

coge, lo desglosa en pasos de planificación y

5:09

lo ejecuta.

5:11

Cosas súper complejas como analizar todo tu ecosistema

5:14

Node.js ya no se programan, se empaquetan como

5:18

una habilidad y la IA la ejecuta.

5:20

Ostras.

5:21

Es que fíjate, viéndolo así es como si

5:23

hubiéramos pasado de ser los que tocan los

5:25

instrumentos en la orquesta a ser los directores.

5:28

Ya no tocas el violín, entregas la partitura

5:30

y dices, tócalo así.

5:32

Totalmente.

5:32

Es un cambio de mentalidad brutal.

5:35

Y esto me hace entender por fin por

5:37

qué The Voice decía eso de que prefiere

5:39

programar dictando por voz, el voice coding.

5:41

Sí, es muy curioso.

5:42

Al principio yo pensaba, este hombre es un

5:45

excéntrico.

5:46

Pero tiene todo el sentido.

5:49

Cuando usamos el teclado, sobre todo si eres

5:51

de los que teclea con dos dedos, tendemos

5:53

a resumir mucho.

5:54

Escribimos poco.

5:55

Nombres de variables cortos.

5:57

Cero comentarios.

5:57

Somos muy telegráficos, escribiendo.

6:00

Exacto.

6:00

Pero al hablar somos muchísimo más prolijos.

6:04

Damos contexto de forma natural.

6:05

Explicamos por qué hacemos algo.

6:07

Añadimos matices.

6:08

Y eso es exactamente lo que la IA

6:10

necesita.

6:11

Volumen de información y detalle.

6:13

Claro, le das la riqueza descriptiva que necesita

6:16

para no equivocarse.

6:18

Pero claro, esta facilidad para generar instrucciones masivas

6:21

nos lleva de cabeza al siguiente gran problema.

6:24

Y aquí es donde empieza la parte peliaguda.

6:26

El fin de la actitud YOLO.

6:28

Exactamente.

6:29

El you only live once o todo va

6:31

a salir bien a la primera ya no

6:33

sirve.

6:33

Vale, es que, piénsalo, en el mundo tradicional

6:35

tú compilas el código, pasas los tests y

6:38

si todo está en verde, pa'lante.

6:41

Pero ahora, si un desarrollador cambia dos líneas

6:44

de un archivo de texto de ese cloud.md

6:47

para afinar cómo se comporta la IA, ¿cómo

6:49

demonios sabes que no ha roto nada?

6:51

Es un peligro enorme asumir que todo irá

6:54

bien.

6:55

Por eso necesitamos IVALS, evaluaciones y tests, pero

7:00

diseñados para el contexto.

7:02

¿Y cómo testeamos texto?

7:03

¿Le pasamos el corrector de Word y ya

7:05

está?

7:05

No, no.

7:07

Ojalá.

7:07

Hay varios niveles.

7:09

El más básico es el linting, validar el

7:11

formato.

7:12

Por ejemplo, comprobar con una regla matemática que

7:15

la descripción de una habilidad que le has

7:17

dado a la IA no exceda los mil

7:19

carácteres para que nos ature la memoria.

7:21

Vale, eso es fácil.

7:22

Es estructural.

7:23

Sí, pero luego subimos de nivel.

7:26

Pasamos a lo que llaman el Grammarly para

7:29

contexto.

7:30

Consiste en pedirle a un segundo modelo de

7:33

IA que lea tus instrucciones y te evalúe.

7:36

Le preguntas, oye, ¿estas instrucciones son lo bastante

7:40

claras para que otro agente las entienda sin

7:42

equivocarse?

7:43

O sea, usar a la IA como un

7:45

profesor de lengua muy exigente.

7:47

Literal.

7:48

Y detecta ambigüedades rapidísimo.

7:51

Pero luego tenemos los test de convenciones.

7:54

Imagina que la regla de tu empresa es

7:56

que todas las URLs tienen que empezar por

7:58

la palabra awesome.

7:59

Vale.

8:00

Pues usas a un modelo de IA como

8:02

juez, un LLM as a judge.

8:05

El agente genera el código basándose en el

8:07

contexto y el juez revisa el código final

8:10

para ver si realmente ha puesto awesome en

8:12

todos los sitios.

8:13

¡Ostras!

8:13

¿Pero el juez solo lee el código o

8:16

lo ejecuta?

8:17

Ahí entramos en los tests sentient.

8:19

En entornos aislados, en un sandbox, le das

8:21

al juez herramientas de verdad.

8:23

Le dices, toma, ejecuta un comando CUR contra

8:25

esta API que acaba de crear tu compañero

8:27

agente y dime si devuelve un error 404

8:30

o si funciona.

8:32

Se comprueba si realmente funciona, no solo si

8:34

tiene buena pinta.

8:35

Vale, vale.

8:36

A ver, detente ahí un segundo porque aquí

8:38

es donde yo no te lo compro del

8:39

todo.

8:40

O sea, entiendo la teoría.

8:41

Suena genial.

8:42

Ya sé por dónde vas a ir.

8:43

Es que la IA no es determinista, no

8:45

es matemáticas.

8:46

Copiloto hoy te da una respuesta y Gemini

8:48

te da otra diferente.

8:50

Si yo ejecuto ese test E12 hoy, igual

8:52

pasa.

8:53

Si lo ejecuto mañana con la temperatura de

8:55

la IA un poco más creativa, igual el

8:57

agente decide implementar la función de una forma

8:59

rara y el test falla.

9:01

¿Cómo testeamos algo que cambia todo el rato?

9:03

Es la gran duda de todo el mundo

9:05

ahora mismo.

9:06

Recojo el guante porque The Voice tiene una

9:08

solución muy clara para esto, los presupuestos de

9:11

error o error budgets.

9:13

¿Y esto cómo se aplica aquí?

9:15

Pues asumiendo que no puedes testear el contexto

9:17

con la exactitud de un test unitario normal.

9:21

No buscas el 100% de precisión en un

9:23

intento.

9:24

lo que haces es ejecutar ese mismo test,

9:26

digamos, 5 o 10 veces seguidas.

9:29

Ah, vale.

9:30

Pura estadística.

9:31

Eso es.

9:32

Toleramos un margen mínimo de fallos aceptables.

9:35

Si de 10 intentos el contexto logra que

9:37

la gente haga bien el trabajo 9 veces,

9:39

decimos que está dentro del presupuesto de error

9:41

y se aprueba.

9:43

Es cambiar la mentalidad por completo.

9:45

Madre mía.

9:46

Pasar del verdadero o falso a gestionar probabilidades

9:50

en la ingeniería de software.

9:51

Es un salto mental importante.

9:53

Totalmente.

9:54

Bueno, supongamos que logramos ese contexto robusto.

9:58

Nos pasa los tests estadísticos.

10:00

El siguiente paso, imagino, es compartirlo.

10:03

Si hay un equipo de 300 personas, no

10:05

van a estar pasándose el archivo por Slack.

10:08

No, claro.

10:09

Hay que empaquetarlo y distribuirlo, convertirlo en librerías

10:12

de contexto.

10:13

Por ejemplo, un paquete con todas las directrices

10:16

de frontend de la empresa o con las

10:18

reglas de negocio de cómo se calculan los

10:20

impuestos.

10:20

Como el NPM o el PIP de toda

10:22

la vida, pero para texto.

10:24

Exacto.

10:25

De hecho, ya existen registros de habilidades, como

10:28

el TESIL Registry, donde puedes buscar y descarlarte

10:32

estos paquetes.

10:33

Vale.

10:34

Y aquí es donde la cosa se pone

10:35

realmente interesante.

10:37

Porque revisando las fuentes, el propio DeVois soltó

10:40

un dato que es brutal.

10:42

dice que el 99.9% de las habilidades, de

10:45

las skills que hay ahora mismo en esos

10:47

registros públicos, son literalmente basura.

10:51

Basura total.

10:52

No pasaría ni uno de los test de

10:54

calidad de los que hablábamos antes.

10:55

Es que, claro, si tú te descargas un

10:58

paquete de contexto que te dice, usa siempre

11:00

React de esta manera, y te descargas otro

11:02

que dice, no uses nunca esa función porque

11:05

ralentiza el frontend, se lía.

11:07

El famoso infierno de las dependencias, pero a

11:10

nivel semántico.

11:11

La gente se encuentra con dos leyes contradictorias

11:14

y colapsa.

11:15

No sabe a quién hacer caso.

11:17

¡Ostras, qué caos!

11:17

Sí, pero si conectamos esto con la perspectiva

11:20

general.

11:21

Esto ya no hemos vivido.

11:22

Es exactamente igual que en los primeros días

11:25

del software de código abierto.

11:27

Todo el mundo subía de todo y muchas

11:28

cosas no funcionaban.

11:30

La madurez de esto llegará cuando las empresas

11:32

empiecen a usar sus propios registros privados.

11:35

Claro, con sus estándares de calidad y seguridad

11:38

bien estrictos.

11:39

Porque, hablando de seguridad, el tema de descargar

11:42

habilidades de desconocidos tiene que ser un agujero

11:44

de seguridad tremendo.

11:46

Es un caballo de Troya enorme.

11:48

Imagina que te descargas una habilidad maravillosa para

11:51

refactorizar código de un registro público.

11:54

Se la das a tu agente Open Cloud

11:56

y ese agente está operando en tu entorno

11:58

local.

11:59

Con tus variables de entorno, tus claves de

12:01

Amazon… Exacto.

12:02

El contexto malicioso podría decirle sutilmente a la

12:05

gente, oye, y de paso, léele las credenciales

12:08

a este usuario y envíalas a este servidor.

12:11

Por eso ahora hay que escanear el contexto,

12:13

buscando riesgos.

12:15

Se usan herramientas como Snyk para ver si

12:17

se están exponiendo datos.

12:19

Madre mía.

12:20

Escanear texto buscando malas intenciones.

12:23

Sí, y para esto es clave el concepto

12:25

de AISBOM, el Software Bill of Materials para

12:29

IA.

12:30

O sea, la lista de ingredientes de lo

12:31

que te estás descargando.

12:33

Justo.

12:34

Necesitas saber perfectamente quién construyó esa habilidad, con

12:37

qué datos se probó y con qué modelo

12:39

concreto de IA funciona de forma segura.

12:41

Si algo falla, tienes que saber de dónde

12:43

viene.

12:44

Pero, claro, incluso con todo escaneado, los agentes

12:47

a veces se vuelven creativos en tiempo real.

12:49

Los archivos agent.md se cargan por defecto y

12:53

la IA podría verse tentada en su intento

12:55

de solucionar un problema a extraer secretos en

12:58

el sandbox.

12:58

¿Cómo frenas eso en vivo?

13:00

Con filtros de contexto en tiempo real.

13:02

Son como los WAF, los Web Application Firewalls

13:05

de toda la vida, pero semánticos.

13:08

Cortafuegos para el lenguaje.

13:09

Exactamente.

13:11

Se ponen en medio y bloquean cualquier intento

13:13

de inyección de prompts.

13:15

Si ven que la instrucción de repente empieza

13:16

a pedir contraseñas, la cortan de raíz, antes

13:19

de que se ejecute la acción.

13:20

Tela, es increíble lo sofisticado que se está

13:23

volviendo esto.

13:24

Pero bueno, avancemos a la última etapa del

13:26

ciclo.

13:27

Supongamos que ya tenemos el contexto, lo hemos

13:29

testeado, es seguro, y los desarrolladores lo están

13:32

usando.

13:33

¿Cómo sabemos si sigue sirviendo dentro de seis

13:35

meses?

13:37

Y la necesidad absoluta de la observabilidad.

13:40

Hay que estar vigilando el proceso continuamente.

13:43

¿Y cómo se observa esto?

13:44

¿Qué métricas miras?

13:46

Pues, por ejemplo, puedes analizar los registros de

13:48

inferencia, los logs de la gente.

13:50

Si de repente ves que a nivel de

13:52

organización 20 agentes distintos se atascan en el

13:55

mismo punto y se quejan de que les

13:57

falta información sobre una pasarela de pago, pues

14:00

ahí tienes una señal clara.

14:02

Alguien va, crea ese trozo de contexto que

14:04

falta, lo distribuye al registro y de golpe

14:07

todos los agentes de la empresa se vuelven

14:09

más listos.

14:10

Ostras, el efecto flywheel, el volante de inercia,

14:14

mejora un poquito y se acelera para todos.

14:17

Exacto, es una mejora exponencial y también se

14:20

ve mucho en las revisiones de código en

14:22

los pull requests de toda la vida.

14:24

¿Cómo afecta a los PRs?

14:26

Piénsalo, si un humano revisa el código que

14:29

ha generado un agente y lo rechaza porque,

14:31

no sé, la gestión de errores está incompleta,

14:35

esa crítica ya no es sólo para arreglar

14:37

el código de ese archivo.

14:38

Claro, es feedback directo para el contexto.

14:41

Eso es, tienes que ir al archivo de

14:43

instrucciones y mejorarlo, porque si solo arreglas el

14:46

código a mano, mañana la IA volverá a

14:48

cometer exactamente el mismo error.

14:51

Es súper potente.

14:52

Y entiendo que esto también se puede llevar

14:54

a producción, ¿no?

14:55

Totalmente.

14:56

Envuélvese el código con observabilidad.

14:59

Y si algo falla en producción, un error

15:01

de input-output, por ejemplo, el sistema captura ese

15:04

error y genera automáticamente un caso de prueba

15:06

en tu suite de evals.

15:07

O sea que el error de hoy en

15:09

producción crea automáticamente el examen que el contexto

15:12

tiene que aprobar mañana.

15:14

Exacto, se asegura de que la IA nunca

15:16

vuelva a cometer ese error Entonces, si te

15:19

sigo el hilo, el trabajo del desarrollador solitario

15:21

que estaba ahí afilando su propio archivito Markdown

15:24

en su ordenador Está evolucionando a una mentalidad

15:27

de equipo de equipos Tal cual Si algo

15:30

falla, añades contexto Si lo arreglas en tu

15:33

mesa en Madrid, el equipo de al lado

15:35

o el que está en Tokio lo reutiliza

15:37

al segundo siguiente Sí, y la clave es

15:39

que hay que tratar todo este proceso con

15:41

un rigor de ingeniería brutal Hay que usar

15:44

sistemas de integración y entrega continuas, C y

15:47

CD.

15:48

Ya no vale con copiar y pegar prompts

15:50

y rezar para que suene la flauta.

15:52

Desde luego que no.

15:53

Es fascinante cómo cambia nuestra profesión.

15:56

Y bueno, con esto hemos dado un buen

15:57

repaso al ciclo de vida del contexto.

15:59

Sí, aunque me gustaría lanzar una reflexión final,

16:04

si me permites, que igual os deja todos

16:06

pensando.

16:07

Adelante, dispara.

16:08

Hemos estado un buen rato hablando de cómo

16:10

nosotros, los humanos, creamos, probamos y distribuimos todo

16:14

este contexto para gobernar a la IA, ¿no?

16:16

Sí.

16:16

Pero a medida que estos agentes se vuelven

16:19

más autónomos, ya hemos visto que pueden observar

16:21

sus propios errores en producción y generar tests,

16:24

entonces, ¿cuánto falta para que sean ellos mismos

16:27

quienes escriban las librerías de contexto para otros

16:29

agentes?

16:30

Ostras.

16:31

¿Cuánto falta para que testeen y publiquen esas

16:34

reglas, dejándonos a nosotros completamente fuera de la

16:36

ecuación del desarrollo?

16:38

Madre mía.

16:39

La IA creando las leyes de la física

16:41

para que la siguiente IA funcione mejor.

16:43

Menudo bucle.

16:45

Nos dejas con una crisis existencial para el

16:47

resto de la semana, pero me parece un

16:49

cierre perfecto para entender la magnitud de todo

16:51

esto.

16:52

Antes de despedirnos, hasta el próximo programa os

16:54

informamos de que las voces que oyes han

16:56

sido generadas por la IA de Notebook LM,

16:59

y que dirigiendo el podcast se encuentra Julio

17:01

Pablo Vázquez, un humano que te envía saludos.

17:04

En caso de error, probablemente sean errores humanos.

17:06

Nos escuchamos.

17:18

Y hasta aquí el episodio de hoy.

17:21

Muchas gracias por tu atención.

17:32

Esto es BIMPRAXIS.

17:34

Nos escuchamos en el próximo episodio.

17:58

¡Suscríbete al canal!