Docker Agent: crie agentes de IA que conversam entre si
Autoria: Better Stack · Assistir no YouTube
Vídeo de autoria do canal indicado, não da IANIA; todos os direitos pertencem ao criador. Transcrição, resumo e tradução gerados automaticamente; o conteúdo no idioma original é preservado na versão em idioma original.
Idioma original: inglês
Vídeo original: Docker Agent: Build AI Agents That Talk to Each Other · Canal: Better Stack · 05:55 · Assistir no YouTube
Tópicos: Agentes de IA, Ferramentas de desenvolvimento com IA, Modelos de IA
Docker Agent é uma ferramenta open source da Docker para definir e executar agentes de IA usando arquivos YAML, sem precisar escrever o código do framework. Os agentes podem usar diferentes modelos e ferramentas, ser compartilhados por registros OCI e funcionar como serviços acessíveis por HTTP, MCP ou A2A. O vídeo demonstra uma tarefa de depuração em que um agente analisa logs e outro prepara um resumo do incidente. Também mostra três agentes jogando Battleship, com Claude Haiku 5.5 vencendo GPT-6 Luna por uma diferença pequena.
Pontos-chave
Seção intitulada “Pontos-chave”- Cada agente é descrito em YAML, incluindo modelo, instruções e ferramentas permitidas.
- Docker Agent gerencia o ciclo do agente: chama o modelo, executa ferramentas e retorna os resultados ao modelo.
- Os agentes podem usar modelos da OpenAI, Anthropic, Gemini, Open Router ou modelos locais via Docker model runner.
- As definições dos agentes podem ser versionadas, revisadas em pull requests e atualizadas trocando uma linha de configuração.
- Agentes podem ser publicados no Docker Hub ou em outros registros OCI.
- Um agente pode ser executado como uma API HTTP, um servidor MCP ou um servidor A2A.
- Na demonstração de depuração, um agente analisa logs e outro usa as descobertas para elaborar um resumo do incidente.
- Na partida de Battleship, Claude Haiku 5.5 venceu GPT-6 Luna em 34 tiros, com 50% de precisão; o vídeo ressalta que a partida não é um benchmark.
Capítulos
Seção intitulada “Capítulos”| Início | Capítulo | Resumo |
|---|---|---|
| 00:00 | Apresentação do Docker Agent | O vídeo apresenta agentes jogando Battleship e explica que Docker Agent permite criá-los e conectá-los por meio de arquivos YAML. |
| 01:06 | Como os agentes são definidos e distribuídos | A demonstração explica modelos, ferramentas, subagents, distribuição por registros OCI e execução de agentes como serviços. |
| 02:43 | Configuração e depuração com dois agentes | O vídeo mostra como executar um agente simples e como um agente de plantão consulta um agente analista de logs. |
| 04:20 | Partida de Battleship e conclusão | Três agentes disputam uma partida de Battleship, e Claude Haiku 5.5 vence GPT-6 Luna por uma diferença estreita. |
Citações
Seção intitulada “Citações”Não escrevi nenhum código de framework para configurar isso. — 00:32
O Docker Agent cuida do ciclo do agente para você. — 01:06
Você pode enviar um agente ao Docker Hub ou a qualquer outro registro OCI. — 02:12
Eu não chamaria isso de benchmark. — 04:50
Conceitos e entidades
Seção intitulada “Conceitos e entidades”- Docker Agent (ferramenta): Ferramenta open source da Docker para definir, executar e conectar agentes de IA.
- A2A (conceito): Protocolo usado no vídeo para permitir que agentes se comuniquem entre si.
- MCP (conceito): Protocolo que pode ser disponibilizado como servidor por um agente.
- Docker (empresa): Empresa responsável pela ferramenta Docker Agent apresentada no vídeo.
- Docker Hub (ferramenta): Registro no qual é possível publicar agentes para distribuição.
- GPT-6 Luna (modelo): Modelo usado por um dos agentes na partida de Battleship.
- Claude Haiku 5.5 (modelo): Modelo usado por um dos agentes, que vence a partida de Battleship mostrada.
Tradução completa (pt-BR)
Seção intitulada “Tradução completa (pt-BR)”00:00 Este é GPT-6 Luna e Claude Haiku 5.5 jogando Batalha Naval, e Haiku acabou de vencer a partida por um único navio. Cada modelo funciona como seu próprio agent de IA, em seu próprio processo, e eles conversam entre si por meio de um protocolo chamado A2A. Não escrevi nenhum código de framework para configurar isso. São apenas arquivos YAML e uma nova ferramenta da Docker chamada Docker Agent. Neste vídeo, vou explicar o que é Docker Agent, como funciona e por que vale a pena explorar. Depois, vou iniciar um agent
00:32 do zero, conectar dois agents para uma tarefa real de depuração e, por fim, fazer uma partida completa de Batalha Naval. Vai ser muito divertido, então vamos começar. Docker Agent é uma ferramenta open source da Docker para criar e executar agents de IA. A Docker o descreve como o equivalente, para agents de IA, do Docker run para containers. Você descreve um agent em um arquivo YAML, informando o modelo que ele usa, suas instruções e as ferramentas que tem permissão para usar. Depois, você o executa com um
01:06 comando. E o Docker Agent cuida do ciclo do agent para você. Ele chama o modelo, executa as ferramentas, envia os resultados de volta e repete o processo até a tarefa ser concluída. Este é um exemplo de um agent completo. A linha do modelo pode apontar para OpenAI, Anthropic, Gemini, Open Router ou um modelo local por meio do Docker Model Runner. Você também pode fornecer algumas ferramentas, que vêm da seção de conjuntos de ferramentas, que inclui recursos integrados, como acesso a arquivos e comandos de shell, além de qualquer servidor MCP que você queira conectar. Um agent também pode ter subagents, então um coordenador
01:40 pode delegar o trabalho a especialistas. A documentação da própria Docker tem uma boa comparação. À esquerda está o código Python que você normalmente escreveria para fazer um modelo chamar ferramentas em um loop; à direita, o mesmo agent escrito para o Docker Agent. Veja como o lado direito é muito mais simples. E há também três coisas muito legais no Docker Agent. A primeira é que os agents passam a ser configuração. Você pode versioná-los, revisá-los em pull requests e trocar o modelo alterando apenas uma linha. A segunda é a
02:12 distribuição. Você pode enviar um agent para o Docker Hub ou para qualquer outro registro OCI, e qualquer pessoa pode executá-lo com Docker agent run e o nome da imagem, da mesma forma que você compartilha um container. A terceira é que os agents podem funcionar como serviços. Com um único comando, um agent se torna uma API HTTP, um servidor MCP ou um servidor A2A que outros agents podem chamar. Vamos ver essa terceira possibilidade em ação mais adiante neste vídeo. E, se você estiver usando o Docker Desktop 4.63 ou mais recente, o Docker
02:43 Agent já vem instalado por padrão. Caso contrário, você pode instalá-lo com o Homebrew e criar um link simbólico para ele na pasta de plugins do Docker CLI, para executá-lo como Docker agent. Este é o menor agent que você pode escrever: ele tem um modelo, uma descrição e uma instrução. Basta executar Docker agent run agent.yaml, e aparece uma interface de terminal com a qual posso conversar. Este é um exemplo mais realista. Imagine que o checkout está fora do ar e você está de plantão. Tenho dois agents neste arquivo,
03:14 e o primeiro é um analista de logs. Ele é o único agent que pode ler os logs e tem uma ferramenta de arquivos somente para leitura, restrita à pasta de logs. O segundo é um assistente de plantão e não tem acesso a arquivos. A única coisa que ele conhece é a URL do analista. Em uma empresa de verdade, a equipe de plataforma seria responsável pelo analista de logs e o executaria junto aos logs. O agent de qualquer outra equipe poderia fazer perguntas a ele sem nunca ter acesso aos próprios logs. Então, no primeiro
03:45 terminal, executo Docker agent serve A2A, seleciono o analista de logs com a opção agent e o coloco na porta 8080. No segundo terminal, executo o assistente de plantão e pergunto por que o checkout está retornando erros 500 desde por volta das 14h. E você pode ver a pergunta chegar ao analista. Ele verifica os logs da aplicação e o histórico de deploys e, em seguida, envia suas conclusões; o agent de plantão as transforma em um resumo do incidente. Agora, vamos fazer algo mais divertido com o mesmo padrão. Para a Batalha Naval, tenho três agents. Os dois
04:20 jogadores, azul e vermelho, são servidos por A2A, cada um em sua própria porta. O terceiro agent é um árbitro que conduz a partida, e usei Kimik3 para ele, para que nenhum dos modelos dos jogadores julgue a própria partida. O tabuleiro funciona em um servidor local. Os jogadores ficam ouvindo nas portas 8080 e 8081. Depois, inicio o árbitro. Em cada turno, um jogador recebe sua visão das águas inimigas, escolhe uma casa e, só por diversão, acrescenta uma provocação. E, como você pode ver aqui, Haiku começa
04:50 com tudo. Encontra o porta-aviões logo no início e segue direto pela linha até afundá-lo. Mas Luna reage com força e, no fim da partida, os dois jogadores ficam com apenas um navio. No final, porém, Haiku encontra o último submarino na linha H e vence com 34 disparos e 50% de precisão. Naquele momento, Luna já tinha afundado todos os navios de Haiku, menos um, então a disputa foi muito, muito acirrada. Mas este é apenas um jogo simples, então eu não o chamaria de benchmark. Os dois modelos claramente jogaram melhor do que se escolhessem as jogadas aleatoriamente, e Haiku simplesmente acabou vencendo
05:23 no final. Então é isso, pessoal. Esse é o Docker Agent em poucas palavras. Você pode escrever agents em YAML, executá-los com um único comando, compartilhá-los por meio de um registro e conectá-los usando A2A com nada mais do que uma URL. Costumo ver esses exemplos de código no Hugging Face, onde é preciso escrever muito código boilerplate em Python. Então, fico muito feliz que a Docker tenha criado esta ferramenta, que realmente simplifica todo o processo. Provavelmente vou usá-la bastante daqui para a frente. Mas o que vocês acham? Já experimentaram o Docker Agent?
05:55 E qual foi a experiência de vocês? Contem para a gente nos comentários abaixo. E, pessoal, se vocês gostam desse tipo de análise técnica detalhada, mostrem isso clicando no botão de gostei abaixo do vídeo. E não se esqueçam de se inscrever no nosso canal. Aqui foi Andrus, da Better Stack, e vejo vocês nos próximos vídeos.
Transcrição original
[00:00] This is GPT-6 Luna and Claude Haiku 5.5 playing Battleship and Haiku just won the battle by a single ship. Each model runs as its own AI agent in its own process and they talk to each other over a protocol called A2A. I didn’t write any framework code to set this up. These are just YAML files and a new tool from Docker called Docker Agent. In this video, I’ll explain what Docker Agent is, how it works, and why it’s worth exploring. And then I’ll launch an agent
[00:32] from scratch, connect two agents for a real debugging task, and then finish up with a full Battleship match. It’s going to be a lot of fun, so let’s dive into it. So, Docker Agent is an open-source tool from Docker for building and running AI agents. Docker describes it as being to AI agent what Docker run is for containers. You describe an agent in a YAML file with the model it uses, its instructions, and the tools it’s allowed to use. And then you run it with one
[01:06] command. And Docker Agent handles the agent loop for you. It calls the model, runs the tools, feeds the results back, and repeats until the job is done. So, this is an example of a complete agent. The model line can point at OpenAI, Anthropic, Gemini, Open Router, or a local model through a Docker model runner. You can also give it some tools, which come from the tool sets section, which covers built-in like file access and shell commands, and any MCP server you want to hook up. And an agent can also have sub-agents, so one coordinator
[01:40] can hand work off to specialists. Docker’s own docs actually have a good comparison here. On the left is the Python code you’d normally write to make a model call tools in a loop, and on the right is the same agent written for Docker Agent. And look how much cleaner it is on the right side. And there are also three big things that are really cool about Docker agent. The first is that agents become configuration. You can version them, review them in pull requests, and swap the model by just changing one line. The second is
[02:12] distribution. You can push an agent to Docker Hub or any other OCI registry, and anyone can run it with Docker agent run and the image name, the same way you share a container. And third is that agents can run as services. With one command, an agent becomes an HTTP API, an MCP server, or an A2A server that other agents can call. That third one we’re actually going to see in action later in this video. And if you’re on Docker Desktop 4.63 or newer, Docker
[02:43] agent is already installed by default. But otherwise, you can install it with Homebrew and symlink it into Docker CLI plugins folder, so it runs as Docker agent. And here’s the smallest agent you can write with a model, a description, and an instruction. And I just have to run Docker agent run agent.yaml, and I get a terminal UI where I can talk to it. And here’s a more realistic example. So, imagine checkout is down and you’re on call. I have two agents in this file,
[03:14] and the first one is a log analyst, and it’s the only agent that can read the logs, and it has a read-only file tool locked to the logs folder. And the second one is an on-call assistant, and it has no file access at all. The only thing it knows is the analyst’s URL. In a real company, the platform team would own the log analyst and run it next to logs. Any other team’s agent could ask it questions without ever getting access to the logs themselves. So, in the first
[03:45] terminal, I run Docker agent serve A2A, pick the log analyst with the agent flag, and put it on port 8080. In the second terminal, I run the on-call assistant and ask why checkout has been throwing 500 since around 2:00 p.m. And you can see that the question arrive at the analyst. It goes through the app logs and the deploy history and then sends back its findings and the on-call agent turns them into an incident summary. Now, let’s do something more fun with the same pattern. For Battleship, I have three agents. The two
[04:20] players, blue and red, and each served over A2A on their own port. And the third agent is a referee that runs the match and I used Kimik3 for it, so neither players’ model is judging its own game. The board runs on a local server. The players listen to ports 8080 and 8081. And then I start the referee. And every turn, a player gets its view of the enemy waters, picks a square, and just for fun adds a line of trash talk. And as you can see here, Haiku gets off
[04:50] on a strong start. It finds the carrier early and works straight down the line until it sinks it. But Luna comes back hard and by the end game, both players are down to their last ship. But in the end, Haiku finds the last submarine in row H and wins in 34 shots with 50% accuracy. Luna had sunk all but one of Haiku’s ships at that point, so it was very, very close. But this is just a simple game, so I wouldn’t call it a benchmark. But both models clearly played better than random and Haiku just happened to come out as the winner in
[05:23] the end. So there you have it, folks. That is Docker agent in a nutshell. So you can write agents in YAML, run them with one command, share them through a registry, and connect them over A2A with nothing more than a URL. I usually see these code examples on Hugging Face where you have to write so much Python boilerplate code. So I’m super happy that Docker has made this tool that really simplifies the whole process. So, I’m probably going to be using this very often in the future. But, what do you guys think? Have you tried Docker Agent?
[05:55] And what has been your experience? Let us know in the comments section down below. And folks, if you like these types of technical breakdowns, please let me know by smashing that like button underneath the video. And also, don’t forget to subscribe to our channel. This has been Andrus from Better Stack, and I will see you in the next videos.