Skip to content

Ferramentas agênticas de IA para código

Os assistentes de programação com IA evoluíram do simples preenchimento automático para agentes autônomos capazes de planejar, editar vários arquivos, executar testes e criar pull requests. Este tutorial aborda as três principais ferramentas: Claude Code, Cursor e GitHub Copilot.

1) O que torna uma ferramenta "agêntica"?

O preenchimento automático tradicional com IA sugere as próximas linhas. As ferramentas agênticas vão além:

CapacidadePreenchimento automáticoAgêntica
EscopoLinha/função atualTodo o código-fonte
PlanejamentoNenhumRaciocínio em várias etapas
ExecuçãoApenas sugestõesPode editar arquivos e executar comandos
ContextoArquivo atualCompreensão de todo o repositório
Fluxo de trabalhoReativoConclusão autônoma de tarefas

As ferramentas agênticas podem compreender toda a estrutura do seu projeto, planejar alterações em vários arquivos, executar essas alterações, rodar testes e iterar até que a tarefa seja concluída.

2) Comparação rápida: Claude Code vs Cursor vs Copilot

RecursoClaude CodeCursorGitHub Copilot
InterfaceCLI, web, plugins para IDEIDE completa (fork do VS Code)Extensões para IDE
Janela de contextoGrande (Opus com contexto longo)Indexação de todo o repositórioMenor, em evolução
Edições em vários arquivosMuito bomExcelenteEm evolução
Modo de planejamentoSimSimSim (mais recente)
PreçoPlanos Pro/MaxCréditos + assinaturaAssinatura
Ideal paraArquitetura, grandes refatoraçõesDesenvolvimento interativoProgramação inline

3) Fundamentos do Claude Code

O Claude Code usa o Opus 4.8 (seu modelo padrão atual), com grandes janelas de contexto. Instale e autentique:

bash
# Instale o Claude Code (instalador nativo, recomendado)
curl -fsSL https://claude.ai/install.sh | bash

# Ou via npm (requer Node 18+)
npm install -g @anthropic-ai/claude-code

# Autentique-se: execute claude e siga a solicitação no navegador
claude

# Inicie no seu projeto
cd your-project
claude

Comandos básicos

bash
# Pergunte sobre seu código-fonte
claude "Como a autenticação é implementada aqui?"

# Gere código
claude "Adicione um middleware de limitação de taxa"

# Refatore vários arquivos
claude "Renomeie UserService para AuthService em todo o código-fonte"

# Crie um PR
claude "Crie um PR que adicione validação de entrada a todos os endpoints da API"

Configuração do projeto

Coloque o contexto do projeto em um arquivo CLAUDE.md na raiz do repositório. O Claude Code o lê automaticamente no início de cada sessão:

markdown
# Observações do projeto

- Linguagem: TypeScript, formatado com Prettier
- Testes: Vitest, em tests/
- Não altere node_modules/ nem dist/

As configurações legíveis por máquina (permissões de ferramentas, variáveis de ambiente e hooks) ficam em .claude/settings.json. Por exemplo, para exigir aprovação antes da execução de ferramentas destrutivas, configure as permissões nesse arquivo.

Memória e contexto

O contexto persistente do projeto fica em arquivos CLAUDE.md, que o Claude Code carrega no início de cada sessão, além de um armazenamento de memória automática que o próprio Claude atualiza com base nas suas correções e preferências. Para fornecer contexto permanente, edite o CLAUDE.md em vez de enviar uma instrução avulsa como "Lembre-se:":

markdown
# CLAUDE.md
Este é um monorepo. O código compartilhado fica em packages/.

Use o comando /clear durante uma sessão para redefinir o contexto de trabalho.

4) Recursos agênticos da IDE Cursor

O Cursor foi desenvolvido em torno de fluxos de trabalho agênticos. Principais recursos:

Modo Agent

Pressione Cmd+Shift+I (Mac) ou Ctrl+Shift+I (Windows/Linux) para abrir o Composer no modo Agent:

Fluxo de trabalho do modo Agent:
1. Descreva sua tarefa
2. O agente cria um plano
3. Você aprova ou modifica
4. O agente executa as alterações
5. Revise e itere

Modo Plan

Para tarefas complexas, use explicitamente o modo Plan:

@plan Adicione autenticação de usuário com:
- Tokens JWT
- Rotação de refresh tokens
- Hash de senhas com bcrypt
- Limitação de tentativas de login

O agente irá:

  1. Analisar seu código existente
  2. Criar um plano de implementação detalhado
  3. Aguardar sua aprovação
  4. Executar o plano passo a passo

Injeção de contexto

Use @ para adicionar um contexto específico:

@file src/api/auth.ts
@folder src/middleware
@docs https://jwt.io/introduction

Implemente um middleware de verificação de JWT seguindo estes padrões

Agentes em paralelo

Execute vários agentes simultaneamente em branches diferentes:

