Sesión comunitaria: AMA sobre el SDK de Chat

VVercel
Computing/SoftwareSmall Business/StartupsInternet Technology

Transcript

00:00:00Hola a todos.
00:00:19Bienvenidos a otra sesión de la comunidad Vercel.
00:00:22Esta semana me acompañan Malte y Matt, y solo quiero recordarles a todos, si están
00:00:27participando en el chat, por favor sigan el código de conducta, pero estamos abiertos a todas y
00:00:31cada una de las preguntas sobre el Chat SDK.
00:00:34Bienvenidos, chicos.
00:00:35Genial.
00:00:36Gracias por invitarnos.
00:00:37Hola a todos.
00:00:38Soy Matt.
00:00:39Hoy me acompaña Malte, y vamos a hablar de todo lo relacionado con el Chat SDK.
00:00:45Si no están familiarizados con él, es una biblioteca TypeScript abierta que hemos creado para que
00:00:50puedan llevar a su agente a sus usuarios sin importar la plataforma en la que estén.
00:00:55Y para empezar, quiero escuchar la historia de su origen.
00:00:58¿De dónde surgió todo esto?
00:01:00Sí.
00:01:01Hola de nuevo, mi nombre es Malte.
00:01:03Soy el CTO de Vercel, pero también el autor del Chat SDK.
00:01:07Así que hoy estoy en ese papel.
00:01:11No hagan preguntas estratégicas.
00:01:14La historia del origen del Chat SDK se gestó esencialmente durante todo el 2025.
00:01:23Estábamos invirtiendo cada vez más, especialmente en bots de Slack.
00:01:26Y siempre surgía la pregunta: ¿podemos llevar esto a otras plataformas además de Slack?
00:01:32Y la respuesta final siempre era no, porque supondría bastante trabajo y solo algo de
00:01:39valor incremental.
00:01:40Y además, no lo hacíamos nosotros mismos, lo cual sería mucho más difícil.
00:01:44Así que nunca lo hicimos realmente.
00:01:46Y mientras analizaba estas aplicaciones, siempre pensaba: ¿podemos encontrar una buena manera de
00:01:53construir esto de una sola vez?
00:01:57Pero luego miraba todas estas API y me daba mucho, mucho miedo construir sobre ellas
00:02:04porque parecían tan desalentadoras y multifacéticas.
00:02:10Ahora, adelantándonos al final del año pasado, salió Opus 4.5 y pensé: este
00:02:16es mi momento.
00:02:17Y eran las vacaciones.
00:02:18Eran las vacaciones.
00:02:19Sí.
00:02:20Y yo diciendo: Hey, Malte, ¿cómo se ve esto?
00:02:23¿Cómo vamos a hacer esto?
00:02:25Y volviste no con una respuesta, sino con una biblioteca real para responder a mi pregunta.
00:02:31Sí.
00:02:32Sí.
00:02:33Así que estuve trasteando.
00:02:37Y lo cierto sobre este tipo de cosas es que sigue siendo muy doloroso construir
00:02:43porque hay API reales y no están realmente en los datos de entrenamiento.
00:02:46Así que todavía tienes que investigar mucho para resolver las cosas.
00:02:50Al menos, la mayoría del trabajo se pudo simplificar.
00:02:55Y sí, decidí intentarlo y durante las vacaciones construí la versión inicial
00:03:01del Chat SDK.
00:03:02Nos tomó otro mes aproximadamente tenerlo listo para lanzar.
00:03:07Pero esa es la historia del origen.
00:03:08Así que creo que era obvio que esto se necesitaba, pero también era demasiado desalentador construirlo.
00:03:12Y luego la IA nos ayudó a dar el paso final.
00:03:15Sí.
00:03:16Todos en Vercel son constructores.
00:03:17Así que Amy, ¿quieres empezar con nuestra primera pregunta?
00:03:20Sí.
00:03:21Sabes, cada vez que tenemos un nuevo proyecto de código abierto, creo que una de las preguntas más comunes
00:03:26que veo es: ¿qué tan abierto es?
00:03:29¿Está esto bloqueado solo para Vercel?
00:03:32¿Necesitamos usar la infraestructura de IA de Vercel o puedo usarlo en cualquier lugar?
00:03:37Definitivamente.
00:03:38Creo que, especialmente con el Chat SDK, es solo una biblioteca de TypeScript y ni siquiera está
00:03:44atada a un framework de front-end o back-end.
00:03:48Puedes usarlo en cualquier aplicación de JavaScript.
00:03:53Puedes alojarlo en cualquier lugar donde puedas alojar JavaScript.
00:03:55Puedes usar el Chat SDK y no está atado a ninguna otra primitiva de la nube más
00:04:03que solo una función serverless para manejar un evento de webhook.
00:04:07¿Qué piensas, Malte?
00:04:08Sí, exactamente.
00:04:09Ni siquiera la función serverless, ¿verdad?
00:04:10Es literalmente, es realmente solo una biblioteca.
00:04:13Es como React, ya sabes, puedes usarlo donde quieras,
00:04:19no está atado de ninguna manera a la estructura.
00:04:23Puedes pensar en ello, el Chat SDK no es el agente.
00:04:27Es solo la capa para tomar un evento de webhook y darle el contexto a un agente que has
00:04:33construido con cualquier framework que hayas elegido.
00:04:38Y creo que un gran ejemplo de esto es que, recientemente, construimos la primera
00:04:42versión del adaptador de Teams y ahora el equipo de Microsoft Teams ha tomado la propiedad de eso también.
00:04:52Sí, eso es correcto.
00:04:53De hecho, me sentí súper, súper bendecido por esto porque, quiero decir, sí, estaba luchando
00:05:00para que Teams funcionara y no solo tomaron el mantenimiento, sino que reescribieron el
00:05:05adaptador porque actualmente lanzaron una nueva API y esencialmente portaron la implementación
00:05:13existente a la nueva API, lo que creo que es una victoria para ellos.
00:05:15Así que obtienen distribución en la nueva API, con suerte menos usuarios que lo viejo.
00:05:20Y quiero decir, lo apreciamos mucho porque requiere bastante esfuerzo conseguir que esto
00:05:25sea genial en cada plataforma que soportamos.
00:05:27Y una gran victoria para los desarrolladores porque no tuvieron que aprender la nueva API de Microsoft Teams,
00:05:32pero su aplicación o agente ahora se beneficia del nuevo adaptador.
00:05:37No se necesitan cambios de código allí.
00:05:38Sí.
00:05:39Y esto es completamente retrocompatible.
00:05:41Así que no tienes que hacer nada en absoluto, excepto actualizar el Chat SDK y puedes aprovechar
00:05:47la nueva API.
00:05:48Y, ya sabes, tal vez tuvieron algunos casos extremos o lo que sea, ya sabes,
00:05:51como son el equipo real de Teams, saben mejor cómo usar su API.
00:05:56Pero como usuario de Chat SDK, no necesariamente necesitas saber esto.
00:06:00Por cierto, es algo que creo que uno de los valores del Chat SDK es obviamente que está
00:06:05destinado a ser utilizado de esta manera multiplataforma.
00:06:08Pero en realidad no me sorprendería si la mayoría de los usuarios no lo usan de esa manera.
00:06:11Simplemente lo usan para una plataforma a la vez.
00:06:16Pero, ya sabes, todas estas API son a menudo, están un poco, están mal
00:06:23documentadas o no fueron diseñadas para ser utilizadas de una manera idiomática en un ecosistema
00:06:28TypeScript.
00:06:29Así que la gente simplemente tiene un tiempo más fácil usando el Chat SDK, incluso si es solo para uno
00:06:35de los adaptadores.
00:06:36Sí.
00:06:37Y eso es lo que hicimos con v0.
00:06:38Construimos v0 para Slack con el Chat SDK.
00:06:41Y creo que la mejor parte es que si decidimos ir a otra plataforma, es un esfuerzo de ingeniería muy fácil
00:06:47para ir a esa nueva plataforma.
00:06:51La siguiente pregunta que escucho mucho, y luego iremos al chat en vivo, JSX.
00:06:56Así que construí muchos agentes de Slack antes del Chat SDK y tenía que usar BlockKit y estaba acostumbrado
00:07:04a React y me encanta JSX.
00:07:06Y ese fue probablemente uno de los mayores beneficios y algo que me entusiasmaba mucho con el Chat
00:07:11SDK era traer JSX.
00:07:13¿Así que cómo fue eso?
00:07:15Sí, creo que la evolución del Chat SDK fue eso.
00:07:22Obviamente quería tener soporte para elementos interactivos, así que primero estaba pensando en
00:07:28cómo abstraer esto correctamente dentro del Chat SDK.
00:07:36Y las dos cosas que estaban pasando por mi mente eran que, en primer lugar, debería
00:07:42haber un gran soporte para markdown porque obviamente el Chat SDK se puede usar para aplicaciones que no son de IA,
00:07:48pero realmente está destinado a ser usado de esta manera donde lo conectas a un agente.
00:07:53Así que para eso, markdown era muy importante.
00:07:55Y la otra cosa era que quería que un desarrollador de TypeScript tuviera una muy buena experiencia.
00:08:01Así que la idea era esencialmente decir: okay, tenemos esta representación interna de
00:08:08la interfaz de usuario que se puede renderizar en los diferentes chatbots.
00:08:16Y luego mapear esa representación intermedia a las API subyacentes, como BlockKit.
00:08:22Y luego tener, por otro lado, esencialmente, entre comillas, front-ends, que son la representación
00:08:30que tú como ingeniero usas.
00:08:32Y reutilizables.
00:08:33Eso podría ser markdown, por ejemplo.
00:08:35Analizas el markdown a un AST, luego lo renderizas a BlockKit, o tienes el JSX,
00:08:42que está más o menos mapeado directamente a la representación intermedia.
00:08:47Y tal vez para las personas que tampoco saben cómo funciona JSX, entonces JSX es esencialmente azúcar sintáctico
00:08:55para una llamada de función.
00:08:58Y esta llamada de función es una llamada de función create element, que toma como primer argumento
00:09:03el nombre del elemento y luego los props atrás.
00:09:07Y esto es un H1, H2, párrafo.
00:09:10Exactamente.
00:09:11Esto es H4, ¿verdad?
00:09:12Pero en realidad, puedes hacer lo que quieras, ¿verdad?
00:09:17Porque es solo una llamada de función.
00:09:18Y así puedes sobrescribir esa función create element para que sea lo que quieras, incluyendo
00:09:28crear los elementos a partir de la representación intermedia del Chat SDK.
00:09:33Lo único que realmente hace que esto sea algo complicado de construir es que se supone
00:09:37que debe funcionar dentro de aplicaciones de React existentes.
00:09:41Y debido a que JSX no es una cosa de espacio de nombres, no lo importas de ninguna manera, ¿verdad?
00:09:47Tienes que asegurarte de no romper, por ejemplo, Next.js o Remix, ¿verdad?
00:09:55Pero luego también se supone que debe usarse en aplicaciones que podrían no tener idea de qué es React y qué
00:09:59es JSX.
00:10:00Así que soporta ambos casos.
00:10:02Tanto funciona bien con aplicaciones de JSX existentes como introduce JSX como sintaxis donde eso
00:10:08aún no está soportado.
00:10:11Si pudiera desafiar a la comunidad, me encantaría ver Shad CN para plataformas de chat con
00:10:18JSX.
00:10:20Eso es algo que sé que alguien por ahí probablemente ya está construyendo y no puedo esperar
00:10:24a ver eso.
00:10:27Y primera pregunta de la comunidad: ¿qué casos extremos específicos de plataforma debemos
00:10:34tener en cuenta los desarrolladores al implementar el SDK?
00:10:37Y creo que esta es una gran pregunta con JSX también porque el BlockKit de Slack tiene mucha
00:10:44interfaz de usuario interactiva rica y otras plataformas no tienen el mismo renderizado nativo.
00:10:52Y sé que cuando construimos esto, soportamos muy buenas alternativas.
00:10:57Así que si usas el Chat SDK de una manera que otra plataforma podría no soportar, hemos creado
00:11:04increíbles valores predeterminados y alternativas para ti como desarrollador.
00:11:08Sí, exactamente.
00:11:10Así que creo que hay múltiples elementos, ¿verdad?
00:11:13Uno de ellos es la capa de renderizado.
00:11:16Creo que en realidad la diferencia más marcada es que originalmente el Chat SDK fue diseñado
00:11:23para plataformas que tienen hilos.
00:11:28Ahora, obviamente, incluso dentro de ellas, no todo el mundo usa esos hilos, ¿verdad?
00:11:33Y por lo tanto, tienes que considerar eso un poco, pero fue muy diseñado
00:11:37para ser utilizado de esa manera.
00:11:39Pero luego la gente realmente quería WhatsApp y Telegram y probablemente añadiremos iMessage y
00:11:43todo lo demás en el futuro.
00:11:46Y así, para ese mundo, tienes que entender que hay diferentes paradigmas de uso de
00:11:55una aplicación de chat y esto no puede abstraerse correctamente en la capa del Chat SDK porque, de nuevo, tienes
00:12:01que soportar ambos, ¿verdad?
00:12:05Así que si trabajas en WhatsApp, tienes que entender que estos tipos de mensajes son más o menos
00:12:11libres de contexto.
00:12:14Eso es una cosa.
00:12:15Y entonces, un Chat SDK en general no pretende favorecer completamente las diferencias generales.
00:12:21Y luego en la interfaz de usuario, definitivamente es el caso en el que intentaba tener una alternativa para que
00:12:26puedas escribir el mismo código y que tenga sentido en todas partes.
00:12:31Y creo que en la práctica, funciona muy bien, ¿verdad?
00:12:37Como en la práctica, las cosas que realmente quieres que sean compatibles están bien soportadas
00:12:43y así que creo que hasta cierto punto, tendrás que hacer pruebas manuales y ver si todo
00:12:50funciona como quieres, pero realmente no hemos visto un caso en el que la gente
00:12:57esté realmente luchando con el lado multiplataforma.
00:12:59Y también es un gran caso para el código abierto porque la comunidad nos ayudará a mostrar lo que
00:13:04en la práctica significa realmente.
00:13:06Exactamente.
00:13:07Así que creo que encontrarás problemas aquí y allá, por favor infórmalos y los arreglaremos.
00:13:15Sí.
00:13:16Nuestra siguiente pregunta.
00:13:18Parece que el Chat SDK, al ser ligero y agnóstico a la pila en sus paradigmas, está separando
00:13:24el chat del resto del arnés del agente.
00:13:28¿Ves un futuro donde con los avances en otras modalidades, sea posible algo como el video
00:13:34Chat SDK?
00:13:36Pregunta bastante interesante.
00:13:38Empezaré diciendo que tienes razón y esto es algo que he tenido que repetir un par
00:13:45el SDK de chat no es el SDK de IA y el SDK de IA no es el SDK de chat.
00:13:51El SDK de IA les ayuda a crear agentes.
00:13:55El SDK de chat les ayuda a llevar ese agente a múltiples plataformas.
00:13:59Así que es un tipo de paradigma ligero y agnóstico a la tecnología.
00:14:05¿Qué opinan del SDK de chat de video?
00:14:09Creo que es realmente interesante.
00:14:13Creo que antes de tener un SDK de chat de video, tendremos un SDK de chat de audio.
00:14:19Y normalmente mi opinión es que solo añades abstracciones como el SDK de chat, que hacen que crear una clasificación
00:14:31sea realmente agradable después de haberlo hecho un par de veces.
00:14:36Nunca hemos creado un chat de video.
00:14:38De hecho, tengo que pensarlo bien.
00:14:44Aún no es el momento.
00:14:45Y especialmente porque hay que estar muy cerca del metal.
00:14:50En realidad, veo la mayoría de los desafíos para algo así en la comunicación con los modelos de IA
00:14:55y no tanto en la comunicación con el front-end, el usuario que se está comunicando
00:15:02en tiempo real.
00:15:03Genial.
00:15:04Bien.
00:15:05¿Puedo entrenarlo con Opus 4.6 con respuestas predeterminadas y luego hacer que produzca
00:15:11respuestas gratis sin costo alguno?
00:15:13Así que creo que esta pregunta destaca, ya sabes, qué es el SDK de chat y qué no es.
00:15:20Y nunca entrenarías el SDK de chat.
00:15:24No tienes que escribir prompts para que el SDK de chat cree sus respuestas.
00:15:30Para eso están el SDK de IA u otros marcos de trabajo de agentes.
00:15:36Y, por lo tanto, el marco de trabajo del agente es donde escribes herramientas, escribes prompts, creas flujos de trabajo
00:15:44y el SDK de chat es solo la capa entre la plataforma y tu agente.
00:15:51Así que espero que eso ayude a responder a eso.
00:15:54La siguiente, de YouTube, ¿se puede usar el SDK de chat para rastrear y administrar funcionalidades entre
00:16:00Slack y JIRA?
00:16:02Sí, esta es una muy buena pregunta.
00:16:04Como JIRA está aquí, tenemos un adaptador para Linear.
00:16:09No tenemos un adaptador para JIRA ahora mismo.
00:16:11No me opondría a añadirlo.
00:16:13Hola comunidad.
00:16:14Pero lo que sí quiero añadir es que, porque también hubo algunas preguntas sobre Linear y
00:16:20GitHub, que está en una línea similar, el SDK de chat es para chatear.
00:16:28Y Linear y JIRA son, si lo piensas bien, una especie de aplicaciones de chat que los renderizan
00:16:33en un formato diferente.
00:16:37Y eso es para lo que sirve esto.
00:16:40Lo que absolutamente puedes hacer es usar el SDK de chat para escuchar a la gente hablando en Slack y
00:16:49luego asignar eso a llamadas a la API de JIRA para hacer lo que quieras en JIRA.
00:16:58Pero al SDK de chat no le importa que hagas cosas en JIRA, ¿cierto?
00:17:04Porque son, quiero decir, obviamente a veces publicarías un mensaje, pero también podrías
00:17:07no sé, añadir una etiqueta o cambiar el estado de una pestaña.
00:17:11Asignarlo a la persona adecuada.
00:17:12Exacto.
00:17:13Y todas estas cosas no son algo que puedas hacer en el SDK de chat porque realmente
00:17:16es solo para la comunicación, simplemente usas la API nativa de la plataforma si quieres hacer
00:17:20cosas complicadas en ella.
00:17:23Sí.
00:17:24Genial.
00:17:25Bien.
00:17:26Entonces, ¿es, nuestra siguiente pregunta es, es compatible con Facebook Messenger?
00:17:32¿Qué es esto?
00:17:33Creo que quizás hay un PR, o desde que lanzamos, hemos tenido mucho interés,
00:17:39muchas pull requests increíbles, y tal vez este sea un buen momento para hablar sobre cuál es la diferencia
00:17:46entre un adaptador de la comunidad y los adaptadores que hemos elegido construir y mantener.
00:17:53Sí.
00:17:54Esa es una buena pregunta.
00:17:56Y tenemos una tercera categoría, que es la oficial del vendedor.
00:17:59Sí.
00:18:00Entonces, en general, la forma en que pensamos sobre las cosas que se incluyen con el SDK de chat,
00:18:07deberían ser los productos de mil millones de usuarios, como Slack, Discord, ¿qué es eso?
00:18:15Quizás lo pondremos en cien millones de usuarios, pero como algo muy amplio, como plataformas
00:18:20de aplicación general.
00:18:23Y entonces Facebook Messenger entraría completamente en eso.
00:18:26Tampoco espero realmente que nos den una oficial del vendedor, pero si Facebook
00:18:31quisiera hacer esto, sería bueno, ¿cierto?
00:18:32Le daríamos la bienvenida.
00:18:36Así que Facebook entraría en esto.
00:18:39Luego lo que también vemos mucho son, por ejemplo, empresas que hacen algún tipo
00:18:45de servicio de mensajería o gestión de contexto.
00:18:49He visto un par.
00:18:50Esa sería otra.
00:18:51Sí.
00:18:52Podemos hablar de eso por separado, pero digamos que tienes tu propio servicio de iMessage.
00:18:56Exacto.
00:18:57Sendblue.
00:18:58Sendblue.
00:18:59Ellos harían una oficial del vendedor, ¿cierto?
00:19:01Donde decimos, bien, esto es de Sendblue para Sendblue, lo cual viene con un poco
00:19:07de compromiso de mantenerlo a lo largo del tiempo.
00:19:10Exacto.
00:19:11Y luego la tercera categoría es que todos aquí pueden hacer un adaptador.
00:19:15Ya sabes, gastar unos dólares en lo que sea, ¿cierto?
00:19:19Es absolutamente difícil y puedes conectarte a lo que quieras, ¿cierto?
00:19:23Y tal vez sean algunas aplicaciones pequeñas aleatorias que, ya sabes, no llegarían a los cien millones
00:19:29de usuarios como corte para el SDK de chat principal.
00:19:35O tal vez también, tal vez haya una función que por alguna razón no estamos añadiendo al adaptador
00:19:41de los equipos del SDK de chat.
00:19:44Nadie te detiene de bifurcarlo y hacer el tuyo, ¿cierto?
00:19:48Como los adaptadores están totalmente desacoplados, puedes hacer tu propia versión.
00:19:52Y creo que es un buen momento para hablar de, bien, quiero empezar.
00:19:56Cómo, tal vez soy nuevo en el código abierto.
00:19:58Nunca he abierto una pull request a una biblioteca de código abierto, pero quiero crear un adaptador.
00:20:04¿Cómo empiezo?
00:20:06Sí.
00:20:07Creo que para los adaptadores, realmente vale la pena pensar en las categorías, ¿cierto?
00:20:11Entonces, si es este producto de cien millones de usuarios que quieres soportar, entonces
00:20:16lo correcto es abrir una pull request al SDK de chat.
00:20:20Si es para algo más específico, entonces, ya sabes, literalmente vas a GitHub,
00:20:27mira el repositorio, dile a tu agente que vea en el repositorio del SDK de chat cómo creaste
00:20:33un adaptador y, esencialmente, haz uno, ¿cierto?
00:20:37Y todos estos adaptadores son básicamente, heredan de una clase base y luego implementan,
00:20:43digamos, una función para publicar mensajes que finalmente sería siempre una llamada a la API
00:20:49a la plataforma que quieres soportar usando cualquier SDK nativo o quizás incluso solo
00:20:55obtener directamente su API.
00:20:58Tiene sentido.
00:20:59Genial.
00:21:00Nos quedan unos minutos aquí.
00:21:04Así que lo siguiente que quiero cubrir es que las cosas pueden volverse complejas en proyectos que usan múltiples
00:21:09proveedores y aplicaciones.
00:21:11A veces los humanos necesitan participar en una decisión.
00:21:15¿Cómo se ve el humano en el bucle con el SDK de chat?
00:21:19Así que hice una AMA en Reddit y respondí esto con el SDK de IA.
00:21:25Digamos que estamos construyendo con el SDK de IA.
00:21:28Tiene un parámetro llamado necesita aprobación.
00:21:32Y si creas una herramienta que necesita aprobación humana, escucharás ese flujo.
00:21:38Volverá con un tipo que dice, ya sabes, necesita aprobación.
00:21:42Y ahí es cuando el SDK de chat se vuelve útil porque puedes escribir la interfaz de usuario necesaria para obtener
00:21:49la aprobación usando JSX y ese componente JSX se renderizará en cualquier plataforma.
00:21:57Así que si construyes la interfaz de usuario para obtener la aprobación una vez, puedes usarla con cualquier plataforma.
00:22:04Creo que esta es probablemente una pregunta que recibo mucho porque siempre que estás construyendo un agente,
00:22:11es ¿cómo le doy suficiente poder, pero permito que el humano decida cuándo suceden las cosas?
00:22:17Exacto.
00:22:18Cierto.
00:22:19Entonces hay una, puedo darte una respuesta que es muy práctica y muy general y luego
00:22:27tal vez una que es un poco más aspiracional, pero la forma general de cómo implementar
00:22:32humano en el bucle en el SDK de chat es que delegas a tu agente que quiere
00:22:43que, que quiere esta herramienta llamada, bueno, para responder a la pregunta.
00:22:50Exacto.
00:22:51Cierto.
00:22:52Y nuevamente, en algún momento el agente llega al estado donde dice, bien, necesito tu
00:22:55aprobación.
00:22:56El agente responderá esencialmente publicando un mensaje en el Slack que selecciona, ¿cierto?
00:23:02O en lo que sea que estés trabajando.
00:23:03Oye, este usuario, ya sabes, al agente le gustaría realizar esta acción.
00:23:08¿Apruebas?
00:23:09Y puedes usar, por ejemplo, dos botones JSX para sí y no.
00:23:14Y creo que tenemos una pull request para la URL de callback.
00:23:17Sí.
00:23:18No sé si esa se fusionó ya.
00:23:19No se ha fusionado todavía, pero esa es la respuesta más inspiradora.
00:23:22Sí.
00:23:23Así que por ahora, ya sabes, solo obtienes el callback.
00:23:27Y tú, en el lado del servidor, dices, bien, no, está aprobado.
00:23:31Y reanudas la operación del agente en ese momento.
00:23:34Así que, básicamente, el patrón general es que
00:23:38puedes dibujar estas interfaces de usuario en el lado del chat, donde la gente puede interactuar, pueden obtener
00:23:45la aprobación y luego procedes con el trabajo.
00:23:48Lo que estamos trabajando actualmente, y aún no se ha lanzado, es que estamos integrando esto
00:23:54en general con la capacidad de que cada vez que haces clic en un botón, llame a un webhook.
00:23:58Exacto.
00:23:59Y obviamente eso podría usarse de una manera muy, muy general, dondequiera que tengas algún
00:24:03tipo de sistema de webhook, pero más específicamente otra cosa para que la gente le eche un
00:24:08vistazo es la noción de webhooks en el déficit de flujo de trabajo.
00:24:14Sí.
00:24:15Así que no quiero hacer otro discurso de cinco minutos sobre el déficit de flujo de trabajo, pero el
00:24:20déficit de flujo de trabajo es un sistema de ventas para escribir cómputo duradero, para permitirte escribir
00:24:27agentes que tomen trabajo por horas.
00:24:30Y una de las cosas extremadamente elegantes en el déficit de flujo de trabajo es que puedes literalmente
00:24:35escribir algo, haces un webhook y envías ese webhook a otro lugar y luego
00:24:39esperas el webhook, lo cual parece una cosa loca de hacer porque podría tomar, digamos,
00:24:44cinco semanas hasta que un usuario haga clic, ¿cierto?
00:24:47Pero realmente puedes hacer eso en el flujo de trabajo.
00:24:51Y entonces tomarías este webhook y eso es lo que pones en el JSX y el SDK de chat.
00:24:57Y así, cuando el usuario decide hacer clic, esa espera mágica, se resuelve y
00:25:03luego precede al agente.
00:25:05Creo que la primera vez que vi esa magia fue, ya sabes, es muy típico, la primera interacción
00:25:10que tienes con un agente, dice, bien, necesitas iniciar sesión.
00:25:13Y cuando probé esto por primera vez, tuve que sondear y esperar a ver, ¿ha habido un inicio
00:25:18de sesión exitoso?
00:25:19Muy feo, muchos errores, pero con un webhook, simplemente esperé un inicio de sesión exitoso y
00:25:25podría esperar 30 segundos, un día, semanas.
00:25:28Y fue mágico.
00:25:29Simplemente funcionó.
00:25:30Y esa fue probablemente una de las mejores situaciones de tipo callback de webhook con las que
00:25:34me he topado.
00:25:36Bien.
00:25:37Se nos acaba el tiempo.
00:25:38¿Hay algo que quieras decir antes de terminar?
00:25:44No tengo nada en particular, pero, quiero decir, básicamente esto es solo una biblioteca de
00:25:49código abierto.
00:25:51La hicimos porque la necesitábamos nosotros mismos.
00:25:55Por la reacción que hemos visto, hay mucha demanda.
00:25:58Definitivamente apreciamos las contribuciones, especialmente de nuevo para, tenemos que completar
00:26:05nuestro repertorio de adaptadores a gran escala.
00:26:11Como, no estoy seguro de que podamos hacer iMessage, pero también nos encantaría hacer mensajería, WeChat,
00:26:21ya sabes, lo que prefiera tu país.
00:26:25Dondequiera que haya un hilo.
00:26:26Bueno, no, ya no necesitamos hilos.
00:26:29Dondequiera que haya una conversación.
00:26:30Dondequiera que haya una conversación.
00:26:32Bueno, gracias chicos.
00:26:34Aprecio su tiempo y estoy muy emocionado de ver lo que construyen con el SDK de chat.
00:26:39Gracias a todos.
00:26:41Gracias por estar aquí.
00:26:44Hay mucho interés en el chat.
00:26:46Así que por favor, todos los que lo estén probando, dennos su opinión.
00:26:50Queremos saber más y dígannos qué adaptadores quieren añadir, qué quieren añadir a esto.
00:26:57Abran esas pull requests.
00:26:58Queremos verlas.
00:26:59Gracias a todos.

