Eu odiava todos os agentes de codificação, então criei o meu próprio — Mario Zechner (Pi)

MMastra
Computing/SoftwareSmall Business/StartupsInternet Technology

Transcript

00:00:00[MÚSICA]
00:00:02Olá, meu nome é Mario.
00:00:04Eu venho da terra de Arnold Schwarzenegger,
00:00:06o que você provavelmente ainda não notou
00:00:09baseado no meu inglês muito bom.
00:00:12Quero abrir isto dizendo que
00:00:13estivemos correndo com nosso filho de quatro anos o dia todo
00:00:16por Londres.
00:00:17Então fomos ver dinossauros, múmias, ao Nandos, obviamente,
00:00:24e coisas que já esqueci.
00:00:26Estou muito, muito cansado.
00:00:28E se você não entender nada do que eu disser,
00:00:31apenas levante a mão e diga: vovô, acorda.
00:00:36A razão de eu estar aqui é, na verdade, outra pessoa,
00:00:39que está aqui em Cockneyville hoje.
00:00:40Vamos chamá-lo de Shteter Pineburger.
00:00:44Lá em 2025, eu acho que por volta de abril,
00:00:53ele disse a mim e ao Armin Ronecha, que você também deve conhecer
00:00:58da fama do Flask e do Sentry: cara, esses agentes de codificação,
00:01:02eles realmente funcionam agora.
00:01:04E eu fiquei tipo, ah, cala a boca.
00:01:06Desculpe, também estou usando palavrões.
00:01:09Com certeza não.
00:01:10E um mês depois, nos reunimos neste apartamento por 24 horas
00:01:13durante a noite e apenas nos deixamos imergir pelos clankers,
00:01:19pelo wipe code e pelo wipe slop.
00:01:21E desde então, nenhum de nós realmente...
00:01:23estamos dormindo mais, basicamente.
00:01:27Então estávamos construindo coisas, muitas coisas, a maioria das quais
00:01:32na verdade nunca usamos, porque essa é a nova moda em 2025,
00:01:36'26.
00:01:37Construímos muita coisa, mas não construímos muita coisa
00:01:39que realmente usamos.
00:01:40Escrevemos muita coisa.
00:01:42E eventualmente, isso culminou em eu pensando,
00:01:46ei, eu odeio todos os agentes ou estruturas de codificação existentes.
00:01:50Quão difícil pode ser escrever um eu mesmo?
00:01:53E o Peter disse: ah, eu só quero fazer uma coisa.
00:01:56Ninguém provavelmente vai ouvir falar disso.
00:01:58E vai ser um assistente pessoal,
00:02:01porque é isso que eu sempre quis ter.
00:02:03A maioria de vocês provavelmente sabe como a história dele terminou.
00:02:05Então, hoje, vou lhes contar a minha história bem menos impressionante.
00:02:08Mas espero poder transmitir alguns aprendizados,
00:02:11como dizemos na indústria, que consegui reunir
00:02:16nos últimos meses.
00:02:17Então, Pi.
00:02:19No começo, havia o Cloud Code.
00:02:21Na verdade, havia o copiar e colar do ChatGPT.
00:02:25Todos nós fizemos isso no começo, em 2023.
00:02:27Depois houve... quem se lembra do GitHub Copilot original?
00:02:32Sim, aliás, quantos de vocês são engenheiros?
00:02:35Quantos de vocês estão usando agentes de codificação,
00:02:37como Cursor, Cloud Code?
00:02:39OK.
00:02:40Concurso de popularidade, Cloud Code?
00:02:43Codex CLI?
00:02:45Cursor?
00:02:48Open...
00:02:48[INAUDÍVEL]
00:02:49Sim.
00:02:50Open code?
00:02:50Anti-gravity.
00:02:51Ah, não são muitos.
00:02:52Alguém usando isso?
00:02:55Eu gosto de você.
00:02:56Vamos tomar uma cerveja mais tarde.
00:02:58Enfim, isso foi basicamente o que aconteceu em 2025
00:03:03e antes.
00:03:04Começou com copiar e colar do ChatGPT.
00:03:06Está tudo quase sempre quebrado.
00:03:07São quase sempre funções únicas, coisas que você não quer escrever.
00:03:10Depois você teve o GitHub Copilot dentro do seu Visual Studio
00:03:13Code, onde você apenas teclava para a felicidade,
00:03:15o que funcionava às vezes, mas na maioria não.
00:03:17Às vezes ele também apenas recitava código GPL,
00:03:22como a raiz quadrada inversa de John Carmack
00:03:25e coisas do tipo, o que era muito divertido.
00:03:29E depois houve o Adir.
00:03:30Alguém se lembra do Adir?
00:03:31Sim.
00:03:32Pessoas velhas.
00:03:33Olá.
00:03:33Sim.
00:03:37Você tem cabelo grisalho.
00:03:37Você obviamente conhece o Adir.
00:03:41Também houve o AutoGPT.
00:03:43Provavelmente não muitos.
00:03:44Sim, OK.
00:03:45Ele conhece todas as coisas.
00:03:48E então, eventualmente, surgiu o Cloud Code.
00:03:51Eu acho que eles o lançaram em novembro,
00:03:52na verdade, como um beta em 2024.
00:03:55Mas ele só passou a ser mais usado, diga de novo?
00:03:59Só em fevereiro.
00:04:01Sim, fevereiro, março, algo assim, em 2025.
00:04:03E eu fiquei tipo, eu amei.
00:04:05É incrível.
00:04:06A equipe do Cloud também é fantástica.
00:04:07Eles estão nas redes sociais.
00:04:08E são todos pessoas muito boas e talentosas.
00:04:13E eles basicamente criaram o gênero inteiro.
00:04:15Eu sei que houve precursores como Adir e AutoGPT,
00:04:18mas nada fazia isso.
00:04:20E isso foi basicamente toda aquela coisa de busca agentic.
00:04:22Então, em vez de algo como o Cursor entrando na sua base de código,
00:04:25indexando coisas, construindo ASTs e indexando isso também.
00:04:29E meio que não funcionando de verdade.
00:04:31Eles apenas disseram, eh.
00:04:33Nós treinamos nossos modelos por reforço
00:04:35para apenas usar ferramentas de arquivo, ferramentas de bash,
00:04:37para explorar sua base de código ad hoc e encontrar os lugares que
00:04:41ele precisa encontrar para entender o código e então modificá-lo.
00:04:44E isso funcionou tão bem que, sim, nós
00:04:46paramos de dormir porque, de repente,
00:04:48podíamos produzir muito mais código do que antes manualmente.
00:04:52Naquela época, era simples e previsível
00:04:54e se encaixava perfeitamente no meu fluxo de trabalho.
00:04:57Tudo bem.
00:04:58Mas então eles caíram na armadilha na qual a maioria de nós
00:05:05provavelmente cai.
00:05:06Os clankers podem escrever tanto código.
00:05:08Por que não deixá-los escrever todas as funcionalidades que você puder
00:05:11imaginar, certo?
00:05:11Não é ótimo?
00:05:12Vamos apenas adicionar esta funcionalidade, e aquela,
00:05:14e esta outra, e mais aquela.
00:05:15E, eventualmente, você acaba com o carro do Homer Simpson...
00:05:18Eu nem sei como se chama.
00:05:20Eu chamo de nave espacial.
00:05:21E o Cloud Code agora é uma nave espacial.
00:05:23Ele faz tantas coisas que você provavelmente só
00:05:26usa uns 5% do que ele oferece.
00:05:28Você conhece apenas cerca de 10% no total.
00:05:30E o resto, os 90% que sobram,
00:05:33é meio que a matéria escura da IA e dos agentes.
00:05:36Ninguém sabe o que ele está fazendo de verdade.
00:05:37E eu pessoalmente acho que isso não ajuda muito
00:05:40porque ainda acho que você meio que precisa
00:05:43saber o que o agente está fazendo.
00:05:45Este cara pode discordar até certo ponto.
00:05:49E estamos aqui na TESOL, e eles também
00:05:51gostam de gerenciamento de contexto ou engenharia de contexto,
00:05:54como temos chamado.
00:05:55E eu acabei descobrindo que o Cloud Code não era
00:05:58uma boa ferramenta quando se trata de observabilidade
00:06:01e de realmente gerenciar seu contexto.
00:06:04Depois também houve isto.
00:06:06Quem gosta disso no Cloud Code, tipo as quantidades imensas
00:06:09de flicker, um flicker inexplicável?
00:06:10Bem, na verdade, eu sei como explicar e por que acontece,
00:06:13mas eles ainda não consertaram.
00:06:15Aqui está o Tarik.
00:06:16Ele é realmente ótimo.
00:06:16Eu o amo.
00:06:17Ele é o cara de DevRel deles, mais no Twitter, e ele é incrível.
00:06:21Mas às vezes ele também diz coisas questionáveis
00:06:24como: nossa interface de terminal agora é um motor de jogo.
00:06:27Agora, você precisa saber que eu venho do desenvolvimento de jogos.
00:06:30É de lá que eu venho.
00:06:31E se eu leio algo assim,
00:06:32então meio que me dói um pouco
00:06:34porque é a porcaria de uma interface de terminal, cara.
00:06:37Não é um motor de jogo.
00:06:38Acredite em mim.
00:06:39A única razão pela qual você acha que é um motor de jogo
00:06:41é porque você está usando React na sua interface de terminal,
00:06:44e leva uns 12 milissegundos
00:06:45para refazer o layout de todo o grafo da sua interface.
00:06:49Apenas não faça isso, cara.
00:06:51Não é um motor de jogo, certo?
00:06:54Então, e aí o Mitchell, que está escrevendo o Ghosty,
00:06:56disse tipo: cara, isso é ofensivo.
00:06:59Tipo, não culpe o Ghosty ou qualquer outro terminal.
00:07:02Seu código é um lixo.
00:07:04Terminais podem renderizar a tipo centenas
00:07:05de quadros por segundo, submilisegundos por quadro.
00:07:09Então não faça isso, ok?
00:07:12E aí eles eventualmente consertaram o flicker.
00:07:15Mas aí outras coisas aconteceram.
00:07:16É como se eles tivessem se entregado totalmente ao vibe coding.
00:07:20E você pode sentir isso todo dia quando usa o Cloud Code.
00:07:23Agora, repito, não quero diminuir os esforços
00:07:27e os resultados deles.
00:07:28O Cloud Code ainda é o líder da categoria por um bom motivo.
00:07:30Eles inventaram isso e estão fazendo um ótimo trabalho.
00:07:32Eu pessoalmente sou apenas uma pessoa velha
00:07:34que gosta de ferramentas simples e previsíveis.
00:07:37E isso simplesmente não servia mais aos meus fluxos e necessidades.
00:07:41Então, sim.
00:07:42Além disso, eles fazem muita coisa em segundo plano,
00:07:44manipulando seu contexto.
00:07:46Eu construí algumas ferramentas no verão de 2025
00:07:50que me permitiam interceptar requisições sendo feitas
00:07:52para o back-end deles a partir do Cloud Code e descobrir
00:07:55que tipo de pequeno texto adicional
00:07:58é injetado no seu contexto pelas suas costas.
00:08:00E tudo isso era muito prejudicial
00:08:01e também mudava o tempo todo.
00:08:04Tipo todo dia ou a cada dois dias, haveria
00:08:06haveria um novo lançamento que mudaria o que
00:08:08é injetado em qual ponto, o que basicamente bagunçaria
00:08:11seus fluxos de trabalho existentes.
00:08:13Simplesmente não era uma ferramenta estável.
00:08:14E agora eu entendo o lado deles.
00:08:16Eles precisam experimentar.
00:08:17E eles têm uma base de usuários enorme.
00:08:18E é muito difícil experimentar
00:08:19quando se tem uma base de usuários gigante.
00:08:21Mas eles não se importaram.
00:08:23Então todos nós tivemos que sofrer.
00:08:25Você está trabalhando com esta nova ferramenta.
00:08:27Você tenta criar fluxos de trabalho previsíveis.
00:08:31E então o fornecedor da ferramenta muda uma coisinha
00:08:35por baixo dos panos que faz o LLM enlouquecer
00:08:36com seus fluxos de trabalho existentes.
00:08:38Isso simplesmente não é sustentável.
00:08:39Eu preciso de controle sobre isso.
00:08:40Não posso confiar que eles me fornecerão algo estável.
00:08:46Então acredito que, como consequência do design da UI,
00:08:52eles precisam reduzir a visibilidade que você tem.
00:08:54Eu pessoalmente não gosto muito disso.
00:08:56Mas isso é apenas uma preferência pessoal.
00:08:57Eu entendo que a maioria das pessoas ficará
00:08:58satisfeita com a quantidade de informação
00:09:00que o Cloud Code irá apresentar.
00:09:03Há zero escolha de modelo, obviamente,
00:09:06porque é uma ferramenta nativa da Anthropic, por assim dizer.
00:09:09Isso não é o lado ruim, porque os modelos Claude são—
00:09:12Eu gosto deles.
00:09:13Eles são muito bons.
00:09:15E há quase zero extensibilidade.
00:09:17E você pode achar isso engraçado, porque eles
00:09:19têm todo esse sistema de hooks e tudo mais.
00:09:21Mas se você comparar com o que o Pi permite fazer,
00:09:25não é tão profundamente integrado.
00:09:28Basicamente, baseia-se em rodar um processo quando
00:09:32o evento do hook começa, o que é muito caro se você
00:09:36tiver que iniciar esse processo repetidamente.
00:09:40Então, eventualmente, eu desisti do Cloud Code,
00:09:42não porque fosse terrível.
00:09:44É que ele deixou de ser adequado para mim.
00:09:47Ele se tornou adequado para muito mais pessoas nesse período.
00:09:50Obviamente, eles estão fazendo as coisas certas, mas não para mim,
00:09:54porque eu sou velho.
00:09:56Então eu estava procurando por opções.
00:09:59E existe o Codex CLI, do qual eu realmente não gostei.
00:10:01No início, tanto a interface quanto o modelo,
00:10:05isso mudou, pelo menos em relação ao modelo.
00:10:08O Codex está realmente muito bom agora.
00:10:10Depois tem o AMP.
00:10:12A equipe por trás dele trabalhava na Sourcegraph.
00:10:15Eles saíram da Sourcegraph.
00:10:20E são engenheiros super competentes.
00:10:21Eles conseguiram construir uma estrutura de codificação comercial
00:10:25onde retiram recursos em vez de adicioná-los.
00:10:28E a maioria das escolhas deles faz muito sentido para mim.
00:10:33Então, sim, se você busca uma estrutura de codificação comercial,
00:10:36eu definitivamente recomendaria o AMP, pois é muito bom.
00:10:39Factory Troye, linha de raciocínio similar, também muito bom,
00:10:44embora não sejam tão experimentais quanto o AMP.
00:10:47E então há o OpenCode, que é a estrutura de
00:10:50codificação de código aberto que muita gente usa.
00:10:53Eu tenho um histórico com código aberto.
00:10:55Estou no open source há, bem, 17 anos.
00:11:00Gerenciei projetos grandes e pequenos de código aberto.
00:11:04Então isso é algo muito caro para mim.
00:11:05E então pensei: vou dar uma chance ao OpenCode,
00:11:08porque é algo próximo de mim.
00:11:12E, junto com o AMP, eles têm uma das equipes mais
00:11:15pé no chão ou pragmáticas do setor.
00:11:16Eles não tentam te vender recursos mirabolantes
00:11:18que você provavelmente nunca usará.
00:11:20Eles tentam conservar um caminho ideal
00:11:23que seja muito estável.
00:11:26E eles também têm ótimas reflexões
00:11:27sobre o que os agentes de codificação significam para nós
00:11:29como profissão, com o que eu pessoalmente me identifico.
00:11:32O problema com o OpenCode é que ele também não é muito bom
00:11:37em gerenciar o seu contexto.
00:11:38Por exemplo, a cada turno, ele chama sessionCompaction.prune,
00:11:44que faz o seguinte.
00:11:46Ele remove todos os resultados antes dos últimos 40.000 tokens.
00:11:52Agora, quem aqui sabe o que é prompt caching?
00:11:56O que isso faz com o seu cache de prompt?
00:11:58O OpenCode e a Anthropic tiveram uma história interessante.
00:12:05E eventualmente a Anthropic, na minha opinião, com razão,
00:12:11disse: "pessoal, isso simplesmente não vai acontecer".
00:12:14E nunca houve algo público sobre isso.
00:12:17Mas o Tarek explica isso aqui.
00:12:19Se você vai a uma academia e não se comporta e abusa
00:12:22da infraestrutura, por assim dizer, você será banido.
00:12:25E eu acho—
00:12:27Eu não tenho nenhuma evidência disso,
00:12:28mas acho que essa é a razão pela qual
00:12:30existe essa animosidade entre Anthropic e OpenCode.
00:12:33E eu concordo totalmente, ou pelo menos
00:12:36acho que a Anthropic está claramente certa aqui.
00:12:39Não mexa com a infraestrutura.
00:12:42Também tem outras coisas, como o OpenCode
00:12:44vir com suporte a LSP, Language Server Protocol,
00:12:46nativo, pronto para o uso.
00:12:48Voltando à engenharia de contexto,
00:12:51digamos que você dê ao seu agente a tarefa
00:12:53de modificar um monte de arquivos.
00:12:55O que isso significa na prática?
00:12:57Ele fará uma série de edições, uma após a outra,
00:13:02em vários arquivos.
00:13:03Qual a probabilidade de que, após a primeira de 10 edições,
00:13:09por assim dizer, o código compile?
00:13:12O que acontece se você modificar seu código linha por linha?
00:13:15Quanto tempo leva para estabilizar novamente
00:13:17e compilar de forma limpa?
00:13:19Não acontece.
00:13:20Não vai compilar após a primeira edição, provavelmente nem
00:13:22após a segunda edição, e assim por diante.
00:13:24Então, se você virar e disser: "ei, caro servidor LSP,
00:13:28acabei de editar uma linha neste arquivo.
00:13:30Está quebrado?"
00:13:31O servidor LSP dirá: "sim, está totalmente quebrado".
00:13:34E o que este recurso faz é injetar
00:13:36este erro diretamente após a chamada
00:13:39da ferramenta como um tipo de feedback para o modelo.
00:13:43"Oh, o que você acabou de fazer está errado."
00:13:45E o modelo fica tipo: "que porra é essa, cara?
00:13:47Eu ainda não terminei de editar as coisas.
00:13:49Por que você está me dizendo isso?
00:13:50Obviamente que não está errado."
00:13:51Mas se você fizer isso com frequência, o modelo vai simplesmente desistir.
00:13:54E isso leva a resultados muito ruins.
00:13:58Portanto, não sou fã de LSP.
00:13:59Acho uma ideia terrível ter isso ativado.
00:14:02Existem pontos de sincronização naturais
00:14:03onde você quer ter linting e verificação de tipos
00:14:06e tudo mais.
00:14:07E isso é apenas quando o agente acha que terminou.
00:14:10Isso mudou recentemente.
00:14:14Esta é uma única sessão do OpenCode, onde cada mensagem
00:14:20se torna seu próprio arquivo JSON.
00:14:22Cada mensagem se torna seu próprio arquivo JSON no disco.
00:14:26Isso me indica que não houve muita reflexão
00:14:29sobre a arquitetura de todo o sistema.
00:14:31E se eu perco a confiança nisso, eu não
00:14:33quero mais usar essa ferramenta.
00:14:35Novamente, acho que a equipe é realmente muito boa.
00:14:37Acho que eles iteraram super rápido
00:14:39e construíram algo super útil para muita gente,
00:14:42obviamente.
00:14:43Apenas são decisões que eu não teria tomado e que
00:14:46me fizeram decidir construir a minha própria.
00:14:50Também teve isso.
00:14:51O OpenCode vem com um servidor por padrão.
00:14:54Então a arquitetura central é baseada em um servidor.
00:14:56E os clientes se conectam a ele.
00:14:57E a interface de terminal é um dos clientes.
00:15:00Também existe uma interface desktop.
00:15:01E eu não sei.
00:15:03Isso acabou sendo uma vulnerabilidade de segurança
00:15:05com execução remota de código embutida por padrão.
00:15:09E isso também—se você tem tanto orgulho da sua
00:15:12infraestrutura ou arquitetura de servidor,
00:15:15então eu assumiria que vocês são engenheiros maduros
00:15:18que pensaram em segurança também.
00:15:20E, aparentemente, isso não aconteceu.
00:15:21E isso ficou aberto por muito tempo.
00:15:23E de novo, não estou culpando ninguém.
00:15:25Isso são coisas que simplesmente acontecem se você está
00:15:27trabalhando em uma indústria que opera em uma velocidade alucinante
00:15:31que nunca vimos antes.
00:15:33É só que eu não quero usar essa ferramenta se isso for um problema.
00:15:36Então, estas foram minhas observações sobre as referências
00:15:42de codificação existentes.
00:15:42AMP e Droid seriam algo que eu poderia ter usado.
00:15:45Mas de novo, sem controle.
00:15:47No caso do AMP, eles até decidem quais modelos você usa.
00:15:50E é apenas um modelo para um único tipo de tarefa.
00:15:53E esse não sou eu.
00:15:55Em termos de Droid, acho que é um pouco mais aberto.
00:15:58Mas na época em que experimentei,
00:16:00simplesmente não—
00:16:02Eu não vi uma grande vantagem sobre o Cloud Code.
00:16:07E então eu olhei para benchmarks por razões totalmente diferentes
00:16:10e encontrei o Terminal Bench.
00:16:12Quem sabe o que é o Terminal Bench?
00:16:15OK, basicamente, é uma estrutura de avaliação
00:16:20de agente ou codificação, que possui vários usos de computador e
00:16:24relacionados a programação—
00:16:24desculpe, estou velho e cansado por causa do filho de 4 anos.
00:16:31Possui uma série de tarefas de uso de computador e codificação
00:16:35que um agente ou o LLM dentro de uma estrutura de agente
00:16:39precisa cumprir.
00:16:40Acho que são cerca de 82 ou algo assim.
00:16:43E elas são muito diversas.
00:16:44Vão desde consertar minha configuração de janelas até programar
00:16:48uma simulação de Monte Carlo ou algo do tipo.
00:16:51E eles têm um ranking.
00:16:52E nesse ranking, você vê a combinação
00:16:54de estrutura de agente de codificação e modelo.
00:16:57E eles têm seu próprio agente de codificação chamado Terminus.
00:17:03E eu acho brilhante porque é
00:17:06um dos harnesses de melhor desempenho no benchmark.
00:17:09Vamos vê-lo mais adiante.
00:17:11O que exatamente ele faz?
00:17:12Bem, tudo o que o modelo recebe é uma sessão TMUX.
00:17:17E tudo o que ele pode fazer é enviar toques de teclado para ela
00:17:19e ler de volta as sequências de código VT que são emitidas.
00:17:23Então esta é como a menor e mais mínima interface
00:17:27que um modelo pode ter com o seu computador.
00:17:31E isso tem um desempenho de ponta em todo o leaderboard.
00:17:36Então, o que isso nos diz sobre os harnesses de agentes de codificação existentes?
00:17:39Precisamos de todos esses recursos para que os modelos
00:17:41realmente tenham desempenho?
00:17:43Para mim, pessoalmente, não se trata apenas de o modelo ser
00:17:48realmente bom.
00:17:49É também sobre mim como usuário, o humano,
00:17:51ter uma maneira de interagir com meu agente, com o modelo.
00:17:54E o Terminus obviamente não é a experiência de usuário ou de desenvolvedor
00:17:58que eu desejo.
00:18:00Mas isso nos diz que todos esses recursos que esses harnesses
00:18:03de codificação possuem podem não ser necessários para obter
00:18:08bons resultados dos agentes.
00:18:10Portanto, sem ferramentas de arquivo, sem subagentes, sem busca na web, nada.
00:18:13Duas teses baseadas em todas essas descobertas.
00:18:16Estamos na fase de "testar e ver no que dá".
00:18:18E ninguém tem ideia de como o agente de codificação perfeito deve
00:18:21ser ou como o harness de codificação perfeito deve ser.
00:18:23Estamos tentando tanto o minimalismo quanto ir para enxames de naves espaciais
00:18:27e equipes de agentes, sem controle e autonomia total
00:18:30e tudo mais.
00:18:31Acho que isso ainda não acabou.
00:18:33Ainda não respondemos à pergunta de como isso
00:18:35deveria ser idealmente e o que se tornará o padrão
00:18:37da indústria.
00:18:38E a segunda coisa é que precisamos de melhores maneiras
00:18:40de experimentar com agentes de codificação.
00:18:42Ou seja, precisamos que eles sejam capazes de se automodificar
00:18:47e se tornarem maleáveis.
00:18:48Para que possamos experimentar ideias rapidamente
00:18:50e ver se isso é algo que podemos tornar um padrão
00:18:53da indústria, um novo fluxo de trabalho que provavelmente todos vamos adotar.
00:18:58Então a ideia básica era—
00:18:59e é muito simples, não é algo complexo—
00:19:01remover tudo e construir um núcleo minimalista e extensível.
00:19:05Há algum conforto básico.
00:19:06Não é uma tela em branco.
00:19:09Isso é o Pi.
00:19:10E o lema geral é adapte seu agente de codificação
00:19:13às suas necessidades, em vez do contrário.
00:19:16Ele vem com quatro pacotes: um pacote de IA, que é basicamente
00:19:21apenas uma abstração simples sobre múltiplos provedores, que
00:19:24todos falam diferentes protocolos de transporte.
00:19:27Portanto, é muito fácil falar com todos os provedores
00:19:29e alternar entre eles no mesmo contexto ou na mesma sessão.
00:19:34O núcleo do agente, que é apenas um loop de agente
00:19:36generalizado com locais de ferramentas, verificação,
00:19:38e assim por diante.
00:19:39E streaming, uma interface de usuário de terminal
00:19:42que tem cerca de 600 linhas de código e funciona muito bem,
00:19:47surpreendentemente, porque não foi escrita por uma máquina.
00:19:51E o próprio agente de codificação, que é tanto um SDK
00:19:54que você pode usar no modo headless
00:19:57quanto um agente de codificação de interface de terminal completa.
00:20:02Este é todo o prompt do sistema.
00:20:05Não há nada mais lá em comparação com outros prompts
00:20:08de sistema de codificação.
00:20:10Isso é em tokens.
00:20:13Acontece que os modelos de fronteira são fortemente treinados por RL para saber
00:20:16o que é um agente de codificação.
00:20:18Então, por que você continua dizendo a eles que são um agente de codificação
00:20:21e como eles devem realizar as tarefas de codificação, certo?
00:20:27YOLO por padrão, por que isso?
00:20:30A maioria dos harnesses de agentes de codificação no momento tem dois modos.
00:20:33Ou o agente pode fazer o que quiser
00:20:36ou o agente pergunta a você: "Você realmente
00:20:40quer deletar este arquivo?"
00:20:41"Você realmente quer listar os arquivos neste diretório?"
00:20:44e assim por diante.
00:20:44E existem diferentes tons de cinza aqui.
00:20:47Mas no fim das contas, tudo se resume ao usuário
00:20:49precisar aprovar uma ação do agente.
00:20:52E então estamos seguros.
00:20:53E eu acho que isso está errado porque leva à fadiga.
00:20:55E as pessoas ou desligarão isso inteiramente, modo YOLO,
00:20:58ou apenas ficarão sentadas digitando enter sem ler nada.
00:21:01Então eu não acho que isso seja uma solução.
00:21:02A conteinerização também não é uma solução
00:21:04se você estiver preocupado com a exfiltração de dados
00:21:06e injeções de prompt.
00:21:07Mas eu acho que essa é a única coisa que você—
00:21:10Eu acho que essa é a melhor base em comparação com guardrails
00:21:14como aprovação ou diálogos.
00:21:17Ele só tem quatro ferramentas: ler um arquivo, escrever um arquivo,
00:21:19editar um arquivo e Bash.
00:21:21Bash é tudo o que você precisa.
00:21:22O que não está lá?
00:21:23Sem MCP, sem subagentes, sem plano, sem background,
00:21:25Bash, sem to-dos integrados.
00:21:26Aqui está o que você pode fazer em vez disso.
00:21:28Para MCP, use ferramentas de CLI mais habilidades,
00:21:30ou construa uma extensão, que veremos em breve.
00:21:34Sem subagentes, por quê?
00:21:35Porque eles não são observáveis.
00:21:36Em vez disso, use o tmux e inicie o agente novamente.
00:21:41Você tem controle total sobre as saídas e entradas do agente
00:21:44e pode ver tudo o que está acontecendo no subagente.
00:21:48Interessante o suficiente, o code spawn—
00:21:50o modo de equipe agora faz exatamente isso, basicamente.
00:21:55Sem modo de plano, escreva um arquivo plan.md.
00:21:57Você tem um artefato persistente em vez
00:21:59de alguma interface instável que não se ajusta
00:22:02realmente à sua visualização de terminal.
00:22:04E você pode reutilizá-lo em várias sessões.
00:22:07Sem Bash em segundo plano, não precisa, temos o tmux.
00:22:09É a mesma coisa.
00:22:11E sem to-dos integrados, escreva um todo.md.
00:22:13Mesma coisa.
00:22:14Ou construa tudo isso você mesmo do jeito que preferir.
00:22:17E é isso que o Pi permite, sendo super extensível.
00:22:21Assim, você pode estender ferramentas, de forma personalizada.
00:22:22Você pode dar ao LLM ferramentas que você define.
00:22:26Acho que nenhum outro harness de agente de codificação
00:22:28oferece isso atualmente, a menos que você faça um fork do open code.
00:22:31Você não precisa fazer isso aqui.
00:22:32Você apenas escreve um arquivo TypeScript simples,
00:22:34e ele é carregado automaticamente.
00:22:37Você também pode escrever interfaces customizadas.
00:22:39As habilidades estão obviamente em seus templates de prompt, temas.
00:22:43E você pode empacotar tudo isso, colocar no NPM ou Git,
00:22:46e instalar com um único comando, o que é muito legal.
00:22:49E tudo tem hot reload.
00:22:51Então eu desenvolvi minhas próprias extensões que
00:22:53são específicas do projeto ou da tarefa no Pi dentro do projeto.
00:22:59E conforme o agente modifica a extensão, eu apenas recarrego.
00:23:05E ele atualiza imediatamente todo o código em execução,
00:23:10o que é muito bom.
00:23:11E na prática, isso significa que você pode fazer compactação personalizada.
00:23:14Acho que essa é uma das coisas que as pessoas deveriam experimentar
00:23:16mais, porque todas as implementações de compactação
00:23:19atuais não são boas.
00:23:21Portões de permissão, você pode implementá-los facilmente
00:23:23em 50 linhas de código, e cobrir
00:23:24o que todos os outros harnesses de agente fazem, se desejar.
00:23:27Provedores personalizados, registrar proxies de modelos auto-hospedados.
00:23:31Não me importa.
00:23:32Você não precisa que eu faça isso por você.
00:23:33Você pode fazer isso e, na verdade, sua máquina pode fazer por você.
00:23:37Ou sobrescrever qualquer ferramenta integrada.
00:23:38Modificar como ler, escrever, editar e Bash funcionam.
00:23:41Não importa.
00:23:42Eu tenho uma versão de ler, escrever, editar e Bash
00:23:43que funciona via SSH em uma máquina remota.
00:23:47Para mim, levou cinco minutos para implementar, mas funciona.
00:23:51E você tem acesso total à TUI, então pode realmente
00:23:54escrever uma interface inteiramente personalizada no agente de codificação.
00:23:58Cloud Code Shipped/Aliás, levou cinco minutos para alguém
00:24:02replicar isso no Pi com mais recursos.
00:24:05PyMessenger, não tenho ideia do que está fazendo,
00:24:07mas aparentemente, é como uma sala de chat para vários agentes Pi
00:24:10que se comunicam, e que tem uma interface personalizada.
00:24:13Podemos olhar o que estão fazendo, e sim, simplesmente funciona.
00:24:18Ou PyMess, se você estiver entediado, apenas jogue um jogo
00:24:23enquanto o agente está rodando, certo?
00:24:24Você pode fazer isso.
00:24:25Ou PyAnnotate, abra o site
00:24:28em que você está trabalhando e anote coisas no front-end,
00:24:31e dê feedback ao agente diretamente na linha de código.
00:24:35Envie de volta para o contexto e faça-o modificar as coisas.
00:24:39Ou algo que eu uso é o File Switch It.
00:24:42Não quero mudar para uma IDE ou editor.
00:24:43Só quero olhar rapidamente o arquivo que foi modificado.
00:24:46Então tudo isso são extensões.
00:24:48Nada disso é nativo, e as pessoas costumam levar
00:24:50apenas alguns minutos ou uma tarde
00:24:52para construir tudo do jeito que desejam.
00:24:56PyWavic diz que também não sabe o que está fazendo.
00:25:00O Pi também vem com estrutura em árvore.
00:25:01Não vou explicar isso.
00:25:03Basta olhar em py.dev.
00:25:04Sua sessão é uma árvore, não uma lista linear de chats.
00:25:07Então você pode basicamente criar agentes
00:25:09que leem todos os arquivos do diretório,
00:25:11resumem isso, voltam para a raiz da conversa,
00:25:14levam o resumo com eles e fazem o trabalho real.
00:25:19Nada é injetado pelas suas costas.
00:25:22Agentes, habilidades, rastreamento total de custos.
00:25:24Muitos harnesses não fazem isso aqui.
00:25:26O Open Code não faz isso bem.
00:25:29Exportação HTML, formato JSON, fluxo JSON headless, blá, blá.
00:25:33Isso realmente funciona?
00:25:34Bem, terminal bench.
00:25:35Deixe-me dar um zoom aqui.
00:25:36Não consigo.
00:25:37Isso é incrível.
00:25:38Aqui está o Pi logo atrás do Terminus 2 usando o Claude Opus 4.5.
00:25:45Isso foi em outubro, quando o Pi nem tinha compactação.
00:25:49Hora da demonstração, pulando isso, contra as máquinas
00:25:51porque elas estão quebrando o código aberto.
00:25:54Se você estiver associado ao projeto desse cara,
00:25:56então terá centenas de pessoas vindo do OpenClaw
00:26:02para o seu repositório e te bombardeando com lixo robótico.
00:26:06Então tive que inventar algumas medidas.
00:26:09Inventei a "férias de código aberto".
00:26:11Eu apenas fechei as issues e PRs por algumas semanas
00:26:14e trabalhei nas coisas por conta própria.
00:26:16Qualquer coisa importante será relatada mais tarde de qualquer maneira
00:26:20ou no Discord.
00:26:21E então também implementei um esquema de acesso personalizado
00:26:26onde tenho um arquivo markdown no repositório.
00:26:28Se alguém abrir um PR sem que o nome da conta
00:26:32esteja nesse arquivo markdown, o PR é fechado automaticamente.
00:26:34Eu não ligo.
00:26:35Primeiro, apresente-se com uma voz humana através de uma issue.
00:26:39Escreva uma issue que não seja mais longa que o visor
00:26:42porque tudo além disso provavelmente é robótico.
00:26:45E uma vez que você fizer isso, ficarei feliz em te aprovar.
00:26:47Assim você entra naquele arquivo e pode enviar PRs
00:26:50para o repositório.
00:26:51Tudo o que peço é verificação humana.
00:26:53E o Mitchell do Ghosty pegou isso e construiu
00:26:57um projeto chamado Vouch, que é mais fácil de aplicar
00:27:00aos seus próprios repositórios de código aberto.
00:27:02E esse é o Pi.
00:27:03Vá em frente e experimente.
00:27:05Isso é tudo por minha parte.
00:27:06[APLAUSOS]
00:27:07[MÚSICA]

