Communitygithub.com

jakirhussainkhan/dev-skills

Use esta habilidade ao construir agentes de IA, projetar sistemas multiagente, integrar LLMs em aplicações, construir pipelines de RAG, trabalhar com bancos de dados vetoriais, implementar servidores MCP ou projetar padrões de comunicação e orquestração de agentes. Ative com palavras-chave como: agente, LLM, RAG, embeddings, vector DB, orquestração, uso de ferramentas, memória, esclarecimento de intenção, MCP, LangChain, LangGraph, CrewAI, AutoGen, Microsoft Agent Framework.

O que é dev-skills?

A habilidade **jakirhussainkhan/dev-skills** (originalmente nomeada 'ai-agent-design') é um guia detalhado e moderno para projetar, construir e orquestrar agentes de IA de forma robusta e profissional. Ela abrange desde princípios fundamentais de design (como esclarecimento de intenção antes de agir, especificação antes do código e responsabilidade única) até padrões avançados de orquestração, como sequencial, supervisor, ReAct, chat em grupo e DAG. A habilidade também oferece uma tabela de seleção de frameworks atualizada (LangGraph, LangChain, CrewAI, Microsoft Agent Framework, AutoGen e MCP), discute em detalhes o design de pipelines RAG com chunking semântico, busca híbrida e seleção de banco de dados vetoriais, e apresenta uma arquitetura de memória para agentes (curto prazo, longo prazo e episódica). Além disso, inclui seções sobre uso de ferramentas e chamada de funções, padrões de comunicação entre agentes, o protocolo MCP, segurança e design resiliente com loops de validação e repetição, planos de fallback e circuit breakers. É útil para qualquer desenvolvedor que deseje criar agentes de IA confiáveis e prontos para produção.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/jakirhussainkhan/dev-skills/tree/HEAD/.github/skills/ai-agent-design

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Design de Agentes de IA

Filosofia Central

Agentes não são mágica — são sistemas com entradas, saídas, memória, ferramentas e lógica de decisão. Projete-os com o mesmo rigor que qualquer software de produção. Todo agente deve ter um propósito claro, limites definidos e modos de falha explícitos.

Princípios de Design de Agentes

1. Esclareça a Intenção Antes de Agir

Um agente deve fazer perguntas esclarecedoras quando a intenção do usuário é ambígua — antes de executar qualquer ação irreversível. Use este padrão:

  • O objetivo está claro? Se não, faça uma pergunta focada.
  • As restrições são conhecidas? (escopo, formato de saída, fontes de dados)
  • Como é o sucesso?

2. Especificação Antes do Código

Antes de escrever a lógica do agente, gere um arquivo de especificação ou lista de tarefas:

  1. Defina o papel e as responsabilidades do agente
  2. Liste todas as ferramentas às quais ele precisa ter acesso
  3. Defina os contratos de entrada/saída
  4. Identifique os modos de falha e o comportamento de fallback
  5. Então escreva o código

3. Responsabilidade Única

Cada agente deve fazer bem uma coisa. Prefira uma equipe de agentes especializados a um único agente de propósito geral.


Padrões de Orquestração

PadrãoQuando UsarDescrição
SequencialPipelines linearesAgentes encadeados em ordem fixa (rascunho → revisão → publicação)
SupervisorTarefas complexas com vários módulosAgente líder roteia para trabalhadores especializados
ReActResolução autônoma de problemasCombina raciocínio (Pensamento) + ação (Uso de Ferramenta)
Chat em GrupoTarefas colaborativasComunicação multiagente com supervisão humana
DAGFluxos de trabalho com estadoGrafo acíclico dirigido para orquestração cíclica e com estado

Guia de Seleção de Frameworks

FrameworkMelhor ParaStatus
LangGraphAgentes complexos com estado, fluxos de trabalho cíclicos, orquestração multiagente, nível de produção✅ Ativo — GA Maio 2025
LangChainPipelines RAG simples, fluxos de trabalho lineares, protótipos rápidos✅ Ativo — use para RAG, não para agentes
CrewAIEquipes multiagente baseadas em papéis ("Gerente", "Pesquisador", "Escritor")✅ Ativo
Microsoft Agent FrameworkAgentes empresariais no ecossistema Azure — substitui AutoGen + Semantic Kernel✅ Ativo — Visualização Pública Out 2025, GA previsto para Q1 2026
AutoGenLegado — ainda funciona, mas sem novos recursos⚠️ Modo de manutenção desde Out 2025
Personalizado (MCP)Ferramentas de agente leves, portáteis e interoperáveis via padrão aberto✅ Ativo

LangChain vs LangGraph — Qual Usar

A equipe do LangChain agora recomenda explicitamente esta divisão:

  • LangGraph → para agentes: com estado, cíclicos, multiagente, tarefas de longa duração
  • LangChain → para RAG e pipelines lineares: perguntas e respostas simples sobre documentos, transformações passo a passo

LangGraph é construído sobre o LangChain — você pode usar ambos juntos, começando com LangChain e migrando para LangGraph quando precisar de mais controle.


Design de Pipeline RAG

Fluxo RAG Padrão

Consulta do Usuário → Incorporar Consulta → Busca Vetorial → Recuperar Trechos → Aumentar Prompt → LLM → Resposta

Estratégia de Fragmentação (Melhor Prática 2026)

  • Use fragmentação semântica — divida por significado, não por contagem de caracteres
  • Tamanho do fragmento: 256–512 tokens para precisão; 1024 para conteúdo narrativo
  • Sempre inclua metadados: fonte, página, seção, timestamp

Busca Híbrida (Recomendada)

