A área de desenvolvimento sempre evoluiu muito rápido mas nada parecido com era da inteligência artificial que estamos vivendo agora. Chega ser difícil se manter atualizado com tantas coisas novas para aprender; claude, mcp, skills, agents. Como e quando utilizo tudo isso?

A verdade é que IA está mudando a forma como todos nós trabalhamos e muito rápido. Muitos ainda negam o uso da IA, eu era um deles, mas recentemente comecei a estudar desenvolvimento com IA e fazer alguns projetos pessoais e devo dizer que fiquei muito impressionado.

De fato, há muita coisa para aprender e pretendo compartilhar o que aprendi aqui no meu blog. E pra começar eu gostaria de compartilhar e explicar alguns termos e conceitos que são bem básicos e importantes no desenvolvimento com IA.

Sumário

LLM (Grande Modelo de Linguagem)

LLM é o grande cérebro por trás da IA. Ele é treinado com uma quantidade enorme de dados, o que lhe permite processar uma informação e retornar um resultado.

Embora muitas vezes tratemos tudo como “IA”, é importante diferenciar:

  • LLMs → focados em texto
  • Modelos de imagem → geração de imagens (Text-to-Image)
  • Modelos de áudio → síntese de voz (TTS)
  • Modelos multimodais → combinam texto, imagem, áudio, etc.

Também é possível encadear vários LLMs para criar um sistema mais complexo, onde cada modelo é responsável por uma parte do processo. Por exemplo, um LLM pode ser usado para entender o contexto de uma pergunta, enquanto outro pode ser especializado em gerar a resposta.

Texto -> LLM (interpretação) -> LLM (geração) -> TTS (Modelo de áudio) -> Áudio

Ferramentas como o LangChain ajudam a estruturar esse tipo de fluxo.

Tokens

São as unidades básicas que a IA usa para ler/responder. Em vez de letras ou palavras inteiras, a IA quebra o texto em pedaços (como sílabas ou partes de palavras) através de um processo chamado tokenização.

Por exemplo, a palavra "casa" pode ser dividida em tokens como "ca" e "sa" e cada token é transformado em números para que a IA possa entender, processar e responder.

casa -> [ca, sa] -> [123, 456]

A maioria dos LLMs tem um limite de tokens que podem processar de uma vez. Se o prompt ou a resposta exceder esse limite, a IA pode não conseguir processar tudo, o que pode levar a respostas incompletas ou erros. Existem planos pagos que permitem aumentar esse limite.

Prompt

É a instrução, pergunta, input ou comando que você envia para a IA. Essa etapa é muito importante porque a qualidade da resposta depende muito de como o prompt é formulado. Se você quiser uma resposta mais curta, clara e objetiva, é importante ser específico no prompt.

Também é importante fornecer qualquer informação que seja relevante para a IA entender o contexto e responder de forma adequada.

Por exemplo, você pode pedir para a IA responder uma lista de cidades num formado JSON e fornecer um exemplo de como o json deve ser estruturado. Isso ajuda a IA a entender exatamente o que você quer e a formatar a resposta corretamente.

Exemplo: "Me dê uma lista de 5 cidades brasileiras com mais de 1 milhão de habitantes, formatada em JSON, seguindo este exemplo: { 'cidade': 'São Paulo', 'população': 12300000 }".

Embeddings

Embeddings são representações numéricas do significado de palavras ou textos. Isso permite que a IA entenda que "casa" e "lar" são conceitos próximos, mesmo sendo palavras escritas de forma diferente. Palavras com significados parecidos (como "cachorro" e "pet") ficam numericamente próximas, o que ajuda a IA a entender seu contexto numa frase.

Esses números são usados para comparar palavras e encontrar relações entre elas, o que é fundamental para a IA responder de forma relevante e precisa.

Uma IA não sabe de todas as coisas antes de responder, o que ela faz é identificar padrões e prever a próxima palavra com base no que já foi dito e no que ela aprendeu durante o seu treinamento.

Se a pergunta for sobre um assunto que ela não conhece, ela pode acabar inventando uma resposta (chamado de "alucinação"). Para evitar isso, é possível usar técnicas como RAG para fornecer informações reais e garantir respostas mais precisas.