# No Cursor:
1. Abra a Paleta de Comandos
2. "Cursor: New Agent in Worktree"
3. Cada agente trabalha isoladamente
4. Compare os resultados lado a lado

O Cursor 3 adicionou uma janela de agentes (abra-a com Cmd+Shift+P e depois "Agents Window") que executa vários agentes em paralelo entre checkouts locais, worktrees do git e ambientes na nuvem. O comando /worktree coloca cada agente em seu próprio worktree isolado do git, enquanto /best-of-n executa a mesma tarefa em vários modelos para que você possa comparar os resultados lado a lado.

Regras para manter a consistência

Crie .cursor/rules/project.mdc:

markdown
# Regras do projeto

## Estilo do código
- Use o modo estrito do TypeScript
- Prefira componentes funcionais
- Use exportações nomeadas, não padrão

## Testes
- Todo recurso precisa de testes
- Use blocos describe/it
- Simule serviços externos

## Segurança
- Nunca faça commit de segredos
- Valide todas as entradas do usuário
- Use consultas parametrizadas

5) Recursos agênticos do GitHub Copilot

O Copilot evoluiu para além do preenchimento automático:

Copilot Chat

Abra o painel de chat e use comandos com barra:

/explain - Explique o código selecionado
/fix - Corrija problemas na seleção
/tests - Gere testes
/doc - Adicione documentação

Agente de programação (de issue a pull request)

# No GitHub:
1. Abra uma issue do GitHub
2. Atribua-a ao "Copilot"
3. O agente de programação trabalha em segundo plano:
   analisa a issue, edita arquivos e executa testes
4. Ele abre um pull request para sua revisão

Isso é diferente do modo Agent do Copilot na IDE, que trabalha de forma síncrona ao seu lado no VS Code ou no JetBrains.

O Copilot agora divide seu trabalho autônomo em duas partes: o modo Agent é executado de forma síncrona dentro da sua IDE (VS Code e JetBrains), decidindo quais arquivos editar, executando comandos no terminal e iterando sobre erros; o agente de programação é executado de forma assíncrona na nuvem, assumindo uma issue atribuída e entregando um pull request enquanto você trabalha em outra coisa.

Sugestões inline com contexto

O Copilot lê seu código-fonte. Ajude-o com comentários:

typescript
// Middleware de autenticação que:
// - Extrai o JWT do cabeçalho Authorization
// - Valida a assinatura do token
// - Anexa o usuário à requisição
// - Retorna 401 se for inválido
export function authMiddleware(req, res, next) {
  // O Copilot gera a implementação
}

6) Boas práticas para todas as ferramentas

Escreva prompts claros

❌ Ruim: "Corrija o bug"

✅ Bom: "Corrija a exceção de ponteiro nulo em UserService.getById 
quando o usuário não existir. Retorne null em vez de lançar uma exceção."

❌ Ruim: "Adicione testes"

✅ Bom: "Adicione testes unitários para o CartService cobrindo:
- Adição de itens a um carrinho vazio
- Remoção de itens
- Cálculo de totais com descontos
- Caso extremo: quantidades negativas"

Use o modo de planejamento para tarefas complexas

Para qualquer tarefa que altere 3 ou mais arquivos, sempre:

1. Peça primeiro um plano
2. Revise o plano
3. Aprove ou modifique
4. Deixe o agente executar
5. Revise as alterações antes de fazer commit

Forneça contexto arquitetural

Antes de trabalhos importantes, contextualize o agente:

"Esta é uma arquitetura de microsserviços:
- api-gateway: Encaminha requisições
- auth-service: JWT, sessões
- user-service: CRUD de usuários
- notification-service: E-mail, push

Os serviços se comunicam via pub/sub do Redis.
O banco de dados é PostgreSQL com o ORM Prisma."

Desenvolvimento orientado a testes com agentes

1. Escreva primeiro um teste que falhe:
   "Escreva um teste de cadastro de usuário que exija a validação do e-mail"

2. Deixe o agente ver o teste falhando:
   "Implemente o cadastro para fazer este teste passar"

3. Continue iterando até tudo passar:
   "Corrija as falhas de teste restantes"

7) Considerações de segurança

As ferramentas agênticas têm poder real. Defina limites:

Etapas de aprovação

json
// .claude/config.json
{
  "safety": {
    "requireApproval": [
      "rm",
      "git push",
      "npm publish",
      "database migrations",
      "env file changes"
    ]
  }
}

Sandboxing

bash
# Execute agentes em ambientes isolados
docker run -v $(pwd):/workspace -it claude-sandbox

# Ou use worktrees do git para isolamento
git worktree add ../feature-branch feature-branch

Arquivos confidenciais

# .cursorignore / .claudeignore
.env
.env.*
secrets/
credentials/
*.pem
*.key

Revise todas as alterações

bash
# Antes de aceitar as alterações do agente:
git diff --stat
git diff

# Use o staging interativo
git add -p