Combine vetores densos (semânticos) + vetores esparsos (palavras-chave) para melhor recall:

Pontuação Final = α × Pontuação Densa + (1 - α) × Pontuação Esparsa

Seleção de Banco de Dados Vetorial

BDMelhor Para
pgvectorPilha PostgreSQL existente, casos de uso simples
PineconeGerenciado, escala de produção, operações mínimas
WeaviateMultimodal, busca híbrida integrada
MilvusAlto desempenho, auto-hospedado, grande escala
ChromaDesenvolvimento local, prototipagem

Arquitetura de Memória do Agente

TipoDescriçãoImplementação
No contextoJanela de conversa atualArray de histórico de chat
Externa de curto prazoMemória com escopo de sessãoRedis / armazenamento em memória
Externa de longo prazoPersistente entre sessõesBD Vetorial + metadados
EpisódicaInterações passadas resumidasCadeia de sumarização → armazenamento vetorial

Aviso de Apodrecimento de Contexto: Janelas de contexto longas degradam a qualidade do agente com o tempo. Implemente uma etapa de sumarização a cada N turnos para manter a relevância.


Uso de Ferramentas e Chamada de Funções

Padrão de Definição de Ferramenta

Toda ferramenta precisa:

name: nome_descritivo_da_ferramenta
description: Quando usar esta ferramenta e o que ela faz (seja explícito)
parameters:
  - name: nome_do_parametro
    type: string
    description: O que este parâmetro espera
    required: true

Melhores Práticas de Uso de Ferramentas

  • Ferramentas devem ser idempotentes sempre que possível
  • Sempre valide as saídas da ferramenta antes de passar para a próxima etapa
  • Implemente timeouts e novas tentativas para chamadas de ferramentas externas
  • Registre todas as invocações de ferramentas para depuração

Padrões de Comunicação entre Agentes

Protocolo de Esclarecimento de Intenção

Quando um agente recebe uma solicitação ambígua:

  1. Identifique a ambiguidade — o que exatamente não está claro?
  2. Faça uma pergunta — a mais importante, não todas elas
  3. Proponha um padrão — "Vou assumir X, a menos que você me diga o contrário"
  4. Confirme antes de ações irreversíveis — sempre pergunte antes de deletar, publicar ou enviar

Relatório de Progresso

Para tarefas de longa duração, os agentes devem relatar:

[Passo 1/4] Buscando documentos... ✓
[Passo 2/4] Fragmentando e incorporando... ✓
[Passo 3/4] Consultando o armazenamento vetorial...

Comunicação de Erros

✗ Ferramenta falhou: [nome_da_ferramenta]
Motivo: [erro específico]
Fallback: [o que estou fazendo em vez disso]

MCP (Model Context Protocol)

MCP é o padrão aberto para conectar agentes a ferramentas e fontes de dados externas. Use-o ao construir ferramentas de agente portáteis e interoperáveis.

Estrutura do Servidor MCP

meu-servidor-mcp/
├── server.py (ou index.ts)
├── tools/
│   └── minha_ferramenta.py
└── README.md

Quando Usar MCP vs Integração Direta

  • Use MCP quando a ferramenta precisar ser reutilizável em vários agentes/plataformas
  • Use integração direta para implementações de ferramentas específicas de projeto e pontuais

Consulte a habilidade mcp-builder para obter orientação detalhada sobre implementação de servidor MCP.


Segurança

  • Nunca permita que agentes executem código arbitrário sem sandboxing
  • Implemente limitação de taxa em todas as chamadas de API LLM
  • Valide e sanitize todas as entradas antes de passá-las para as ferramentas
  • Registre todas as decisões do agente para auditabilidade
  • Implemente barreiras de proteção para evitar custos excessivos de tokens ou loops recursivos
  • Use proteção contra injeção no prompt do sistema — separe a entrada do usuário das instruções do sistema com delimitadores claros

Design de Agente Resiliente (Auto-Cura)

Agentes falham em produção. Projete para recuperação desde o início.

Loop de Validar e Repetir (Padrão LoopAgent)

Gerar saída → Validar saída → Se inválido: feedback + regerar
Máximo de iterações: 3 ← disjuntor para evitar loops infinitos

Planejar–Validar–Executar–Observar–Replanejar

PLANEJAR:    Gerar plano, verificar viabilidade antes de agir
EXECUTAR:   Agir
OBSERVAR:   Teve sucesso? Verificar saídas, executar testes
REPLANEJAR: Se a observação mostrar falha → ajustar e tentar novamente
PARAR:      Se o máximo de tentativas for atingido → relatar falha claramente, pedir ajuda

Hierarquia de Fallback do Agente

Abordagem primária falha → Tentar abordagem alternativa
Alternativa falha       → Solicitar esclarecimento ao desenvolvedor
Esclarecimento ausente  → Ação padrão segura ou parada graciosa

Validação de Saída Antes de Apresentar

  • Execute testes/lint no código gerado antes de apresentar
  • Verifique se o formato da saída corresponde aos requisitos
  • Use uma etapa de validador separada (modelo ou prompt diferente) para verificar a saída do gerador
  • Nunca apresente saída não verificada como concluída

Disjuntor para Agentes

Defina limites rígidos para evitar comportamento descontrolado:

  • Máximo de iterações de chamada de ferramenta por tarefa (ex.: 10)
  • Gasto máximo de tokens por sessão
  • Máximo de novas tentativas por etapa com falha (ex.: 3)
  • Timeout por invocação de ferramenta

Consulte a habilidade self-healing-mindset para obter a filosofia completa de resiliência e padrões de código.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Habilidades Relacionadas