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]