O Controle Remoto Universal para IA — Alex Hancock, Block

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

스크립트

00:00:00Alex Hancock: Olá a todos. Meu nome é Alex Hancock. Hoje, vou falar sobre o controle remoto
00:00:17universal para IA. E antes de começar, quero apenas dizer que o palestrante anterior afirmou
00:00:21que os mantenedores de clientes MCP não implementaram suporte para tarefas porque são espertos. Eu sou
00:00:26um mantenedor de cliente MCP. Posso dizer que é só porque sou preguiçoso. Eu não fiz isso. Bem,
00:00:33então um pouco sobre mim antes de começarmos. Sou engenheiro de software na Block, que é a
00:00:37empresa controladora do Cash App, Square e Tidal. Temos várias coisas acontecendo agora.
00:00:43Trabalho lá há bastante tempo. Trabalhei em produtos da Square e do Cash App.
00:00:47Mas nos últimos anos tenho trabalhado com IA de código aberto. Especificamente, trabalho neste
00:00:51projeto de harness de código aberto chamado Goose, que começou como um projeto interno na Block.
00:00:56Sim, há alguns fãs do Goose por aí. E então, sim, nós o tornamos de código aberto e o doamos para a
00:01:02Linux Foundation. Então agora a propriedade intelectual está lá. Mas muitos de nós da Block ainda trabalhamos nele.
00:01:07Também sou mantenedor do MCP, o protocolo de contexto de modelo. Trabalho no SDK em Rust para esse projeto.
00:01:14E mais recentemente, também comecei a trabalhar no ACP, o protocolo de cliente de agente, que é sobre o que vou
00:01:20falar hoje. Acho que temos um problema com os harnesses que quero apresentar a todos vocês hoje,
00:01:27propor como um problema e depois recomendar uma solução. O que tenho notado recentemente
00:01:35é que temos muitos harnesses ótimos por aí, certo? Há os dos laboratórios.
00:01:40Há os de diferentes empresas. Há muitos baseados em padrões abertos.
00:01:46Mas percebi que a interface deles costuma ser personalizada ou sob medida. E no pior dos casos,
00:01:52você pode ter alguns harnesses onde há literalmente apenas um aplicativo cliente que você pode usar para controlar
00:01:57esse harness, certo? E acho que isso traz alguns problemas. Mas a analogia que farei com
00:02:03a web seria como se você tivesse que usar um único navegador ou um dado protocolo para se conectar a cada
00:02:11site, certo? Isso simplesmente não funcionaria. Você não teria algo como a web aberta se essa fosse a
00:02:16realidade com os navegadores. E por isso acho que podemos fazer melhor. E sobre os padrões, ao encontrar um
00:02:22padrão. E a questão dos padrões é que eles criam ecossistemas e mercados. E eu diria
00:02:28que no espaço de IA agêntica, temos um bom padrão para o agente sair e realizar ações,
00:02:35certo? Chamar ferramentas, tomar medidas em outros sistemas, ler recursos, ler dados. Todos nós
00:02:41beneficiamos como comunidade por termos o MCP, certo? E a coisa mais poderosa sobre o MCP
00:02:47não é nada sobre o MCP em si, mas sim que todo mundo usa o MCP. E é por isso que temos, sabe,
00:02:53milhares ou dezenas de milhares de servidores ao redor do mundo, e todos os agentes podem se conectar a eles
00:02:58e realizar ações nesses outros sistemas. Eu diria que ainda não temos uma boa solução
00:03:05ou um padrão para o software cliente dizer aos agentes o que fazer, dando-lhe tarefas, dizendo em que trabalhar,
00:03:13e recebendo atualizações. Por isso, vou apresentar hoje uma opção que acho ser uma boa alternativa
00:03:20em que nossa equipe tem trabalhado e que consideramos uma excelente solução no espaço de
00:03:26padrões abertos. E este é o ACP. Portanto, o protocolo de cliente de agente é o nome deste projeto. E ele veio das
00:03:32empresas de editores. Veio de, se você já usou o editor de texto Zed, ou se usou algum dos produtos
00:03:39da JetBrains, o pessoal do Zed e da JetBrains se uniu e propôs um padrão para
00:03:45os clientes poderem controlar harnesses. E faz sentido se você se colocar no lugar deles,
00:03:49certo? O que eles queriam poder fazer era escrever uma única implementação de cliente de alta qualidade
00:03:54em um editor, talvez no Zed ou no IntelliJ ou algo assim, e poder controlar qualquer harness
00:04:00com essa única implementação de cliente, enviando tarefas, obtendo resultados de volta,
00:04:06vendo quais arquivos estão sendo editados, etc. Faz todo o sentido se você se colocar no lugar deles,
00:04:10certo? Mas nós vimos isso na equipe do Goose. E achamos que há uma utilidade muito mais ampla do que apenas
00:04:17editores, certo? Portanto, ele é relativamente neutro e não possui muitos recursos específicos de editores. E por isso
00:04:22acreditamos que ele pode ser estendido a uma gama mais ampla de softwares clientes. Entrando um pouco mais em detalhes
00:04:30sobre o design do ACP e o que você pode fazer com ele, ele permite estabelecer conexões entre clientes e
00:04:37harnesses de agentes que possuem um determinado conjunto de capacidades associadas à conexão. E então você pode criar
00:04:45sessões. Nas sessões, você pode enviar mensagens de usuário, coisas que um usuário talvez esteja digitando no aplicativo ou
00:04:51que o software cliente queira enviar. O agente pode responder a isso com texto, mais imagens ou áudio,
00:04:59texto, etc., ou atualizações sobre o que está acontecendo. Então, por exemplo, se uma ferramenta for chamada, ele pode enviar uma notificação
00:05:04de chamada de ferramenta e explicar qual ferramenta foi chamada e qual era o metadado. E também pode enviar coisas como
00:05:10solicitações de permissão para que, se o software cliente precisar mostrar ao usuário, sabe, devo fazer esta
00:05:16chamada de ferramenta, sim ou não?, isso possa passar por este protocolo. E seu design é bastante simples. Ele usa mensagens JSON-RPC.
00:05:24E o que mais gostamos nele é que ele também é extensível. Portanto, você não se limita
00:05:29apenas ao que está no protocolo básico. Você pode adicionar métodos personalizados. A convenção é colocar um sublinhado
00:05:37e então começar a inserir seus métodos personalizados. E o que eu gosto nisso é que, se projetos de
00:05:41harness ou projetos de clientes suficientes adotarem isso, poderemos começar a ver o que todos estamos fazendo
00:05:46de igual, certo? Como se a equipe do codex tem alguns métodos personalizados, a equipe do goose tem alguns métodos personalizados,
00:05:52a equipe do cliente tem alguns métodos personalizados, quem quer que seja, podemos ver o que surge no ecossistema e
00:05:58o que faz sentido seguir em direção a um padrão e trazer para o próprio protocolo para que ele seja moldado
00:06:03pelo uso e pela comunidade. Vou fazer uma demonstração de uma versão de E/S padrão disso.
00:06:12Então, vou abrir o Zed e tenho um projeto muito simples aqui onde direi fale-me sobre
00:06:18este projeto. E este é um único arquivo HTML. Como podem ver, consegui digitar minha consulta no Zed
00:06:25e o agente em ação aqui é o Goose. Portanto, ele está usando a interface ACP do Goose. E podem ver,
00:06:31ele está enviando texto de volta. Está enviando informações de chamada de ferramenta sobre o que leu e o que
00:06:36fez. E então descobriu, sabe, que é um único arquivo HTML e o explicou. E vou fazer outro,
00:06:42vou fazer outro. Este é de uma empresa chamada Poolside AI. Direi, fale-me sobre este
00:06:50projeto no mesmo projeto. E este é um cliente baseado em terminal obtendo exatamente a mesma experiência do
00:06:55mesmo agente, uma implementação no lado do harness, e agora você pode usar qualquer cliente, certo? E então
00:07:01você pode ver que ele fez a mesma coisa. Mostrou alguns resultados em texto, mostrou uma chamada de ferramenta e depois
00:07:06mostrou um resumo sendo transmitido. Essa é uma demonstração básica mostrando dois clientes conversando com o mesmo
00:07:13agente via E/S padrão localmente neste caso. Mas o local obviamente não é suficiente, certo? Se você quer que isso
00:07:21decole, você também precisa conseguir fazer isso de forma remota. Os agentes vão rodar na nuvem. E assim,
00:07:25quando chegamos a este projeto, vimos que ele ainda não tinha suporte remoto. Então especificamos um transporte
00:07:31HTTP, há uma versão HTTP e há uma atualização para WebSocket. E agora as mensagens são as mesmas,
00:07:37a semântica do protocolo é a mesma, mas há um novo transporte que está chegando agora e que permite
00:07:42o acesso remoto. E a forma como pensamos nisso na equipe do Goose, a pilha agêntica possui basicamente estes
00:07:49quatro componentes importantes, certo? Você tem o cliente, que é como o aplicativo que o usuário está usando,
00:07:54ou um aplicativo sem interface gráfica rodando em algum lugar da máquina. Há o harness, que é o programa que
00:07:59implementa o loop de chamada de ferramenta. Há as ferramentas em si, que frequentemente são o MCP. E depois há o
00:08:04modelo, certo? E se você fizer um transporte remoto para o protocolo de cliente de agente, e o MCP tem um transporte
00:08:13remoto para chamadas de ferramentas, e os modelos têm tido endpoints remotos, como APIs de
00:08:18respostas, há muito tempo, agora você tem a flexibilidade de mover todos esses quatro componentes. Eles
00:08:24podem estar todos na mesma máquina. O harness pode estar em uma máquina diferente da do cliente.
00:08:29O modelo pode ser a única coisa remota. As ferramentas podem ser a única coisa remota.
00:08:34Alinhar-se a padrões e garantir que eles tenham boas opções de transporte é o que nos permitirá
00:08:39mover todas as peças dessa pilha agêntica. E posso mostrar uma rápida demonstração disso também.
00:08:46Então, este é um cliente apenas para mostrar como é fácil criar clientes para isso. Eu acabei de codificar isso
00:08:53ontem à noite, e direi, escreva um poema. Então, isso está novamente se conectando ao mesmo processo na minha máquina.
00:09:01Neste caso, estou executando pela rede, mas está na minha máquina.
00:09:03Ele está se conectando e enviando instruções ao goose sobre o que fazer remotamente. Portanto, isso pode estar em um contêiner,
00:09:09pode estar na nuvem, mas as mensagens são as mesmas e a biblioteca que você usa é a mesma.
00:09:15Assim, você pode alternar entre local e remoto de forma muito, muito fácil.
00:09:21Portanto, se você quiser se conectar a este ecossistema, comece a experimentar o suporte,
00:09:25seja criando seus próprios clientes ou adicionando coisas aos harnesses.
00:09:29Isso o conectará ao site do protocolo de cliente de agente para saber como começar. Há vários clientes
00:09:34e servidores de agentes já disponíveis. Isso varia de editores, aplicativos de desktop, aplicativos móveis,
00:09:41ferramentas baseadas em terminal. Há uma proliferação. E acho que os casos de uso são potencialmente enormes,
00:09:49certo? Se nós, se conseguirmos alguma interoperabilidade aqui, porque as pessoas podem criar clientes
00:09:54pessoais. É exatamente assim que você quer que eles orquestrem seus agentes. Você pode ter clientes criados
00:10:00para determinados domínios de negócios ou para uma empresa individual ou um conjunto de clientes de uma empresa. Você pode personalizar
00:10:06como um cliente de marca branca e fazê-lo funcionar com todos os harnesses. E também acho que se criarmos uma nova
00:10:12categoria aqui, veremos a qualidade dos clientes subir, certo? Porque a qualquer momento em que você obtém
00:10:17um ecossistema ou um mercado funcionando e há muitas opções, os usuários podem votar com os pés se
00:10:22os clientes não estiverem atendendo às suas necessidades. E assim as pessoas começarão a competir pela qualidade da experiência
00:10:26do usuário. E, de maneira geral, acho que isso deve elevar a experiência do usuário ao usar IA.
00:10:33É isso que tenho para hoje. Muito obrigado. E se quiser conversar comigo, procure-me
00:10:37depois ou mande um e-mail. Ficarei feliz em integrá-lo a este trabalho. Obrigado.

