El control remoto universal para la IA — Alex Hancock, Block

AAI Engineer
컴퓨터/소프트웨어AI/미래기술

스크립트

00:00:00Alex Hancock: Hola a todos. Mi nombre es Alex Hancock. Hoy voy a hablar sobre el control remoto
00:00:17universal para IA. Y antes de empezar, solo quiero decir que el ponente anterior comentó
00:00:21que los encargados de los clientes MCP no han implementado soporte para tareas porque son inteligentes. Yo soy
00:00:26un mantenedor de clientes MCP. Les puedo decir que simplemente soy perezoso y no lo he hecho. Bien,
00:00:33entonces hablemos un poco sobre mí antes de empezar. Soy ingeniero de software en Block,
00:00:37la empresa matriz de Cash App, Square y Tidal. Ahora tenemos varios proyectos en marcha.
00:00:43He trabajado allí durante mucho tiempo, en productos de Square y de Cash App.
00:00:47Pero en los últimos dos años me he dedicado a la IA de código abierto. En concreto, trabajo en este
00:00:51proyecto de entorno de código abierto llamado Goose, que comenzó como un proyecto interno en Block.
00:00:56Sí, veo algunos fans de Goose por ahí. Y luego, pues lo hicimos de código abierto y lo donamos a la
00:01:02Fundación Linux. Así que la propiedad intelectual está allí, pero muchos de nosotros en Block seguimos trabajando en él.
00:01:07También soy mantenedor de MCP, el protocolo de contexto de modelos. Trabajo en el SDK de Rust para ese proyecto.
00:01:14Y más recientemente, también he comenzado a trabajar en ACP, el protocolo de cliente de agente, que es de lo que
00:01:20voy a hablar hoy. Creo que tenemos un problema con los entornos que quiero plantearles
00:01:27hoy a todos ustedes como un problema y luego recomendar una solución. Lo que he estado
00:01:35notando últimamente es que tenemos muchos entornos excelentes, ¿verdad? Los hay de los laboratorios,
00:01:40de diferentes empresas y muchos basados en estándares abiertos.
00:01:46Pero noto que la interfaz para ellos suele ser personalizada o a medida. Y en el peor de los casos,
00:01:52podrías tener algunos entornos en los que literalmente solo hay una aplicación cliente que puedes usar para controlar
00:01:57ese entorno, ¿verdad? Y creo que esto trae un par de problemas. La analogía que haré con
00:02:03la web sería como si tuvieras que usar un solo navegador o un protocolo determinado para conectarte a cada
00:02:11sitio web, ¿verdad? Eso simplemente no funcionaría. No existiría algo como la web abierta si esa fuera
00:02:16la realidad con los navegadores. Por eso creo que podemos hacerlo mejor. Y sobre los estándares,
00:02:22encontrar un estándar... Lo importante de los estándares es que crean ecosistemas y mercados. Y yo diría
00:02:28que en el espacio de la IA agéntica, tenemos un buen estándar para que el agente salga y haga cosas,
00:02:35¿verdad? Llamar a herramientas, realizar acciones en otros sistemas, leer recursos, leer datos. Todos hemos
00:02:41beneficiado como comunidad al tener MCP, ¿verdad? Y lo más potente de MCP
00:02:47no es nada relacionado con MCP en sí, sino que todo el mundo usa MCP. Y por eso tenemos, ya sabes,
00:02:53miles o decenas de miles de servidores en todo el mundo, y todos los agentes pueden conectarse a ellos
00:02:58e ir a hacer cosas en esos otros sistemas. Yo diría que todavía no tenemos una buena solución
00:03:05o un estándar para que el software cliente le diga a los agentes qué hacer, asignándoles tareas, indicándoles en qué trabajar
00:03:13y obteniendo actualizaciones. Así que hoy voy a presentar una opción que creo que es una buena opción,
00:03:20en la que nuestro equipo ha estado trabajando y que consideramos una muy buena solución dentro del espacio
00:03:26de los estándares abiertos. Y este es ACP. El protocolo de cliente de agente es el nombre de este proyecto, y surgió
00:03:32de las empresas creadoras de editores. Vino de, si has usado el editor de texto Zed, o has usado alguno de los productos
00:03:39de JetBrains, la gente de Zed y de JetBrains se unieron y propusieron un estándar para que
00:03:45los clientes puedan controlar los entornos. Y tiene sentido si te pones en su lugar,
00:03:49¿verdad? Lo que querían poder hacer era escribir una única implementación de cliente de alta calidad
00:03:54en un editor, tal vez en Zed o en IntelliJ o algo similar, y poder controlar cualquier entorno
00:04:00con esa única implementación de cliente, enviando tareas, recibiendo resultados,
00:04:06viendo qué archivos se están editando, etc. Tiene muchísimo sentido si te pones en su lugar,
00:04:10¿verdad? Pero nosotros vimos esto en el equipo de Goose y pensamos que tiene una utilidad mucho más amplia que solo
00:04:17los editores, ¿verdad? Por lo tanto, es relativamente neutral y no tiene muchas funciones específicas de editores. Así que
00:04:22pensamos que esto se puede extender a una gama más amplia de software cliente. Profundizando un poco más
00:04:30sobre el diseño de ACP y lo que se puede hacer con él, permite establecer conexiones entre clientes y
00:04:37entornos de agentes que tienen un conjunto de capacidades asociadas a la conexión. Y luego puedes crear
00:04:45sesiones. Dentro de las sesiones, puedes enviar mensajes de usuario, lo que un usuario tal vez esté escribiendo en la aplicación o
00:04:51lo que el software cliente quiera enviar. El agente puede responder a estos con texto, más imágenes, audio,
00:04:59texto, etc., o con actualizaciones sobre lo que está pasando. Por ejemplo, si se llama a una herramienta, puede enviar una notificación
00:05:04de llamada de herramienta y explicar qué herramienta se invocó y cuáles eran los metadatos. Y también puede enviar cosas como
00:05:10solicitudes de permisos para que, si el software cliente necesita mostrarle al usuario: “¿Debo realizar
00:05:16esta llamada de herramienta, sí o no?”, pueda gestionarlo a través de este protocolo. Su diseño es bastante simple y utiliza mensajes JSON-RPC.
00:05:24Y lo que más nos gusta es que también es extensible. Así que no estás limitado
00:05:29solo a lo que incluye el protocolo base. Puedes agregar métodos personalizados. La convención es poner un guion bajo
00:05:37y luego empezar a añadir tus métodos personalizados. Y lo que me gusta de esto es que, si suficientes
00:05:41proyectos de entornos o de clientes adoptan esto, podemos empezar a ver qué estamos haciendo todos que sea
00:05:46igual, ¿verdad? Como si el equipo de codex tiene algunos métodos personalizados, el equipo de goose tiene algunos métodos personalizados,
00:05:52el equipo del cliente tiene otros, quien sea, podemos ver qué surge en el ecosistema y
00:05:58qué tiene sentido incluir en la vía de estandarización y llevar al protocolo en sí, de modo que esto se vaya
00:06:03formando gracias al uso y a la comunidad. Voy a hacer una demo de una versión de esto basada en E/S estándar.
00:06:12Así que voy a abrir Zed y tengo un proyecto muy sencillo aquí donde diré: “háblame sobre
00:06:18este proyecto”. Y como se trata de un solo archivo HTML, pueden ver que pude escribir mi consulta en Zed
00:06:25y el agente en acción aquí es Goose. Por lo tanto, utiliza la interfaz ACP de Goose. Y como pueden ver,
00:06:31está enviando texto de vuelta. Está enviando información de llamadas de herramientas sobre lo que leyó y lo que
00:06:36hizo. Y luego descubrió que es un solo archivo HTML y lo explicó. Y haré otra,
00:06:42haré otra. Esta es de una empresa llamada Poolside AI. Diré: “Háblame de este
00:06:50proyecto dentro del mismo proyecto”. Y este es un cliente basado en terminal que obtiene exactamente la misma experiencia de
00:06:55la misma gente, una implementación en el lado del entorno, y ahora puedes usar cualquier cliente, ¿verdad? Y como
00:07:01pueden ver, hizo lo mismo: me mostró algunos resultados en texto, mostró una llamada a herramienta y luego
00:07:06mostró, está transmitiendo un resumen. Esa es una demo básica que muestra a dos clientes hablando con el mismo
00:07:13agente a través de E/S estándar de forma local en este caso. Pero lo local obviamente no es suficiente, ¿verdad? Si quieres que esto
00:07:21despegue, también debes poder hacerlo de forma remota. Los agentes van a ejecutarse en la nube. Y cuando
00:07:25llegamos a este proyecto, vimos que aún no tenía soporte remoto. Así que especificamos un transporte
00:07:31HTTP; hay una versión HTTP y una actualización de WebSocket. Ahora los mensajes son los mismos,
00:07:37la semántica del protocolo es la misma, pero hay un nuevo transporte que está llegando ahora y que permite
00:07:42el acceso remoto. Y la forma en que pensamos sobre esto en el equipo de Goose, la pila agéntica,
00:07:49cuenta con estos cuatro componentes importantes, ¿verdad? Tienes el cliente, que es como la aplicación que usa el usuario,
00:07:54o una aplicación sin interfaz gráfica que se ejecuta en alguna parte de la máquina. Está el entorno, que es el programa que
00:07:59implementa el bucle de llamadas a herramientas. Están las herramientas en sí, que a menudo son MCP. Y luego está
00:08:04el modelo, ¿verdad? Y si implementas un transporte remoto para el protocolo de cliente de agente, y MCP tiene un transporte
00:08:13remoto para la llamada a herramientas, y los modelos han tenido puntos finales remotos, como APIs
00:08:18de respuestas, durante mucho tiempo, ahora tienes la flexibilidad de mover todos estos cuatro componentes. Podrían
00:08:24estar todos en la misma máquina. El entorno podría estar en una máquina diferente a la del cliente.
00:08:29El modelo podría ser lo único remoto. Las herramientas podrían ser lo único remoto.
00:08:34Alinearnos con los estándares y asegurarnos de que tengan buenas opciones de transporte es lo que nos permitirá
00:08:39mover todas las piezas de esta pila agéntica. Y puedo mostrar una breve demo de esto también.
00:08:46Este es un cliente, solo para mostrar lo fácil que es crear clientes para esto. Programé esto de manera improvisada
00:08:53anoche, y diré: “Escribe un poema”. Esto se conecta nuevamente a ese mismo proceso en mi máquina.
00:09:01En este caso, lo ejecuto a través de la red, pero está en mi máquina.
00:09:03Se conecta y envía instrucciones a goose sobre qué hacer de forma remota. Así que esto podría estar en un contenedor,
00:09:09podría estar en la nube, pero los mensajes son los mismos y la librería que utilizas es la misma.
00:09:15Por lo tanto, puedes cambiar entre local y remoto de manera muy, muy sencilla.
00:09:21Así que si quieres conectarte a este ecosistema, empieza a experimentar con el soporte,
00:09:25ya sea creando tus propios clientes o añadiendo funciones a los entornos.
00:09:29Esto te vinculará al sitio del protocolo de cliente de agente para saber cómo empezar. Hay varios clientes
00:09:34y servidores de agentes disponibles. Esto abarca desde editores, aplicaciones de escritorio, aplicaciones móviles,
00:09:41hasta herramientas basadas en terminal. Hay una gran proliferación. Y creo que los casos de uso son potencialmente enormes,
00:09:49¿verdad? Si logramos algo de interoperabilidad aquí, porque la gente podrá crear clientes personales.
00:09:54Exactamente como deseas que orchestre tus agentes. Podrías tener clientes creados
00:10:00para ciertos dominios de negocio o para una empresa individual, o un conjunto de clientes de una compañía. Podrías personalizar
00:10:06un cliente de marca blanca y hacer que funcione con todos los entornos. Y también creo que si creamos una nueva
00:10:12categoría aquí, veremos que la calidad de los clientes aumenta, ¿verdad? Porque cada vez que se forma
00:10:17un ecosistema o un mercado y hay muchas opciones, los usuarios pueden votar con los pies si
00:10:22los clientes no satisfacen sus necesidades. Por lo tanto, la gente empezará a competir en la calidad de la experiencia
00:10:26de usuario. Y en general, creo que esto debería elevar la experiencia de usuario al usar IA.
00:10:33Esto es todo por hoy. Muchas gracias. Y si quieren hablar conmigo, encuéntrenme
00:10:37después o envíenme un correo electrónico. Con gusto les ayudaré a integrarse en este trabajo. Gracias.