RAG (Retrieval-Augmented Generation)

Como já explicado em LLM, a IA é treinada com uma grande quantidade de dados mas todo esse conhecimento tem uma data de validade. É como se a LLM estivesse presa no tempo. Ela não tem acesso a informações que aconteceram após a coleta desses dados ou a dados que não estavam presentes durante o treinamento.

Para resolver esse problema, é utilizado a técnica RAG (Retrieval-Augmented Generation), que permite à IA consultar fontes externas, como seus documentos ou manuais de uma empresa, antes de responder. Isso evita que ela invente informações e garante respostas baseadas em fatos reais.

MCP (Model Context Protocol)

Assim como RAG é uma técnica para melhorar a precisão das respostas, o MCP é um protocolo que padroniza a forma como a IA se conecta a diferentes fontes de dados, aplicativos e interagem com eles.

É como uma ponte entre a IA e o mundo externo, permitindo que ela acesse informações em tempo real, como dados de um banco de dados, resultados de uma pesquisa na web ou até mesmo interagir com outros aplicativos e serviços, como um calendário para marcar uma reunião ou um sistema de e-mail para enviar uma mensagem.

AI Agent (Agente de IA)

Em uma conversa, a AI recebe uma pergunta (input) e devolve uma resposta (output). Mas ela não tem capacidade de fazer nada além disso. Já um agente de IA é um sistema mais avançado que tem a capacidade de realizar tarefas específicas de forma autônoma. Ele é projetado para entender um objetivo ou tarefa e tomar as ações necessárias para alcançá-lo, sem a necessidade de intervenção humana constante.

Por exemplo, se você pedir para um agente de IA "Marque uma reunião com o João amanhã às 10h", ele pode acessar seu calendário, verificar a disponibilidade do João, enviar um convite e confirmar a reunião, tudo isso sem que você precise fazer nada além de dar o comando inicial.

Apesar de ser incrível, dar acesso e controle a um agente de IA também é perigoso. Ele pode apagar arquivos importantes, enviar mensagens erradas ou até mesmo causar danos maiores se não for programado e monitorado corretamente. Por isso, é fundamental ter cuidado ao usar agentes de IA e garantir que eles sejam configurados com as permissões adequadas e que haja supervisão humana para evitar problemas.

Exemplos de Agentes de IA: Claude Code, OpenCode, Copilot, AutoGPT, BabyAGI, AgentGPT, etc. Todos eles são sistemas que utilizam LLMs para realizar tarefas específicas de forma autônoma, mas cada um tem suas próprias características e funcionalidades.

Skills

Skills são instruções ou capacidades reutilizáveis que damos a um agente para que ele se torne um especialista ao realizar alguma tarefa. Podemos especificar como e quando um agente pode e deve pesquisar na web, fazer cálculos matemáticos, gerar imagens, acessar um banco de dados específico, interagir com um aplicativo, seguir um padrão específico, entre outras coisas.

Sempre que um agente precisar realizar uma tarefa relacionada a essa habilidade, essa informação será carregada automaticamente e não precisamos repetir a mesma instrução toda vez.

Existe uma coleção de skills relacionadas a programação, basta instalá-las para utiliza-las. https://skills.sh/

.skills/
  /summarize-text/
    SKILL.md

Formato da habilidade skill.md:

---
name: summarize-text
description: Summarize any given text in a clear and concise way. Use when the user asks for summaries or when dealing with long content.
---

# Summarize Text Skill

## Instructions

- Always generate a concise summary
- Keep the main ideas only
- Avoid unnecessary details
- Use bullet points when appropriate
- Maintain the original meaning

## Output format

- Short paragraph OR
- Bullet points (if content is complex)

## Examples

Input:
"JavaScript is a programming language used for web development. It allows developers to create interactive elements on websites..."

Output:
- JavaScript is used for web development
- Enables interactive website features

Subagents

Assim como skills, subagents são instruções para serem seguidas ao realizar certa tarefa pelo agente principal. Por padrão, o agente principal realiza pequenas tarefas de cada vez. Com subagentes, ele pode delegar essas tarefas para serem executadas em paralelo pelos subagentes ou combiná-las.

