Seu MCP não precisa de 30 ferramentas: código é suficiente

2025-08-18
Seu MCP não precisa de 30 ferramentas: código é suficiente

Este artigo explora uma nova abordagem usando um servidor MCP de ferramenta única que aceita código de programação como entrada. O autor aponta os desafios com ferramentas de linha de comando, como dependência de plataforma, dependência de versão e falta de documentação, tornando-as difíceis de usar para ferramentas de agente. Em contraste, um servidor MCP pode manter o estado e expor uma única ferramenta (por exemplo, um interpretador Python executando eval()), permitindo que as ferramentas de agente gerenciem melhor as sessões e componham ferramentas. O autor demonstra a eficácia dessa abordagem com pexpect-mcp, que transforma o servidor MCP em um interpretador Python com estado, simplificando a depuração e melhorando a eficiência. Além disso, o autor explora a substituição do MCP do Playwright por um que expõe a API do Playwright via JavaScript, reduzindo as definições de ferramentas e melhorando a eficiência da transferência de dados. Embora existam preocupações de segurança, o autor argumenta que essa abordagem tem potencial significativo e merece mais exploração.

Leia mais
Desenvolvimento Ferramentas de Agente

Código é tudo o que você precisa: As limitações dos pipelines de múltiplos componentes (MCPs)

2025-07-03
Código é tudo o que você precisa: As limitações dos pipelines de múltiplos componentes (MCPs)

Este artigo questiona a praticabilidade dos Pipelines de Múltiplos Componentes (MCPs) para muitas tarefas, argumentando que sua forte dependência de inferência os torna ineficientes e difíceis de escalar. O autor usa um exemplo pessoal - convertendo reStructuredText para Markdown - para demonstrar uma abordagem superior: usar LLMs para gerar código que executa a tarefa, seguido de validação baseada em LLM. Este método reduz a dependência de inferência, melhora a confiabilidade e escala bem, especialmente para tarefas repetitivas. Embora reconheça os pontos fortes do MCP em cenários de nicho, o autor conclui que suas limitações inerentes dificultam a automação em larga escala. O futuro, sugere, reside no desenvolvimento de técnicas de geração de código mais eficazes, combinadas com validação e explicação de LLM para melhorar a usabilidade e a aplicabilidade.

Leia mais
Desenvolvimento

Agentes de programação: Uma nova maneira de medir a experiência do desenvolvedor

2025-06-19
Agentes de programação: Uma nova maneira de medir a experiência do desenvolvedor

Uma maratona de codificação de 24 horas destacou a má experiência do desenvolvedor causada por ferramentas e processos inadequados, incluindo documentação ausente e APIs com falhas. No entanto, os agentes de programação oferecem uma solução. O autor usou agentes para avaliar objetivamente diferentes linguagens e ferramentas, quantificando fatores de experiência do desenvolvedor, como cobertura de testes, qualidade de relatórios de erros e estabilidade do ecossistema. O feedback do agente refletiu de perto as experiências dos desenvolvedores humanos, oferecendo uma nova abordagem para melhorar a qualidade do código e os fluxos de trabalho de desenvolvimento.

Leia mais
Desenvolvimento

Codificação Agencial: Dicas e Truques Práticos

2025-06-12
Codificação Agencial: Dicas e Truques Práticos

Este artigo detalha a experiência do autor com codificação agentical usando o Claude Code, focando na maximização da eficiência. As estratégias-chave incluem o uso do modelo Sonnet mais barato, desabilitação de verificações de permissão, otimização do uso de ferramentas e escolha de Go por sua simplicidade e testes eficientes. O autor enfatiza a escrita de código simples, estável e paralelizável, e refatoração estratégica. Embora o campo esteja em rápida evolução, princípios básicos como simplicidade, estabilidade, observabilidade e paralelização inteligente permanecem cruciais para o sucesso.

Leia mais
Desenvolvimento codificação agentical

IA: A Mudança Irreversível

2025-06-04
IA: A Mudança Irreversível

Esta postagem de blog detalha como a IA, especificamente o Claude Code, revolucionou o fluxo de trabalho de programação do autor, aumentando a eficiência e liberando tempo significativo. O autor argumenta que o impacto da IA é irreversível, remodelando como vivemos e trabalhamos, apesar dos desafios iniciais. A rápida adoção da IA em vários setores é destacada, mostrando seu poder transformador na comunicação, aprendizado e tarefas diárias. O autor incentiva a abraçar o potencial da IA com curiosidade e responsabilidade, em vez de medo e resistência.

Leia mais

Trait `Any` do Rust finalmente suporta upcasting

2025-03-30
Trait `Any` do Rust finalmente suporta upcasting

O Rust 1.86 finalmente corrigiu um problema de longa data com o trait `Any`: a incapacidade de fazer upcasting de `dyn Any`. Isso significa que os desenvolvedores agora podem usar métodos do trait `Any`, como `downcast_ref`, em traits que herdam de `Any`. Essa correção elimina a necessidade de hacks que eram necessários antes para alcançar essa funcionalidade, melhorando a legibilidade e a manutenibilidade do código. Esta é uma boa notícia para os desenvolvedores Rust que dependiam dessas soluções alternativas por anos.

Leia mais
Desenvolvimento trait Any

O Crate rand do Rust: Um Pesadelo de Dependências para Geração de Números Aleatórios

2025-02-08
O Crate rand do Rust: Um Pesadelo de Dependências para Geração de Números Aleatórios

Este artigo investiga os problemas de dependência do crate `rand` do Rust, usado para gerar números aleatórios. O autor destaca o número surpreendentemente grande de dependências, levando a tempos de compilação excessivos e código inchado. A árvore de dependências do `rand` inclui vários crates como `libc`, `zerocopy` e `ppv-lite86`, contribuindo significativamente para a contagem de linhas e a sobrecarga de compilação. São sugeridas soluções potenciais, incluindo a integração de alguma funcionalidade na biblioteca padrão ou a melhoria do gerenciamento de dependências do `rand`. Isso inicia uma discussão sobre a completude da biblioteca padrão do Rust e o gerenciamento de dependências de crates externas.

Leia mais
Desenvolvimento crate rand

O Caso para Menos Dependências em Rust

2025-01-24
O Caso para Menos Dependências em Rust

Armin Ronacher, um desenvolvedor renomado, lamenta a superdependência em crates externas no ecossistema Rust em um post recente em seu blog. Ele argumenta que dependências excessivas levam a atualizações constantes, patches e auditorias de segurança, sobrecarregando os desenvolvedores e muitas vezes introduzindo inchaço de código desnecessário. Ele defende uma filosofia de "faça você mesmo", incentivando os desenvolvedores a escreverem seu próprio código quando apropriado, em vez de depender cegamente de bibliotecas externas. Ele usa a crate `terminal_size` como exemplo, ilustrando como uma função simples depende de várias crates e passou por inúmeras atualizações, destacando as desvantagens da superdependência. O post pede uma mudança na perspectiva da comunidade Rust, priorizando menos dependências e celebrando desenvolvedores que criam bibliotecas de baixa dependência.

Leia mais
Desenvolvimento