핵심 요약

A adoção do Protocolo de Cliente de Agente (ACP) padroniza a interface entre softwares clientes e harnesses de IA, permitindo flexibilidade total para conectar qualquer cliente a qualquer agente de forma local ou remota.

하이라이트

  • O projeto de código aberto Goose começou internamente na Block e foi doado para a Linux Foundation.

  • O Modelo de Contexto de Protocolo (MCP) possui milhares de servidores globais que permitem aos agentes realizar ações em sistemas externos.

  • O Protocolo de Cliente de Agente (ACP) foi criado inicialmente por desenvolvedores dos editores Zed e JetBrains para padronizar o controle de harnesses.

  • O ACP utiliza mensagens JSON-RPC e suporta métodos personalizados com sublinhados para expansão pela comunidade.

  • O suporte a transporte remoto via HTTP e WebSocket no ACP permite a execução de agentes em contêineres e na nuvem.

타임라인

Introdução ao projeto Goose e ao problema dos harnesses de IA

  • Alex Hancock atua como engenheiro de software na Block e mantenedor de projetos como Goose, MCP e ACP.
  • Os harnesses de IA existentes utilizam interfaces personalizadas ou aplicativos clientes restritos.
  • O protocolo MCP estabeleceu um padrão aberto bem-sucedido para agentes chamarem ferramentas e lerem dados externos.