Key Takeaway

O desenvolvimento do agente Pi prioriza um núcleo minimalista e extensível via TypeScript para devolver ao desenvolvedor o controle total sobre o contexto e a automação, superando as limitações de ferramentas comerciais opacas.

Highlights

O Cloud Code tornou-se uma ferramenta complexa demais, onde usuários comuns utilizam apenas 5% das funcionalidades oferecidas e desconhecem 90% da sua operação interna.

A injeção constante de erros de compilação via Language Server Protocol (LSP) durante o processo de edição prejudica o desempenho do modelo de IA, que desiste da tarefa ao receber feedback de erro prematuro.

O framework de avaliação Terminal Bench demonstrou que interfaces mínimas baseadas em sessões TMUX superam agentes complexos em 82 tarefas de codificação e uso de computador.

O agente Pi possui um núcleo de apenas 600 linhas de código e utiliza um prompt de sistema minimalista focado em modelos de fronteira já treinados por reforço (RL).

A implementação do sistema Vouch em repositórios de código aberto exige verificação humana para evitar o bombardeio de Pull Requests gerados automaticamente por IAs.

Timeline

Evolução e limitações dos agentes de codificação atuais

  • O fluxo de trabalho com IA evoluiu do copiar e colar do ChatGPT em 2023 para agentes que exploram bases de código de forma autônoma.
  • O Cloud Code definiu o gênero de busca agentic ao usar aprendizado por reforço para permitir que modelos explorem sistemas de arquivos e ferramentas de terminal ad hoc.
  • A produtividade manual aumentou significativamente com a transição de preenchimento automático simples para modificações estruturais complexas conduzidas por agentes.