Exemplo de subagentes

---
name: RestaurantsFinder
description: Look for specific restaurants considering its reviews and popularity given a location.
---
---
name: PlacesCloseToMe
description: Return the only the list of places close to me giving a location and a range distance. Return the places name, their popularity and distance.
---

Comando: Me dê uma lista de 10 restaurantes japoneses perto de mim, estou localizado na praça da Sé em São Paulo. A distância máxima é de 30 kilometros. Use os subagents RestaurantsFinder e PlacesCloseToMe.

Resposta:

Aqui estão os 10 restaurantes japoneses mais próximos de você na Praça da Sé, dentro de 30km:

  ┌─────┬────────────────────────┬──────────────────────────┬───────────┐
  │  #  │      Restaurante       │        Avaliação         │ Distância │
  ├─────┼────────────────────────┼──────────────────────────┼───────────┤
  │ 1   │ Izakaya Issa           │ 4.5/5                    │ ~1.5 km   │
  ├─────┼────────────────────────┼──────────────────────────┼───────────┤
  │ 2   │ Lamen Kazu             │ 4.4/5 (1.043 avaliações) │ ~1.8 km   │
  ├─────┼────────────────────────┼──────────────────────────┼───────────┤
  │ 3   │ Momo Lamen House       │ 4.3/5 (518 avaliações)   │ ~1.8 km   │
  ├─────┼────────────────────────┼──────────────────────────┼───────────┤
  │ 4   │ Mugui                  │ 4.5/5 (294 avaliações)   │ ~1.9 km   │
  ├─────┼────────────────────────┼──────────────────────────┼───────────┤
  │ 5   │ Restaurante Porque Sim │ 4.5/5 (701 avaliações)   │ ~1.9 km   │
  ├─────┼────────────────────────┼──────────────────────────┼───────────┤
  │ 6   │ Sushi Kenzo            │ 4.4/5                    │ ~1.9 km   │
  ├─────┼────────────────────────┼──────────────────────────┼───────────┤
  │ 7   │ Sushi Isao             │ 4.5/5 (649 avaliações)   │ ~2.0 km   │
  ├─────┼────────────────────────┼──────────────────────────┼───────────┤
  │ 8   │ Tanka Restaurante      │ 4.5/5 (1.171 avaliações) │ ~2.0 km   │
  ├─────┼────────────────────────┼──────────────────────────┼───────────┤
  │ 9   │ Jojo Ramen             │ 4.4/5                    │ ~3.5 km   │
  ├─────┼────────────────────────┼──────────────────────────┼───────────┤
  │ 10  │ Djapa Moema            │ 4.8/5 (7.212 avaliações) │ ~8.0 km   │
  └─────┴────────────────────────┴──────────────────────────┴───────────┘

Os 8 primeiros ficam no bairro da Liberdade (bairro japonês de SP), a poucos minutos a pé. O destaque por avaliação é o Djapa Moema (4.8/5 com mais de 7 mil avaliações), apesar de ser o mais distante da lista.
  

SDD (Spec Driven Development)

SDD é um documento com todos os detalhes, regras e especificações do seu projeto, geralmente é a primeira coisa a ser feita antes de começar um projeto. Assim como o Prompt, é muito importante você gastar mais atenção e tempo nessa etapa para dar toda a informação e guiar a IA até o resultado que você espera durante o desenvolvimento do software. No SDD você especifica a motivação, seu objetivo, as tecnologias utilizadas, as regras de negócio, entidades e relação entre elas. Quanto mais informações e contexto, melhor será o resultado da IA. Inclusive você pode usar a IA para escrever um bom SDR, como https://kiro.dev.

Conclusão

IA não é futuro; ela já está entre nós hoje. Há um receio de que ela tome nosso trabalho, e há razões para isso. Mas ao mesmo tempo, a IA pode ser uma grande aliada no nosso dia-a-dia, em automatizar algumas tarefas, vasculhar e alterar vários arquivos de uma vez, como um grande parceiro de pair programming.