핵심 요약

El protocolo ACP estandariza la comunicación entre diversos clientes de software y entornos de agentes mediante JSON-RPC y transportes flexibles locales y remotos.

하이라이트

  • El protocolo ACP (Agent Client Protocol) surge de la colaboración entre los creadores del editor Zed y los productos de JetBrains para estandarizar la forma en que los clientes controlan los entornos de agentes.

  • El protocolo ACP utiliza mensajes JSON-RPC con capacidad de extensión mediante métodos personalizados precedidos por un guion bajo.

  • El protocolo incorpora transporte HTTP y actualización mediante WebSocket para permitir el acceso remoto a los agentes ejecutados en la nube.

  • La pila agéntica se compone de cuatro elementos independientes: el cliente, el entorno, las herramientas (como MCP) y el modelo.

타임라인

Problemas de estandarización en entornos de IA

  • Las interfaces de los entornos de IA actuales suelen ser personalizadas y limitadas a aplicaciones cliente específicas.
  • El protocolo MCP ha logrado un ecosistema masivo de miles de servidores para que los agentes ejecuten acciones en sistemas externos.
  • Falta un estándar equivalente en la industria para que el software cliente indique tareas e instrucciones a los agentes.

El ecosistema actual de IA cuenta con múltiples entornos y laboratorios, pero carece de un estándar de control equivalente al protocolo MCP. Mientras que MCP permite a los agentes conectarse a miles de servidores para realizar acciones, los clientes de software dependen de interfaces a medida. Esta limitación impide la interoperabilidad abierta que caracteriza a la web actual.