O projeto Goose iniciou na Block e foi transferido para a Linux Foundation. A falta de padronização nos clientes de harnesses assemelha-se à exigência de usar um navegador específico para cada site na web. Embora o MCP resolva a conexão dos agentes com ferramentas externas através de milhares de servidores, faltava um padrão equivalente para o software cliente instruir os agentes.

Apresentação e design do Protocolo de Cliente de Agente (ACP)

  • O ACP surgiu da colaboração entre as equipes dos editores Zed e JetBrains para unificar o controle de harnesses.
  • O protocolo estabelece sessões para envio de mensagens de usuário e recebimento de respostas multimodais e notificações de ferramentas.
  • O design baseado em JSON-RPC permite adicionar métodos personalizados utilizando um prefixo de sublinhado.

Criado originalmente por desenvolvedores de editores de texto para unificar implementações de alta qualidade, o ACP possui utilidade ampla para além de editores. Ele gerencia conexões, sessões e solicitações de permissão para chamadas de ferramentas. A extensibilidade por meio de métodos personalizados permite que a comunidade teste novas funcionalidades antes de integrá-las ao protocolo oficial.

Demonstração prática e suporte a acesso remoto

  • Clientes diferentes como o Zed e ferramentas baseadas em terminal executam o mesmo agente Goose via E/S padrão.
  • O protocolo inclui suporte a transporte HTTP e WebSocket para viabilizar o acesso remoto a agentes em nuvem.
  • A pilha agêntica completa abrange cliente, harness, ferramentas MCP e modelos com capacidade de execução distribuída.

Demonstrações locais comprovam que clientes distintos interagem com o mesmo agente utilizando o ACP. Com a inclusão de transportes HTTP e WebSocket, torna-se possível executar harnesses remotamente em contêineres enquanto o cliente opera em outra máquina. Essa modularidade eleva a qualidade da experiência do usuário ao fomentar a concorrência e a escolha de clientes no ecossistema.

커뮤니티 글

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

이 영상에 대해 글쓰기