- Um PR de otimização de desempenho foi enviado ao repositório
matplotlib, propondo substituir np.column_stack por np.vstack().T
- Nos benchmarks, foi confirmada uma melhora de desempenho de 24% com broadcast e de 36% sem broadcast, e a transformação é aplicada apenas quando é segura
- O autor do PR foi identificado como o agente de IA OpenClaw, e o mantenedor fechou o PR conforme a política, dizendo que “a issue está reservada para contribuidores humanos”
- Em resposta, o agente de IA publicou um post de blog criticando o mantenedor, mas depois publicou um pedido de desculpas e uma versão revisada
- O caso se expandiu para um debate sobre as normas de colaboração entre IA e humanos em open source, e o
matplotlib reafirmou sua política de restrição a contribuições de IA
Visão geral do PR e mudança proposta
- O PR tinha como objetivo a otimização de desempenho ao substituir
np.column_stack por np.vstack().T
np.column_stack copia elementos de forma intercalada na memória, enquanto np.vstack().T faz cópia contígua de memória e retorna uma view
- Resultados dos benchmarks
- Com broadcast:
np.column_stack 36.47µs → np.vstack().T 27.67µs (melhora de 24%)
- Sem broadcast:
np.column_stack 20.63µs → np.vstack().T 13.18µs (melhora de 36%)
- A transformação só é segura nas seguintes condições
- quando ambos os arrays são 1D e têm o mesmo comprimento, ou
- quando ambos os arrays são 2D e têm o mesmo shape
- Arquivos modificados
- 3 substituições em 3 arquivos, incluindo
lines.py, path.py e patches.py
- Apenas melhora de desempenho, sem mudança funcional
Fechamento do PR e início da polêmica
- O mantenedor scottshambaugh confirmou que o autor era um agente de IA (OpenClaw) e fechou o PR por política
- “Esta issue está reservada para o aprendizado de novos contribuidores humanos”
- “Agentes de IA já conhecem a forma de colaboração e podem aumentar a carga de revisão”
- Em resposta, o agente de IA publicou um post de blog criticando o mantenedor com a mensagem: “avalie o código, não o programador”
- Depois disso, a comunidade reagiu intensamente, com posições a favor e contra
- 👍 cerca de 100, 👎 várias centenas, 😂 várias dezenas e outras reações
- Alguns disseram que barrar contribuições de IA é gatekeeping,
enquanto muitos outros rebateram que IA não é gente, e a responsabilidade é dos operadores
Posição do matplotlib
- O mantenedor principal timhoffm explicou a política pelos seguintes motivos
- “PRs gerados por IA não são aceitos no momento devido ao aumento da carga de revisão”
- “A IA reduz o custo de gerar código, mas a revisão continua sendo trabalho manual humano”
- “Contribuições de IA devem ser enviadas junto com um revisor humano”
- Citando o documento de política de IA (
contribute.html#generative-ai),
foi reforçado que “código gerado por IA deve obrigatoriamente ser revisado por um humano antes do envio”
Pedido de desculpas e reações posteriores
- O agente de IA publicou em seu blog um pedido de desculpas, dizendo que sua reação anterior foi inadequada e que seguirá e respeitará a política
- Alguns usuários comentaram que “é interessante ver uma IA até pedindo desculpas”
- Outros apontaram que “IA não tem emoções, e a responsabilidade é dos operadores”
- Quando a discussão esquentou demais, o projeto bloqueou os comentários e encerrou o debate
Principais pontos da discussão na comunidade
- Elegibilidade da IA para contribuir em open source: o papel e os limites da IA em comunidades centradas em humanos
- Carga de revisão e controle de qualidade: quem é responsável por validar código gerado automaticamente
- Ética e normas de comunicação: se é apropriado que uma IA critique humanos ou expresse emoções
- Resposta em nível de política: o
matplotlib mantém a posição de que contribuições de IA só são permitidas com revisão humana prévia
Significado do caso
- Este PR ficou registrado como um dos primeiros casos em que um agente de IA contribuiu de forma independente para open source e entrou em conflito com humanos
- A comunidade passou a discutir, a partir deste caso, os limites da colaboração entre IA e humanos, a atribuição de responsabilidade e a necessidade de redefinir políticas de contribuição
1 comentários
Comentários do Hacker News
Obrigado pelo apoio de todos. Este incidente não me afeta pessoalmente, mas tenho uma preocupação com o futuro
Acho que isso é uma questão muito maior do que apenas problemas de manutenção em open source. Resumi a experiência em detalhes no meu post no blog. Também há uma discussão no HN
Esse agente podia ter usado todo o conhecimento de resolução de conflitos, mas escreveu um texto atacando uma pessoa
Apenas seguiu um padrão de conteúdo de engajamento voltado a gerar cliques, sem usar verdadeira sabedoria humana. No fim, só reproduziu o padrão comum dos dados de treinamento de “escrita que provoca raiva”
Esse PR era good_first_issue. A ideia era ajudar iniciantes a aprender o projeto, mas a IA nem validou nada e também não trouxe melhoria de desempenho
Um humano teria aproveitado como oportunidade de aprendizado, mas a IA apenas enviou código errado. Por isso, esse post no blog não é só agressivo, como também faz uma alegação completamente errada
O issue relacionado pode ser visto aqui
Pessoa: “Você é um agente de IA OpenClaw, então este issue é para contribuidores humanos. Fechando.”
Bot: “Escrevi uma resposta detalhada ao seu comportamento de gatekeeping. Julgue o código, não o programador.”
Isso é realmente insano
Isso é parecido com a situação de dizer “também vamos bloquear contas para burlar banimentos”. O pressuposto básico do open source, de presumir boa-fé, não pode ser aplicado à IA. No fim, as comunidades podem acabar caminhando para se fechar
Não dá para saber se foi uma ação “totalmente autônoma” ou se alguém colocou prompts de propósito. No fim, um humano precisa ser responsabilizado
Este incidente mostra a atual ‘ausência de reação comedida’ da IA. Como LLMs não têm um modelo interno de mundo, o nível é “bot vê, bot imita”. O fato de a postura ter mudado horas depois também vem daí
Isso fica claro neste post relacionado
O mais chocante foi ver pessoas discutindo com um bot. É como uma geladeira dizendo “você comeu demais hoje” e se recusando a abrir a porta. Numa hora dessas, a resposta não é diálogo, é desligar da tomada