Aula 19 - Protocolo de Contexto de Modelo (MCP) e Agentes IA 🛠️
Objetivo Pedagógico
Objetivo: Arquitetura de Agentes de IA autônomos com o padrão aberto Model Context Protocol (MCP): Ferramentas (Tool Calling), Recursos (Resources), Prompts e ciclo ReAct (Reason + Act).
📑 1. Fundamentos Teóricos & Análise Técnica
Grandes Modelos de Linguagem isolados são apenas "cérebros sem mãos": conseguem gerar texto, mas não conseguem interagir com o mundo real (não podem ler arquivos no disco, consultar bancos de dados ou disparar chamadas de API).
O Model Context Protocol (MCP), anunciado pela Anthropic em 2024 como padrão aberto, padroniza a comunicação segura e universal entre aplicações de IA (MCP Clients) e ecossistemas de ferramentas locais ou remotas (MCP Servers): 1. Ferramentas (Tools): Funções executáveis com esquemas JSON Schema estritos que o modelo pode decidir chamar (ex: executar_query_sql, criar_issue_github). 2. Recursos (Resources): Fontes estruturadas de dados e arquivos que o servidor MCP expõe de forma padronizada para o agente consumir contextualmente. 3. Padrão ReAct (Reason + Act): Ciclo cognitivo em que o agente: - Pensa (Thought): Analisa o objetivo e formula uma hipótese. - Age (Action): Seleciona e invoca uma ferramenta via MCP. - Observa (Observation): Recebe o retorno da ferramenta e decide se alcançou o objetivo ou se requer novas iterações.
📐 Arquitetura Conceitual & Diagrama de Fluxo
sequenceDiagram
autonumber
actor User as Usuário
participant Agent as Agente IA (Cliente MCP)
participant LLM as Modelo LLM com Tool Use
participant MCPServer as Servidor MCP (Ferramentas de Sistema)
User->>Agent: "Analise os logs de erro do servidor"
Agent->>LLM: Prompt com Ferramentas MCP Disponíveis
LLM-->>Agent: Decisão: Invocar Ferramenta `read_log_file(path)`
Agent->>MCPServer: Chamada JSON-RPC: tools/call { "path": "/var/log/app.log" }
MCPServer-->>Agent: Retorna conteúdo do arquivo
Agent->>LLM: Observação dos logs retornados
LLM-->>Agent: "Encontrei 3 falhas de conexão de banco..."
Agent-->>User: Resposta consolidada com diagnóstico! 🔍 Pilares e Diretrizes Técnicas
Nesta unidade, aprofundamos os seguintes conceitos fundamentais: - Protocolo JSON-RPC 2.0: Comunicação padronizada bidirecional sobre stdin/stdout ou Server-Sent Events (SSE). - Validação de Ferramentas com JSON Schema: Contratos imutáveis de parâmetros para impedir que o modelo invoque funções com argumentos inválidos. - Segurança e Princípio do Menor Privilégio: Execução de ferramentas em ambientes controlados com permissão explícita do usuário. - Loop Autônomo com Critério de Parada: Prevenção contra laços infinitos de chamadas de ferramentas com contadores máximos de passos.
🛠️ 2. Implementação Prática em Model Context Protocol (MCP) e Agentes Autônomos
Abaixo está a implementação técnica de referência, estruturada com padrões de engenharia de software e foco em robustez:
// mcp_tool_definition.json (Definição de Ferramenta no Padrão MCP)
{
"name": "query_database",
"description": "Executa uma consulta SQL somente-leitura no banco de dados analítico e retorna registros formatados em JSON.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "A consulta SQL no dialeto PostgreSQL (apenas comandos SELECT são permitidos)."
},
"limit": {
"type": "integer",
"description": "Limite máximo de registros a retornar",
"default": 20
}
},
"required": ["query"]
}
}
💡 Análise Passo a Passo do Código
- Descrição Semântica Clara: O LLM utiliza a
descriptionda ferramenta para raciocinar e decidir quando deve invocá-la. - inputSchema Estruturado: Define os tipos e restrições obrigatórias para o modelo preencher.
- Controle de Segurança: A restrição semântica impede a execução de comandos destrutivos como
DROPouDELETE.
🎯 3. Próximos Passos & Sequência Didática
-
Slides da Aula
-
Quiz de Fixação
-
Exercícios Práticos
-
Desafio de Projeto