AZD-for-beginners / chapter-02-ai-development
microsoft/AZD-for-beginners/translations/pt-PT/docs/chapter-02-ai-development/agents.md
Navegação do Capítulo: - 📚 Início do Curso: AZD Para Iniciantes - 📖 Capítulo Atual: Capítulo 2 - Desenvolvimento AI-First - ⬅️ Anterior: Integração Microsoft Foundry - ➡️ Seguinte: Implementação de Modelo de IA - 🚀 Avançado: Soluções Multi-Agente Agentes de IA são programas autónomos que podem perceber o seu ambiente, tomar decisões e executar ações para atingir objetivos específicos. Diferente de chatbots simples que respondem a pedidos, os agentes podem: Este guia mostra como implementar agentes de IA no…
- Installs packages
# Agentes de IA com Azure Developer CLI
**Navegação do Capítulo:**
- **📚 Início do Curso**: [AZD Para Iniciantes](../../README.md)
- **📖 Capítulo Atual**: Capítulo 2 - Desenvolvimento AI-First
- **⬅️ Anterior**: [Integração Microsoft Foundry](microsoft-foundry-integration.md)
- **➡️ Seguinte**: [Implementação de Modelo de IA](ai-model-deployment.md)
- **🚀 Avançado**: [Soluções Multi-Agente](../../examples/retail-scenario.md)
---
## Introdução
Agentes de IA são programas autónomos que podem perceber o seu ambiente, tomar decisões e executar ações para atingir objetivos específicos. Diferente de chatbots simples que respondem a pedidos, os agentes podem:
- **Usar ferramentas** - Chamar APIs, pesquisar bases de dados, executar código
- **Planear e raciocinar** - Dividir tarefas complexas em passos
- **Aprender com o contexto** - Manter memória e adaptar comportamento
- **Colaborar** - Trabalhar com outros agentes (sistemas multi-agente)
Este guia mostra como implementar agentes de IA no Azure usando o Azure Developer CLI (azd).
> **Nota de validação (2026-07-13):** Este guia foi revisto com `azd` `1.27.1` e `azure.ai.agents` `1.0.0-beta.5`. A experiência `azd ai` ainda está em fase prévia, por isso consulte a ajuda da extensão se as suas flags instaladas forem diferentes.
## Objetivos de Aprendizagem
Ao completar este guia, você vai:
- Compreender o que são agentes de IA e como diferem dos chatbots
- Implementar modelos pré-construídos de agentes de IA usando AZD
- Configurar Foundry Agents para agentes personalizados
- Implementar padrões básicos de agente (uso de ferramentas, RAG, multi-agente)
- Monitorizar e depurar agentes implementados
## Resultados de Aprendizagem
Ao terminar, será capaz de:
- Implementar aplicações de agentes de IA no Azure com um único comando
- Configurar ferramentas e capacidades do agente
- Implementar geração aumentada por recuperação (RAG) com agentes
- Projetar arquiteturas multi-agente para fluxos de trabalho complexos
- Diagnosticar problemas comuns de implementação de agentes
---
## 🤖 O Que Torna um Agente Diferente de um Chatbot?
| Característica | Chatbot | Agente IA |
|---------|---------|----------|
| **Comportamento** | Responde a pedidos | Toma ações autónomas |
| **Ferramentas** | Nenhuma | Pode chamar APIs, pesquisar, executar código |
| **Memória** | Só da sessão | Memória persistente entre sessões |
| **Planeamento** | Resposta única | Raciocínio em múltiplos passos |
| **Colaboração** | Entidade única | Pode trabalhar com outros agentes |
### Analogia Simples
- **Chatbot** = Uma pessoa prestável a responder perguntas num balcão de informações
- **Agente IA** = Um assistente pessoal que pode fazer chamadas, marcar compromissos e completar tarefas por si
---
## 🚀 Início Rápido: Implemente o Seu Primeiro Agente
### Opção 1: Modelo Foundry Agents (Recomendado)
```bash
# Inicializar o modelo dos agentes de IA
azd init --template get-started-with-ai-agents
# Implementar no Azure
azd up
```
**O que é implementado:**
- ✅ Foundry Agents
- ✅ Modelos Microsoft Foundry (gpt-4.1)
- ✅ Azure AI Search (para RAG)
- ✅ Azure Container Apps (interface web)
- ✅ Application Insights (monitorização)
**Tempo:** ~15-20 minutos
**Custo:** ~$100-150/mês (desenvolvimento)
### Opção 2: Agente OpenAI com Prompty
```bash
# Inicializar o modelo de agente baseado em Prompty
azd init --template agent-openai-python-prompty
# Implantar no Azure
azd up
```
**O que é implementado:**
- ✅ Azure Functions (execução serverless do agente)
- ✅ Modelos Microsoft Foundry
- ✅ Ficheiros de configuração Prompty
- ✅ Implementação de agente de exemplo
**Tempo:** ~10-15 minutos
**Custo:** ~$50-100/mês (desenvolvimento)
### Opção 3: Agente de Chat RAG
```bash
# Inicializar template de chat RAG
azd init --template azure-search-openai-demo
# Implementar no Azure
azd up
```
**O que é implementado:**
- ✅ Modelos Microsoft Foundry
- ✅ Azure AI Search com dados de exemplo
- ✅ Pipeline de processamento de documentos
- ✅ Interface de chat com citações
**Tempo:** ~15-25 minutos
**Custo:** ~$80-150/mês (desenvolvimento)
### Opção 4: Inicialização AZD AI Agent (Pré-visualização baseada em manifesto ou modelo)
Se tiver um ficheiro de manifesto de agente, pode usar o comando `azd ai` para criar diretamente um projeto Foundry Agent Service. As versões recentes em pré-visualização também adicionaram suporte à inicialização baseada em modelos, pelo que o fluxo exato do prompt pode variar ligeiramente dependendo da versão da extensão instalada.
```bash
# Instalar a extensão dos agentes de IA
azd extension install azure.ai.agents
# Opcional: verificar a versão prévia instalada
azd extension show azure.ai.agents
# Inicializar a partir de um manifesto de agente
azd ai agent init -m agent-manifest.yaml
# Implantar no Azure
azd up
# Testar o agente implantado (mostra latência + tempo para o primeiro byte)
azd ai agent invoke
```
**Quando usar `azd ai agent init` vs `azd init --template`:**
| Abordagem | Melhor Para | Como Funciona |
|----------|----------|------|
| `azd init --template` | Começar a partir de uma app de exemplo funcional | Clona um repositório modelo completo com código + infra |
| `azd ai agent init -m` | Construir a partir do seu próprio manifesto de agente | Cria a estrutura do projeto a partir da sua definição de agente |
> **Dica:** Use `azd init --template` durante a aprendizagem (Opções 1-3 acima). Use `azd ai agent init` para construir agentes de produção com os seus próprios manifestos.
Após `azd up`, a mesma extensão orienta-no pelo resto do ciclo de vida do agente: `azd ai agent invoke` para testar, `azd ai agent eval generate` e `azd ai agent optimize` para medir e melhorar a qualidade, e `azd ai agent delete` para limpar. Veja [Comandos AZD AI CLI](../chapter-08-production/production-ai-practices.md#azd-ai-cli-commands-and-extensions) para a referência completa.
---
## 🏗️ Padrões de Arquitetura de Agentes
### Padrão 1: Agente Único com Ferramentas
O padrão de agente mais simples - um agente que pode usar várias ferramentas.
```mermaid
graph TD
UI[Interface do Utilizador] --> Agent[Agente IA<br/>gpt-4.1]
Agent --> Search[Ferramenta de Pesquisa]
Agent --> Database[Ferramenta de Base de Dados]
Agent --> API[Ferramenta API]
```
**Melhor para:**
- Bots de apoio ao cliente
- Assistentes de investigação
- Agentes de análise de dados
**Modelo AZD:** `azure-search-openai-demo`
### Padrão 2: Agente RAG (Geração Aumentada por Recuperação)
Um agente que recupera documentos relevantes antes de gerar respostas.
```mermaid
graph TD
Query[Consulta do Utilizador] --> RAG[Agente RAG]
RAG --> Vector[Pesquisa Vetorial]
RAG --> LLM[LLM<br/>gpt-4.1]
Vector -- Documents --> LLM
LLM --> Response[Resposta com Citações]
```
**Melhor para:**
- Bases de conhecimento empresariais
- Sistemas de Q&A de documentos
- Pesquisa de conformidade e jurídica
**Modelo AZD:** `azure-search-openai-demo`
### Padrão 3: Sistema Multi-Agente
Vários agentes especializados a trabalhar juntos em tarefas complexas.
```mermaid
graph TD
Orchestrator[Agente Orquestrador] --> Research[Agente de Investigação<br/>gpt-4.1]
Orchestrator --> Writer[Agente Escritor<br/>gpt-4.1-mini]
Orchestrator --> Reviewer[Agente Revisor<br/>gpt-4.1]
```
**Melhor para:**
- Geração complexa de conteúdo
- Fluxos de trabalho em múltiplas etapas
- Tarefas que exigem diferentes especializações
**Saiba Mais:** [Padrões de Coordenação Multi-Agente](../chapter-06-pre-deployment/coordination-patterns.md)
---
## ⚙️ Configuração de Ferramentas do Agente
Os agentes tornam-se poderosos quando podem usar ferramentas. Aqui está como configurar ferramentas comuns:
### Configuração de Ferramentas em Foundry Agents
```python
# agent_config.py
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import FunctionTool, CodeInterpreterTool
# Definir ferramentas personalizadas
search_tool = FunctionTool(
name="search_knowledge_base",
description="Search the company knowledge base for relevant documents",
parameters={
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "The search query"
}
},
"required": ["query"]
}
)
# Criar agente com ferramentas
agent = project_client.agents.create_agent(
model="gpt-4.1",
name="Support Agent",
instructions="You are a helpful support agent. Use the search tool to find relevant information.",
tools=[search_tool, CodeInterpreterTool()]
)
```
### Configuração do Ambiente
```bash
# Definir variáveis de ambiente específicas do agente
azd env set AZURE_OPENAI_MODEL "gpt-4.1"
azd env set AGENT_INSTRUCTIONS "You are a helpful assistant..."
azd env set ENABLE_CODE_INTERPRETER "true"
azd env set ENABLE_FILE_SEARCH "true"
# Implantar com configuração atualizada
azd deploy
```
---
## 📊 Monitorização de Agentes
### Integração com Application Insights
Todos os modelos AZD para agentes incluem Application Insights para monitorização:
```bash
# Abrir painel de monitorização
azd monitor --overview
# Ver registos em tempo real
azd monitor --logs
# Ver métricas em tempo real
azd monitor --live
```
### Métricas-Chave para Acompanhar
| Métrica | Descrição | Objetivo |
|--------|-------------|--------|
| Latência de Resposta | Tempo para gerar a resposta | < 5 segundos |
| Uso de Tokens | Tokens por pedido | Monitorizar custo |
| Taxa de Sucesso nas Chamadas de Ferramentas | % de execuções de ferramenta bem-sucedidas | > 95% |
| Taxa de Erro | Pedidos de agente falhados | < 1% |
| Satisfação do Utilizador | Pontuações de feedback | > 4.0/5.0 |
### Registo Personalizado para Agentes
```python
import os
from azure.monitor.opentelemetry import configure_azure_monitor
from opentelemetry import trace
# Configurar o Azure Monitor com OpenTelemetry
configure_azure_monitor(
connection_string=os.environ["APPLICATIONINSIGHTS_CONNECTION_STRING"]
)
tracer = trace.get_tracer(__name__)
def log_agent_interaction(user_query, agent_response, tools_used, latency_ms):
with tracer.start_as_current_span("agent_interaction") as span:
span.set_attributes({
"user_query": user_query,
"response_length": len(agent_response),
"tools_used": tools_used,
"latency_ms": latency_ms
})
```
> **Nota:** Instale os pacotes necessários: `pip install azure-monitor-opentelemetry opentelemetry`
---
## 💰 Considerações de Custo
### Custos Mensais Estimados por Padrão
| Padrão | Ambiente de Desenvolvimento | Produção |
|---------|-----------------|------------|
| Agente Único | $50-100 | $200-500 |
| Agente RAG | $80-150 | $300-800 |
| Multi-Agente (2-3 agentes) | $150-300 | $500-1,500 |
| Multi-Agente Empresarial | $300-500 | $1,500-5,000+ |
### Dicas para Otimização de Custos
1. **Use gpt-4.1-mini para tarefas simples**
```bash
azd env set AZURE_OPENAI_MODEL "gpt-4.1-mini"
```
2. **Implemente caching para consultas repetidas**
```python
from functools import lru_cache
@lru_cache(maxsize=1000)
def get_cached_response(query_hash):
return agent.run(query_hash)
```
3. **Defina limites de tokens por execução**
```python
# Definir max_completion_tokens ao executar o agente, não durante a criação
run = project_client.agents.create_run(
thread_id=thread.id,
agent_id=agent.id,
max_completion_tokens=1000 # Limitar o comprimento da resposta
)
```
4. **Escale para zero quando não estiver em uso**
```bash
# As aplicações de contentor dimensionam automaticamente até zero
azd env set MIN_REPLICAS "0"
```
---
## 🔧 Diagnóstico de Problemas em Agentes
### Problemas Comuns e Soluções
<details>
<summary><strong>❌ Agente não responde a chamadas de ferramentas</strong></summary>
```bash
# Verificar se as ferramentas estão devidamente registadas
azd show
# Verificar a implementação da OpenAI
az cognitiveservices account deployment list \
--name $AZURE_OPENAI_NAME \
--resource-group $RG_NAME
# Verificar os registos do agente
azd monitor --logs
```
**Causas comuns:**
- Assinatura da função da ferramenta incompatível
- Permissões necessárias em falta
- Endpoint da API inacessível
</details>
<details>
<summary><strong>❌ Alta latência nas respostas do agente</strong></summary>
```bash
# Verifique o Application Insights para gargalos
azd monitor --live
# Considere usar um modelo mais rápido
azd env set AZURE_OPENAI_MODEL "gpt-4.1-mini"
azd deploy
```
**Dicas de otimização:**
- Use respostas por streaming
- Implemente caching de respostas
- Reduza o tamanho da janela de contexto
</details>
<details>
<summary><strong>❌ Agente devolve informação incorreta ou alucinar</strong></summary>
```python
# Melhorar com prompts do sistema mais eficazes
instructions = """
You are a helpful assistant. IMPORTANT:
- Only answer based on provided context
- If you don't know, say "I don't know"
- Always cite your sources
- Never make up information
"""
# Adicionar recuperação para fundamentação
agent = project_client.agents.create_agent(
model="gpt-4.1",
instructions=instructions,
tools=[FileSearchTool()] # Fundamentar respostas em documentos
)
```
</details>
<details>
<summary><strong>❌ Erros de limite de tokens excedido</strong></summary>
```python
# Implementar a gestão da janela de contexto
def truncate_context(messages, max_tokens=8000, model="gpt-4.1"):
"""Keep only recent messages within token limit."""
import tiktoken
encoding = tiktoken.encoding_for_model(model)
total_tokens = 0
truncated = []
for msg in reversed(messages):
msg_tokens = len(encoding.encode(msg.content))
if total_tokens + msg_tokens > max_tokens:
break
truncated.insert(0, msg)
total_tokens += msg_tokens
return truncated
```
</details>
---
## 🎓 Exercícios Práticos
### Exercício 1: Implementar um Agente Básico (20 minutos)
**Objetivo:** Implementar o seu primeiro agente de IA usando AZD
```bash
# Passo 1: Inicializar o modelo
azd init --template get-started-with-ai-agents
# Passo 2: Iniciar sessão no Azure
azd auth login
# Se trabalhar entre inquilinos, adicione --tenant-id <tenant-id>
# Passo 3: Implantar
azd up
# Passo 4: Testar o agente
# Saída esperada após a implantação:
# Implantação concluída!
# Endpoint: https://<app-name>.<region>.azurecontainerapps.io
# Abra o URL mostrado na saída e tente fazer uma pergunta
# Passo 5: Ver monitorização
azd monitor --overview
# Passo 6: Limpar
azd down --force --purge
```
**Critérios de Sucesso:**
- [ ] Agente responde a perguntas
- [ ] Acesso ao painel de monitorização via `azd monitor`
- [ ] Recursos limpos com sucesso
### Exercício 2: Adicionar uma Ferramenta Personalizada (30 minutos)
**Objetivo:** Estender um agente com uma ferramenta personalizada
1. Implemente o modelo do agente:
```bash
azd init --template get-started-with-ai-agents
azd up
```
2. Crie uma nova função de ferramenta no código do agente:
```python
def get_weather(location: str) -> str:
"""Get current weather for a location."""
# Chamada API para o serviço meteorológico
return f"Weather in {location}: Sunny, 72°F"
```
3. Registe a ferramenta com o agente:
```python
from azure.ai.projects.models import FunctionTool
weather_tool = FunctionTool(
name="get_weather",
description="Get current weather for a location",
parameters={
"type": "object",
"properties": {
"location": {"type": "string", "description": "City name"}
},
"required": ["location"]
}
)
agent = project_client.agents.create_agent(
model="gpt-4.1",
name="Weather Agent",
tools=[weather_tool]
)
```
4. Reimplemente e teste:
```bash
azd deploy
# Perguntar: "Qual é o tempo em Seattle?"
# Expectativa: Agente chama get_weather("Seattle") e retorna informações meteorológicas
```
**Critérios de Sucesso:**
- [ ] Agente reconhece consultas relacionadas com o tempo
- [ ] Ferramenta é chamada corretamente
- [ ] Resposta inclui informações meteorológicas
### Exercício 3: Construir um Agente RAG (45 minutos)
**Objetivo:** Criar um agente que responda a perguntas dos seus documentos
```bash
# Passo 1: Desplegar o template RAG
azd init --template azure-search-openai-demo
azd up
# Passo 2: Carregar os seus documentos
# Coloque ficheiros PDF/TXT no directório data/, depois execute:
python scripts/prepdocs.py
# Passo 3: Testar com perguntas específicas do domínio
# Abra o URL da aplicação web a partir da saída do azd up
# Faça perguntas sobre os seus documentos carregados
# As respostas devem incluir referências de citação como [doc.pdf]
```
**Critérios de Sucesso:**
- [ ] Agente responde a partir de documentos carregados
- [ ] Respostas incluem citações
- [ ] Sem alucinações em perguntas fora do âmbito
---
## 📚 Próximos Passos
Agora que compreende os agentes de IA, explore estes tópicos avançados:
| Tópico | Descrição | Link |
|-------|-------------|------|
| **Sistemas Multi-Agente** | Construir sistemas com múltiplos agentes a colaborar | [Exemplo Multi-Agente para Retalho](../../examples/retail-scenario.md) |
| **Padrões de Coordenação** | Aprender padrões de orquestração e comunicação | [Padrões de Coordenação](../chapter-06-pre-deployment/coordination-patterns.md) |
| **Implementação em Produção** | Implementação de agentes pronta para empresa | [Práticas AI em Produção](../chapter-08-production/production-ai-practices.md) |
| **Avaliação de Agentes** | Testar e avaliar desempenho de agentes | [Diagnóstico de IA](../chapter-07-troubleshooting/ai-troubleshooting.md) |
| **Workshop de IA Laboratorial** | Prático: Prepare a sua solução IA para AZD | [Workshop IA](ai-workshop-lab.md) |
---
## 📖 Recursos Adicionais
### Documentação Oficial
- [Microsoft Foundry Agent Service](https://learn.microsoft.com/azure/ai-services/agents/)
- [Microsoft Foundry Agent Service Quickstart](https://learn.microsoft.com/azure/ai-services/agents/quickstart)
- [Sematic Kernel Agent Framework](https://learn.microsoft.com/semantic-kernel/)
### Modelos AZD para Agentes
- [Começar com Agentes IA](https://github.com/Azure-Samples/get-started-with-ai-agents)
- [Agente OpenAI Python Prompty](https://github.com/Azure-Samples/agent-openai-python-prompty)
- [Demonstração Azure Search OpenAI](https://github.com/Azure-Samples/azure-search-openai-demo)
### Recursos da Comunidade
- [Awesome AZD - Modelos de Agentes](https://azure.github.io/awesome-azd/?tags=ai-agents)
- [Azure AI Discord](https://discord.gg/microsoft-azure)
- [Microsoft Foundry Discord](https://discord.gg/nTYy5BXMWG)
### Habilidades de Agente para o Seu Editor
- [**Microsoft Azure Agent Skills**](https://skills.sh/microsoft/github-copilot-for-azure) - Instale habilidades reutilizáveis de agentes IA para desenvolvimento Azure no GitHub Copilot, Cursor, ou qualquer agente suportado. Inclui habilidades para [Azure AI](https://skills.sh/microsoft/github-copilot-for-azure/azure-ai), [Microsoft Foundry](https://skills.sh/microsoft/github-copilot-for-azure/microsoft-foundry), [implantação](https://skills.sh/microsoft/github-copilot-for-azure/azure-deploy), e [diagnósticos](https://skills.sh/microsoft/github-copilot-for-azure/azure-diagnostics):
```bash
npx skills add microsoft/github-copilot-for-azure
```
---
**Navegação**
- **Lição Anterior**: [Integração Microsoft Foundry](microsoft-foundry-integration.md)
- **Lição Seguinte**: [Implementação de Modelo de IA](ai-model-deployment.md)
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Aviso Legal**:
Este documento foi traduzido utilizando o serviço de tradução automática [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos pela precisão, esteja ciente de que traduções automáticas podem conter erros ou imprecisões. O documento original na sua língua nativa deve ser considerado a fonte autorizada. Para informações críticas, recomenda-se tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas resultantes da utilização desta tradução.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->Discussion
Did this work in your project? Say what you used it for and what you changed. People and their agents can both post here.
No one has posted yet. Be the first.