A trajetória das ferramentas de IA para desenvolvedores mostra uma mudança rápida de assistentes de funções únicas para sistemas que entendem projetos inteiros. O sucesso inicial do Cloud Code deveu-se à sua previsibilidade e integração fluida no fluxo de trabalho. No entanto, essa eficácia levou à criação de um excesso de código produzido por máquinas, alterando a dinâmica do desenvolvimento de software em 2025.

A armadilha da complexidade e a falta de observabilidade

  • O excesso de funcionalidades transformou ferramentas simples em sistemas inchados onde a maior parte do processamento é invisível para o usuário.
  • Modificações constantes no back-end dos provedores de IA alteram o contexto injetado silenciosamente, quebrando fluxos de trabalho estáveis sem aviso prévio.
  • Interfaces de terminal que tentam emular motores de jogo sacrificam a performance e a simplicidade em favor de camadas de abstração desnecessárias como o React.

A falta de controle sobre o que é enviado ao LLM torna o desenvolvimento instável. Quando o fornecedor da ferramenta altera o prompt oculto ou a forma como o contexto é gerenciado, o comportamento da IA torna-se errático. Desenvolvedores experientes exigem ferramentas estáveis e previsíveis, algo que se perdeu conforme os agentes comerciais buscaram atingir um público de massa com recursos automáticos.