Key Takeaway

El Chat SDK proporciona una capa de abstracción unificada en TypeScript que permite implementar agentes de IA en múltiples plataformas mediante una sintaxis basada en JSX, independientemente de la infraestructura de backend utilizada.

Highlights

  • El Chat SDK es una biblioteca de TypeScript de código abierto, agnóstica a marcos de trabajo y plataformas, diseñada para conectar agentes de IA con usuarios finales.

  • El desarrollo inicial del SDK ocurrió durante las vacaciones de fin de año de 2025 tras el lanzamiento de Opus 4.5.

  • La implementación permite utilizar JSX para definir interfaces de usuario, que luego se mapean a las API nativas de plataformas como Slack o Microsoft Teams.

  • El soporte para Microsoft Teams ha sido transferido al equipo oficial de la plataforma, permitiendo a los desarrolladores beneficiarse de actualizaciones de API sin realizar cambios en su propio código.

  • El SDK permite integrar procesos de aprobación humana en el flujo de trabajo mediante el uso de botones JSX vinculados a webhooks, lo que facilita la pausa y reanudación de agentes en sistemas de cómputo duradero.

Timeline

Origen y propósito del Chat SDK

  • El Chat SDK surgió ante la dificultad de portar bots de Slack a otras plataformas sin incurrir en una carga de trabajo desproporcionada.
  • La biblioteca se construyó utilizando el modelo Opus 4.5 para acelerar la comprensión de API multifacéticas y desalentadoras.