Diseño y funcionamiento de ACP

  • El Agent Client Protocol fue propuesto por los creadores de Zed y JetBrains para unificar el control de entornos desde cualquier editor o cliente.
  • Las sesiones de ACP permiten enviar mensajes de usuario y recibir respuestas con texto, medios y notificaciones de llamadas a herramientas con solicitud de permisos.
  • El diseño se basa en JSON-RPC y permite añadir métodos personalizados con un prefijo de guion bajo para evolucionar mediante el uso comunitario.

ACP extiende su utilidad más allá de los editores de texto para abarcar una amplia gama de software cliente. Permite establecer conexiones con conjuntos de capacidades asociados, gestionar sesiones interactivas y supervisar la ejecución de herramientas en tiempo real. Su estructura extensible facilita la adopción de métodos específicos de cada proyecto antes de integrarlos en la especificación oficial.

Demostraciones locales y soporte remoto

  • Diferentes clientes como Zed y herramientas de terminal operan con la misma implementación de entorno de agente de forma local mediante E/S estándar.
  • La integración de un transporte HTTP y WebSocket permite el funcionamiento remoto de los agentes ejecutados en contenedores o en la nube.
  • La separación de la pila agéntica en cliente, entorno, herramientas y modelo otorga flexibilidad total para distribuir los componentes en distintas máquinas.

Las demostraciones prácticas con Zed y Poolside AI comprueban que múltiples clientes utilizan la misma interfaz de entorno para analizar proyectos y transmitir resultados idénticos. La incorporación de transportes HTTP y WebSocket trasciende el entorno local, permitiendo que la misma librería gestione conexiones de red con agentes alojados en la nube. Esta modularidad estandarizada impulsa la creación de clientes especializados y mejora la experiencia de usuario.

커뮤니티 글

아직 글이 없습니다. 이 영상에 대한 첫 번째 글을 작성해 보세요!

이 영상에 대해 글쓰기