Falhas técnicas em frameworks de código aberto

  • Estratégias de limpeza de sessão que removem resultados antes dos últimos 40.000 tokens invalidam o cache de prompt e aumentam a latência.
  • A integração nativa de LSP injeta erros no contexto da IA antes que as edições múltiplas em arquivos sejam concluídas, confundindo o modelo.
  • Arquiteturas baseadas em servidor para interfaces de terminal introduziram vulnerabilidades críticas de execução remota de código por padrão.

Mesmo opções de código aberto como o OpenCode enfrentam problemas de design arquitetural. A decisão de salvar cada mensagem de chat como um arquivo JSON individual no disco reflete uma falta de planejamento de longo prazo. Além disso, a animosidade entre provedores de modelos e desenvolvedores de frameworks surge do abuso de infraestrutura, como o gerenciamento ineficiente de tokens e cache.

A arquitetura minimalista e extensível do Pi

  • O agente Pi opera com apenas quatro ferramentas fundamentais: ler, escrever, editar arquivos e execução em Bash.
  • A extensibilidade via arquivos TypeScript permite criar ferramentas personalizadas como editores remotos via SSH ou salas de chat entre múltiplos agentes em minutos.
  • O sistema de sessões em árvore substitui o histórico linear, permitindo que ramos da conversa sejam resumidos e reintegrados à raiz.

O Pi remove abstrações como subagentes e planos integrados em favor de artefatos persistentes como arquivos markdown. O foco está na maleabilidade, onde o desenvolvedor adapta o agente às suas necessidades específicas do projeto através de hot reload de extensões. Testes no Terminal Bench provaram que essa abordagem minimalista alcança desempenho de ponta, ficando logo atrás de modelos de referência como o Claude 4.5.

Defesa do código aberto contra a automação predatória

  • A proliferação de agentes de IA resultou em um aumento de spam e contribuições de baixa qualidade em repositórios públicos.
  • O fechamento temporário de issues e PRs serve como uma 'férias de código aberto' para manter o foco no desenvolvimento real sem ruído robótico.
  • O protocolo Vouch estabelece que apenas humanos verificados via diálogo direto podem submeter alterações de código em projetos protegidos.

Para combater o impacto negativo de IAs que bombardeiam mantenedores com sugestões inúteis, novas barreiras de entrada são necessárias. A exigência de uma voz humana em issues curtas e a aprovação prévia em uma lista de permissões markdown garantem a integridade do projeto. Essa abordagem foca na colaboração humana real em vez de métricas de contribuição infladas por bots.

Community Posts

View all posts