La idea central nació en 2025 al intentar estandarizar la creación de agentes para diversos canales de comunicación. El objetivo fue crear una solución que permitiera construir la lógica de un agente una sola vez y desplegarla en cualquier lugar, superando el miedo a gestionar múltiples API documentadas de forma deficiente o poco idiomática.

Independencia de infraestructura y adaptabilidad

  • El SDK no está vinculado a Vercel, a marcos de front-end específicos o a primitivas de nube particulares.
  • La arquitectura del adaptador para Microsoft Teams demuestra cómo la colaboración con equipos oficiales permite actualizaciones retrocompatibles sin esfuerzo adicional para el desarrollador.

El Chat SDK funciona únicamente como una capa de transporte entre un evento de webhook y un agente construido con cualquier framework. Esta separación permite que el SDK sea agnóstico a la tecnología, facilitando la portabilidad del agente entre plataformas como Slack, Teams o futuras integraciones, manteniendo la compatibilidad con versiones anteriores.

Uso de JSX y renderizado de interfaz

  • JSX actúa como azúcar sintáctico para las funciones de creación de elementos, permitiendo que el SDK trabaje tanto dentro como fuera de aplicaciones React.
  • El SDK mapea una representación interna intermedia de la interfaz a las API específicas de cada plataforma, como el BlockKit de Slack.

La integración de JSX permite a los desarrolladores definir interfaces de chat de forma declarativa. Al sobrescribir la función 'create element', el SDK genera los componentes necesarios a partir de una representación intermedia. Esta metodología permite manejar diferentes capacidades de renderizado, ofreciendo alternativas predeterminadas si la plataforma de destino no soporta elementos interactivos complejos.

Ampliación del ecosistema y control de flujos

  • El Chat SDK está destinado exclusivamente a la comunicación, diferenciándose del SDK de IA que gestiona la lógica, prompts y herramientas del agente.
  • Los adaptadores se clasifican en oficiales de proveedores, mantenidos por la comunidad o implementaciones personalizadas para casos de uso específicos.
  • La implementación de 'humano en el bucle' utiliza webhooks para gestionar aprobaciones asíncronas, permitiendo esperas de larga duración en el flujo del agente.

El SDK facilita la gestión de agentes que requieren validación humana mediante botones JSX que disparan webhooks. Esta funcionalidad es altamente efectiva en sistemas de cómputo duradero, donde una operación puede esperar semanas hasta que un usuario interactúe con el componente. Los desarrolladores son invitados a contribuir con nuevos adaptadores, especialmente para plataformas masivas de mensajería.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video