# Nunca faça merge automático sem revisão

8) Padrões de fluxo de trabalho que funcionam

Padrão 1: Explorar, planejar, executar

Sessão 1: "Como funciona o sistema de pagamentos?"
          → O agente explora, você aprende

Sessão 2: "O que seria necessário para adicionar o Stripe?"
          → O agente cria um plano

Sessão 3: "Implemente a integração com o Stripe"
          → O agente executa o plano

Padrão 2: Exploração em paralelo

# No Cursor com agentes em paralelo:

Agente 1: "Implemente cache com Redis"
Agente 2: "Implemente cache com Memcached"
Agente 3: "Implemente cache com LRU em memória"

→ Compare as implementações e escolha a melhor abordagem

Padrão 3: Migração incremental

Etapa 1: "Identifique todos os usos da API obsoleta"
Etapa 2: "Crie um adaptador para a nova API"
Etapa 3: "Migre o módulo A para usar o adaptador"
Etapa 4: "Migre o módulo B..."
...
Etapa N: "Remova o adaptador e use a nova API diretamente"

Padrão 4: Desenvolvimento de recursos começando pelos testes

1. "Escreva testes de aceitação para a edição do perfil de usuário"
2. "Escreva testes unitários para a validação do perfil"
3. "Implemente para fazer os testes passarem"
4. "Adicione testes de integração"
5. "Refatore para melhorar a clareza"

9) Quando usar cada ferramenta

SituaçãoFerramenta recomendada
Programação em tempo real, ajuda inlineGitHub Copilot
Grandes refatorações, arquiteturaClaude Code
Sessão completa de desenvolvimentoCursor
Perguntas rápidas sobre códigoQualquer interface de chat
Criação de PRs a partir de issuesCopilot Workspace
Alterações complexas em vários arquivosCursor Agent
Design de API, documentaçãoClaude Code
Aprendizado de um novo código-fonteCursor ou Claude Code

10) Como medir a eficácia

Acompanhe estas métricas para avaliar as ferramentas agênticas:

javascript
const metrics = {
  // Produtividade
  suggestionsAccepted: 'porcentagem de sugestões que você manteve',
  timeToFeature: 'horas desde o início até o merge do PR',
  linesPerHour: 'velocidade de produção de código (use com cuidado)',
  
  // Qualidade
  bugsIntroduced: 'defeitos atribuídos a código gerado por IA',
  testCoverage: 'cobertura do código gerado por IA',
  reviewChanges: 'quanto você modifica as sugestões da IA',
  
  // Custo
  apiCosts: 'gasto mensal com ferramentas de IA',
  creditsUsed: 'créditos do Cursor consumidos',
  
  // Aprendizado
  newPatternsLearned: 'técnicas que você aprendeu com a IA',
  codebaseUnderstanding: 'quanto a IA ajudou você a aprender',
}

11) Armadilhas comuns

Confiar demais no agente

❌ Aceitar grandes alterações sem revisão
❌ Permitir que agentes executem comandos destrutivos
❌ Não entender o código antes de publicá-lo

✅ Revise cada alteração
✅ Entenda o que você publica
✅ Use agentes como colaboradores, não como substitutos

Poluição de contexto

❌ Prompts enormes com contexto irrelevante
❌ Não limpar o contexto entre tarefas não relacionadas
❌ Incluir arquivos gerados no contexto

✅ Mantenha os prompts focados
✅ Use referências específicas com @file
✅ Exclua artefatos de build

Ambiguidade no prompt

❌ "Melhore isso"
❌ "Corrija os problemas"
❌ "Adicione alguns testes"

✅ "Reduza a complexidade de tempo de O(n²) para O(n log n)"
✅ "Trate o caso null na linha 45 retornando antecipadamente"
✅ "Adicione testes para casos extremos: entrada vazia, tamanho máximo, unicode"

12) Checklist para começar

markdown
## Checklist de configuração

### Claude Code
- [ ] Instale a CLI: `npm install -g @anthropic/claude-code`
- [ ] Autentique-se: `claude login`
- [ ] Crie `.claude/config.json`
- [ ] Adicione `.claudeignore` para arquivos confidenciais

### Cursor
- [ ] Baixe em cursor.com
- [ ] Importe as configurações do VS Code
- [ ] Configure `.cursor/rules/`
- [ ] Aprenda a usar `Cmd+Shift+I` para o modo Agent

### GitHub Copilot
- [ ] Instale a extensão na sua IDE
- [ ] Ative o Copilot Chat
- [ ] Experimente o Copilot Workspace para issues
- [ ] Configure `.github/copilot-instructions.md`

### Todas as ferramentas
- [ ] Configure etapas de aprovação para operações destrutivas
- [ ] Crie arquivos de exclusão para segredos
- [ ] Estabeleça um fluxo de trabalho de revisão
- [ ] Acompanhe métricas desde o primeiro dia

Conteúdo relacionado