Compartilhar via


Tutorial: Ideia de protótipo – Criar e avaliar um agente empresarial

Este tutorial aborda o primeiro estágio da jornada do desenvolvedor do Microsoft Foundry: de uma ideia inicial a um protótipo de trabalho. Você cria um assistente de local de trabalho moderno que combina o conhecimento interno da empresa com diretrizes técnicas externas usando o SDK do Microsoft Foundry.

Cenário de negócios: crie um assistente de IA que ajude os funcionários combinando:

  • Políticas da empresa (de documentos do SharePoint)
  • Diretrizes técnicas de implementação (do Microsoft Learn via MCP)
  • Soluções completas (combinando ambas as fontes para implementação de negócios)
  • Avaliação em lote para validar o desempenho do agente em cenários de negócios realistas

Resultado do tutorial: No final, você tem um Assistente de Local de Trabalho Moderno em execução que pode responder a perguntas de política, técnica e implementação combinada; um script de avaliação em lotes repetível; e pontos de extensão claros (outras ferramentas, padrões de vários agentes, avaliação mais avançada).

Você vai:

  • Crie um Assistente de Local de Trabalho Moderno com a integração do SharePoint e do MCP.
  • Demonstre cenários de negócios reais combinando conhecimento interno e externo.
  • Implemente o tratamento de erros robusto e a degradação graciosa.
  • Crie uma estrutura de avaliação para testes focados nos negócios.
  • Preparar base para governança e implantação de produção.

Este exemplo mínimo demonstra padrões prontos para a empresa com cenários de negócios realistas.

Importante

O código neste artigo usa pacotes que estão atualmente em versão prévia. Essa versão prévia é fornecida sem um contrato de nível de serviço e não recomendamos isso para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos. Para obter mais informações, consulte Termos de Uso Complementares para Versões Prévias do Microsoft Azure.

Pré-requisitos

  • Assinatura do Azure e autenticação da CLI (az login)

  • CLI do Azure 2.67.0 ou posterior (confirme usando az version)

  • Um projeto do Foundry com um modelo implantado (por exemplo, gpt-4o-mini). Se você não tiver um: crie um projeto e implante um modelo (confira a visão geral do modelo: catálogo de modelos).

  • Python 3.10 ou posterior

  • Conexão do SharePoint configurada em seu projeto (documentação da ferramenta do SharePoint)

    Observação

    Para configurar seu projeto do Foundry para conectividade do SharePoint, consulte a documentação da ferramenta do SharePoint.

  • (Opcional) Git instalado para clonar o repositório de exemplo

Etapa 1: Obter o código de exemplo

Em vez de navegar em uma árvore de repositório grande, use uma destas abordagens:

Opção A (clonar repositório de exemplos inteiro)

Dica

O código usa a API do projeto Foundry (novo) (versão prévia) e é incompatível com a API do projeto Foundry (clássico).

git clone --depth 1 https://github.com/azure-ai-foundry/foundry-samples.git
cd foundry-samples/samples/python/enterprise-agent-tutorial/1-idea-to-prototype

Opção B (check-out esparso somente neste tutorial - download reduzido)

git clone --no-checkout https://github.com/azure-ai-foundry/foundry-samples.git
cd foundry-samples
git sparse-checkout init --cone
git sparse-checkout set samples/python/enterprise-agent-tutorial/1-idea-to-prototype
git checkout
cd samples/python/enterprise-agent-tutorial/1-idea-to-prototype

Repita o caminho para as variantes csharp ou java conforme necessário.

Opção C (Baixar ZIP do repositório)

Baixe o ZIP do repositório, extraia-o para seu ambiente local e vá para a pasta do tutorial.

Importante

Para integração em produção, use um repositório independente. Este tutorial usa o repositório de exemplos compartilhado. O check-out esparso minimiza o ruído local.

A estrutura mínima contém apenas arquivos essenciais:

enterprise-agent-tutorial/
└── 1-idea-to-prototype/
    ├── main.py                          # Modern Workplace Assistant
    ├── evaluate.py                      # Business evaluation framework
    ├── questions.jsonl                  # Business test scenarios (4 questions)
    ├── requirements.txt                 # Python dependencies
    ├── .env.template                    # Environment variables template
    ├── README.md                        # Complete setup instructions
    ├── MCP_SERVERS.md                   # MCP server configuration guide
    ├── sharepoint-sample-data           # Sample business documents for SharePoint
        └── collaboration-standards.docx # Sample content for policies
        └── remote-work-policy.docx      # Sample content for policies
        └── security-guidelines.docx     # Sample content for policies
        └── data-governance-policy.docx  # Sample content for policies

Etapa 2: executar o exemplo imediatamente

Comece executando o agente para que você veja a funcionalidade de trabalho antes de se aprofundar nos detalhes da implementação.

Configuração do ambiente e ambiente virtual

  1. Instale os runtimes de idioma necessários, as ferramentas globais e as extensões do VS Code, conforme descrito em Preparar seu ambiente de desenvolvimento.

  2. Instalar dependências de requirements.txt:

    pip install -r requirements.txt
    
  3. Copie o endpoint da tela de boas-vindas. Você o usará na próxima etapa.

    Captura de tela da tela de boas-vindas dos Modelos da Fábrica da Microsoft mostrando a URL do ponto de extremidade e o botão copiar.

  4. Configurar .env.

    Copie .env.template para .env e configure:

    # Foundry Configuration  
    PROJECT_ENDPOINT=https://<your-project>.aiservices.azure.com
    MODEL_DEPLOYMENT_NAME=gpt-4o-mini
    AI_FOUNDRY_TENANT_ID=<your-tenant-id>
    
    # The Microsoft Learn MCP Server (public authoritative Microsoft docs index)
    MCP_SERVER_URL=https://learn.microsoft.com/api/mcp
    
    # SharePoint Integration (Optional - requires connection setup)
    SHAREPOINT_RESOURCE_NAME=your-sharepoint-connection
    SHAREPOINT_SITE_URL=https://<your-company>.sharepoint.com/teams/your-site
    

    Dica

    Para obter a ID do locatário, execute:

    # Get tenant ID
    az account show --query tenantId -o tsv
    

    Para obter o ponto de extremidade do projeto, abra seu projeto no portal do Foundry e copie o valor mostrado lá.

Executar o agente e a avaliação

python main.py
python evaluate.py

Saída esperada (primeira execução do agente)

Uso bem-sucedido com o SharePoint:

🤖 Creating Modern Workplace Assistant...
✅ SharePoint connected: YourConnection
✅ Agent created: asst_abc123

Degradação normal sem o SharePoint:

⚠️  SharePoint connection not found: Connection 'YourConnection' not found
✅ Agent created: asst_abc123

Agora que você tem um agente operacional, as próximas seções irão explicar como ele funciona. Você não precisa tomar nenhuma ação durante a leitura dessas seções– elas são para explicação.

Etapa 3: Configurar documentos comerciais de exemplo do SharePoint

  1. Vá para o site do SharePoint (configurado na conexão).
  2. Crie a biblioteca de documentos "Políticas da Empresa" (ou use "Documentos" existentes).
  3. Carregue os quatro documentos de exemplo do Word fornecidos na sharepoint-sample-data pasta:
    • remote-work-policy.docx
    • security-guidelines.docx
    • collaboration-standards.docx
    • data-governance-policy.docx

Estrutura da amostra

📁 Company Policies/
├── remote-work-policy.docx      # VPN, MFA, device requirements
├── security-guidelines.docx     # Azure security standards
├── collaboration-standards.docx # Teams, SharePoint usage
└── data-governance-policy.docx  # Data classification, retention

Etapa 4: Entender a implementação do assistente

Esta seção explica o código principal em main.py. Você já executou o agente; esta seção é conceitual e não requer alterações. Depois de lê-lo, você pode:

  • Adicione novas ferramentas de dados internas e externas.
  • Estenda as instruções dinâmicas.
  • Introduza a orquestração multiagente.
  • Aprimore a observabilidade e o diagnóstico.

O código é dividido nas seções principais a seguir, ordenadas conforme aparecem no código de exemplo completo:

  1. Configurar importações e autenticação
  2. Configurar a autenticação para o Azure
  3. Configurar a ferramenta do SharePoint
  4. Configurar a ferramenta MCP
  5. Criar o agente e conectar as ferramentas
  6. Conversar com o agente

Importante

O código neste artigo usa pacotes que estão atualmente em versão prévia. Essa versão prévia é fornecida sem um contrato de nível de serviço e não recomendamos isso para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos. Para obter mais informações, consulte Termos de Uso Complementares para Versões Prévias do Microsoft Azure.

Importações e configuração de autenticação

O código usa várias bibliotecas de clientes do SDK do Microsoft Foundry para criar um agente empresarial robusto.

import os
import time
from azure.ai.agents import AgentsClient
from azure.ai.agents.models import (
    SharepointTool,
    SharepointGroundingToolParameters,
    McpTool,
    RunHandler,
    ToolApproval
)
from azure.identity import DefaultAzureCredential
from dotenv import load_dotenv

# Import for connection resolution
try:
    from azure.ai.projects import AIProjectClient
    from azure.ai.projects.models import ConnectionType
    HAS_PROJECT_CLIENT = True
except ImportError:
    HAS_PROJECT_CLIENT = False

Configurar a autenticação no Azure

Antes de criar seu agente, configure a autenticação para a Foundry.

# Support default Azure credentials
credential = DefaultAzureCredential()

agents_client = AgentsClient(
    endpoint=os.environ["PROJECT_ENDPOINT"],
    credential=credential,
)
print(f"✅ Connected to Azure AI Foundry: {os.environ['PROJECT_ENDPOINT']}")

Criar a ferramenta do SharePoint para o agente

O agente usa o SharePoint e pode acessar documentos de política e procedimento da empresa armazenados lá. Configure a conexão com o SharePoint em seu código.

# Create SharePoint tool with the full ARM resource ID
sharepoint_tool = SharepointTool(connection_id=connection_id)
print(f"✅ SharePoint tool configured successfully")

Criar a ferramenta MCP para o agente

# MCP (Model Context Protocol) enables agents to access external data sources
# like Microsoft Learn documentation. The approval flow is handled automatically
# in the chat_with_assistant function.
from azure.ai.agents.models import McpTool

mcp_server_url = os.environ.get("MCP_SERVER_URL")
mcp_tool = None

if mcp_server_url:
    print(f"📚 Configuring Microsoft Learn MCP integration...")
    print(f"   Server URL: {mcp_server_url}")
    
    try:
        # Create MCP tool for Microsoft Learn documentation access
        # server_label must match pattern: ^[a-zA-Z0-9_]+$ (alphanumeric and underscores only)
        mcp_tool = McpTool(
            server_url=mcp_server_url,
            server_label="Microsoft_Learn_Documentation"
        )
        print(f"✅ MCP tool configured successfully")
    except Exception as e:
        print(f"⚠️  MCP tool unavailable: {e}")
        print(f"   Agent will operate without Microsoft Learn access")
        mcp_tool = None
else:
    print(f"📚 MCP integration skipped (MCP_SERVER_URL not set)")

Criar o agente e conectar as ferramentas

Agora, crie o agente e conecte as ferramentas do SharePoint e do MCP.

# Create the agent using Agent SDK v2 with available tools
print(f"🛠️  Creating agent with model: {os.environ['MODEL_DEPLOYMENT_NAME']}")

# Build tools list with proper serialization
tools = []

# Add SharePoint tool using .definitions property
if sharepoint_tool:
    tools.extend(sharepoint_tool.definitions)
    print(f"   ✓ SharePoint tool added")

# Add MCP tool using .definitions property
if mcp_tool:
    tools.extend(mcp_tool.definitions)
    print(f"   ✓ MCP tool added")

print(f"   Total tools: {len(tools)}")

# Create agent with or without tools
if tools:
    agent = agents_client.create_agent(
        model=os.environ["MODEL_DEPLOYMENT_NAME"],
        name="Modern Workplace Assistant",
        instructions=instructions,
        tools=tools
    )
else:
    agent = agents_client.create_agent(
        model=os.environ["MODEL_DEPLOYMENT_NAME"],
        name="Modern Workplace Assistant",
        instructions=instructions,
    )

print(f"✅ Agent created successfully: {agent.id}")
return agent

Conversar com o agente

Por fim, implemente um loop interativo para conversar com o agente.

# Get response from the agent
print("🤖 ASSISTANT RESPONSE:")
response, status = chat_with_assistant(agent.id, scenario['question'])

Saída esperada do código de exemplo do agente (main.py)

Ao executar o agente, você verá uma saída semelhante ao exemplo a seguir. O resultado mostra a configuração bem-sucedida da ferramenta e as respostas do agente para cenários de negócios:

$ python main.py
✅ Connected to Foundry
🚀 Foundry - Modern Workplace Assistant
Tutorial 1: Building Enterprise Agents with Agent SDK v2
======================================================================
🤖 Creating Modern Workplace Assistant...
📁 Configuring SharePoint integration...
   Connection name: ContosoCorpPoliciesProcedures
   🔍 Resolving connection name to ARM resource ID...
   ✅ Resolved
✅ SharePoint tool configured successfully
📚 Configuring Microsoft Learn MCP integration...
   Server URL: https://learn.microsoft.com/api/mcp
✅ MCP tool configured successfully
🛠️  Creating agent with model: gpt-4o-mini
   ✓ SharePoint tool added
   ✓ MCP tool added
   Total tools: 2
✅ Agent created successfully

======================================================================
🏢 MODERN WORKPLACE ASSISTANT - BUSINESS SCENARIO DEMONSTRATION
======================================================================
This demonstration shows how AI agents solve real business problems
using the Azure AI Agents SDK v2.
======================================================================

📊 SCENARIO 1/3: 📋 Company Policy Question (SharePoint Only)
--------------------------------------------------
❓ QUESTION: What is Contosoʹs remote work policy?
🎯 BUSINESS CONTEXT: Employee needs to understand company-specific remote work requirements
🎓 LEARNING POINT: SharePoint tool retrieves internal company policies
--------------------------------------------------
🤖 ASSISTANT RESPONSE:
✅ SUCCESS: Contosoʹs remote work policy, effective January 2024, outlines the following key points:

### Overview
Contoso Corp supports flexible work arrangements, including remote work, to enhance employee productivity and work-life balance.

### Eligibility
- **Full-time Employees**: Must have completed a 90...
   📏 Full response: 1530 characters
📈 STATUS: completed
--------------------------------------------------

📊 SCENARIO 2/3: 📚 Technical Documentation Question (MCP Only)
--------------------------------------------------
❓ QUESTION: According to Microsoft Learn, what is the correct way to implement Azure AD Conditional Access policies? Please include reference links to the official documentation.
🎯 BUSINESS CONTEXT: IT administrator needs authoritative Microsoft technical guidance
🎓 LEARNING POINT: MCP tool accesses Microsoft Learn for official documentation with links
--------------------------------------------------
🤖 ASSISTANT RESPONSE:
✅ SUCCESS: To implement Azure AD Conditional Access policies correctly, follow these key steps outlined in the Microsoft Learn documentation:

### 1. Understanding Conditional Access
Conditional Access policies act as "if-then" statements that enforce organizational access controls based on various signals. Th...
   📏 Full response: 2459 characters
📈 STATUS: completed
--------------------------------------------------

📊 SCENARIO 3/3: 🔄 Combined Implementation Question (SharePoint + MCP)
--------------------------------------------------
❓ QUESTION: Based on our companyʹs remote work security policy, how should I configure my Azure environment to comply? Please include links to Microsoft documentation showing how to implement each requirement.
🎯 BUSINESS CONTEXT: Need to map company policy to technical implementation with official guidance
🎓 LEARNING POINT: Both tools work together: SharePoint for policy + MCP for implementation docs
--------------------------------------------------
🤖 ASSISTANT RESPONSE:
✅ SUCCESS: To configure your Azure environment in compliance with Contoso Corpʹs remote work security policy, you need to focus on several key areas, including enabling Multi-Factor Authentication (MFA), utilizing Azure Security Center, and implementing proper access management. Below are specific steps and li...
   📏 Full response: 3436 characters
📈 STATUS: completed
--------------------------------------------------

✅ DEMONSTRATION COMPLETED!
🎓 Key Learning Outcomes:
   • Agent SDK v2 usage for enterprise AI
   • Proper thread and message management
   • Real business value through AI assistance
   • Foundation for governance and monitoring (Tutorials 2-3)

🎯 Try interactive mode? (y/n): n

🎉 Sample completed successfully!
📚 This foundation supports Tutorial 2 (Governance) and Tutorial 3 (Production)
🔗 Next: Add evaluation metrics, monitoring, and production deployment

Etapa 5: Avaliar o assistente em um lote

O código da estrutura de avaliação testa cenários de negócios realistas que combinam políticas do SharePoint com diretrizes técnicas do Microsoft Learn. Essa abordagem demonstra os recursos de avaliação em lotes para validar o desempenho do agente em vários casos de teste. A avaliação usa uma abordagem baseada em palavra-chave para avaliar se o agente fornece respostas relevantes que incorporam as fontes de informações esperadas.

Esta estrutura de avaliação testa:

  • Integração do SharePoint para perguntas de política da empresa
  • Integração do MCP para perguntas sobre orientações técnicas
  • Cenários combinados que exigem conhecimento interno e externo
  • Qualidade da resposta usando a correspondência de palavras-chave e a análise de comprimento

O código é dividido nas seguintes seções principais:

  1. Carregar dados de avaliação.
  2. Execute a avaliação em lote.
  3. Compile os resultados da avaliação.

Carregar dados de avaliação

Nesta seção, a estrutura de avaliação carrega perguntas de teste de questions.jsonl. O arquivo contém cenários de negócios que testam diferentes aspectos do agente:

{"question": "What is Contoso's remote work policy?", "expected_source": "sharepoint", "test_type": "sharepoint_only", "explanation": "Forces SharePoint tool usage - answer must contain Contoso-specific policy details", "validation": "check_for_contoso_specifics"}
{"question": "What are Contoso's security protocols for remote employees?", "expected_source": "sharepoint", "test_type": "sharepoint_only", "explanation": "Forces SharePoint tool usage - must retrieve specific security protocols from company policies", "validation": "check_for_contoso_specifics"}
{"question": "How does Contoso classify confidential business documents according to our data governance policy?", "expected_source": "sharepoint", "test_type": "sharepoint_only", "explanation": "Forces SharePoint tool usage - must retrieve data classification from governance policy", "validation": "check_for_contoso_specifics"}
{"question": "What collaboration tools are approved for internal use at Contoso?", "expected_source": "sharepoint", "test_type": "sharepoint_only", "explanation": "Forces SharePoint tool usage - must list specific tools from collaboration standards", "validation": "check_for_contoso_specifics"}
{"question": "According to Microsoft Learn documentation, what is the correct way to set up Azure Active Directory for remote workers? Include reference links.", "expected_source": "mcp", "test_type": "mcp_only", "explanation": "Forces MCP tool usage - must provide Microsoft Learn documentation with links", "validation": "check_for_microsoft_learn_links"}
{"question": "What does Microsoft Learn say about configuring Azure Security Center monitoring? Please provide the official documentation links.", "expected_source": "mcp", "test_type": "mcp_only", "explanation": "Forces MCP tool usage - must access Microsoft Learn for Security Center guidance with links", "validation": "check_for_microsoft_learn_links"}
{"question": "How do I implement data loss prevention in Microsoft 365 according to Microsoft's official documentation? Include links to the relevant Microsoft Learn articles.", "expected_source": "mcp", "test_type": "mcp_only", "explanation": "Forces MCP tool usage - must provide DLP implementation steps with documentation links", "validation": "check_for_microsoft_learn_links"}
{"question": "What are the steps to configure conditional access policies in Azure AD according to Microsoft Learn? Provide documentation links.", "expected_source": "mcp", "test_type": "mcp_only", "explanation": "Forces MCP tool usage - must provide conditional access guidance with Microsoft Learn links", "validation": "check_for_microsoft_learn_links"}
{"question": "Based on Contoso's remote work policy requirements, how should I implement Azure VPN Gateway? Include links to Microsoft documentation for each step.", "expected_source": "both", "test_type": "hybrid", "explanation": "Forces both tools - must combine Contoso policy requirements with Azure VPN implementation guidance and links", "validation": "check_for_both_sources"}
{"question": "What Azure services do I need to configure to meet Contoso's data governance requirements? Provide Microsoft Learn links for implementing each service.", "expected_source": "both", "test_type": "hybrid", "explanation": "Forces both tools - must map Contoso governance policy to specific Azure services with documentation links", "validation": "check_for_both_sources"}
{"question": "How do I configure Microsoft Teams to comply with Contoso's collaboration standards? Include Microsoft documentation links for the setup.", "expected_source": "both", "test_type": "hybrid", "explanation": "Forces both tools - must combine Contoso collaboration standards with Teams configuration guidance and links", "validation": "check_for_both_sources"}
{"question": "What Azure security services should I implement to align with Contoso's incident response procedures? Provide links to Microsoft Learn for each service.", "expected_source": "both", "test_type": "hybrid", "explanation": "Forces both tools - must connect Contoso security policy to Azure security services with documentation links", "validation": "check_for_both_sources"}
# NOTE: This code is a non-runnable snippet of the larger sample code from which it is taken.
def load_test_questions(filepath="questions.jsonl"):
    """Load test questions from JSONL file"""
    questions = []
    with open(filepath, 'r') as f:
        for line in f:
            questions.append(json.loads(line.strip()))
    return questions

Executar avaliação em lote

def run_evaluation(agent_id):
    """
    Run evaluation with test questions using Agent SDK v2.
    
    Args:
        agent_id: The ID of the agent to evaluate
        
    Returns:
        list: Evaluation results for each question
    """
    questions = load_test_questions()
    results = []
    
    print(f"🧪 Running evaluation with {len(questions)} test questions...")
    print("="*70)
    
    # Track results by test type
    stats = {
        "sharepoint_only": {"passed": 0, "total": 0},
        "mcp_only": {"passed": 0, "total": 0},
        "hybrid": {"passed": 0, "total": 0}
    }
    
    for i, q in enumerate(questions, 1):
        test_type = q.get("test_type", "unknown")
        expected_source = q.get("expected_source", "unknown")
        validation_type = q.get("validation", "default")
        
        print(f"\n📝 Question {i}/{len(questions)} [{test_type.upper()}]")
        print(f"   {q['question'][:80]}...")
        
        response, status = chat_with_assistant(agent_id, q["question"])
        
        # Validate response using source-specific checks
        passed, validation_details = validate_response(response, validation_type, expected_source)
        
        result = {
            "question": q["question"],
            "response": response,
            "status": status,
            "passed": passed,
            "validation_details": validation_details,
            "test_type": test_type,
            "expected_source": expected_source,
            "explanation": q.get("explanation", "")
        }
        results.append(result)
        
        # Update stats
        if test_type in stats:
            stats[test_type]["total"] += 1
            if passed:
                stats[test_type]["passed"] += 1
        
        status_icon = "✅" if passed else "⚠️"
        print(f"{status_icon} Status: {status} | Tool check: {validation_details}")
    
    print("\n" + "="*70)
    print("📊 EVALUATION SUMMARY BY TEST TYPE:")
    print("="*70)
    for test_type, data in stats.items():
        if data["total"] > 0:
            pass_rate = (data["passed"] / data["total"]) * 100
            icon = "✅" if pass_rate >= 75 else "⚠️" if pass_rate >= 50 else "❌"
            print(f"{icon} {test_type.upper()}: {data['passed']}/{data['total']} passed ({pass_rate:.1f}%)")
    
    return results

Compilar resultados de avaliação

def calculate_and_save_results(results):
    """Calculate pass rate and save results"""
    # Calculate pass rate
    passed = sum(1 for r in results if r.get("passed", False))
    total = len(results)
    pass_rate = (passed / total * 100) if total > 0 else 0
    
    print(f"\n📊 Overall Evaluation Results: {passed}/{total} questions passed ({pass_rate:.1f}%)")
    
    # Save results
    with open("evaluation_results.json", "w") as f:
        json.dump(results, f, indent=2)
    
    print(f"💾 Results saved to evaluation_results.json")
    
    # Print summary of failures
    failures = [r for r in results if not r.get("passed", False)]
    if failures:
        print(f"\n⚠️  Failed Questions ({len(failures)}):")
        for r in failures:
            print(f"   - [{r['test_type']}] {r['question'][:60]}...")
            print(f"     Reason: {r['validation_details']}")

Saída esperada do código de exemplo de avaliação (evaluate.py)

Ao executar o script de avaliação, você verá uma saída semelhante ao exemplo a seguir. A saída mostra a execução bem-sucedida de cenários de teste de negócios e geração de métricas de avaliação:

python evaluate.py
✅ Connected to Foundry
🧪 Modern Workplace Assistant - Evaluation (Agent SDK v2)
======================================================================
🤖 Creating Modern Workplace Assistant...
📁 Configuring SharePoint integration...
   Connection name: ContosoCorpPoliciesProcedures
   🔍 Resolving connection name to ARM resource ID...
   ✅ Resolved
✅ SharePoint tool configured successfully
📚 Configuring Microsoft Learn MCP integration...
   Server URL: https://learn.microsoft.com/api/mcp
✅ MCP tool configured successfully
🛠️  Creating agent with model: gpt-4o-mini
   ✓ SharePoint tool added
   ✓ MCP tool added
   Total tools: 2
✅ Agent created successfully
   Model: gpt-4o-mini
   Name: Modern Workplace Assistant
======================================================================
🧪 Running evaluation with 12 test questions...
======================================================================

📝 Question 1/12 [SHAREPOINT_ONLY]
   What is Contosoʹs remote work policy?...
✅ Status: completed | Tool check: Contoso-specific content: True

...

📝 Question 5/12 [MCP_ONLY]
   According to Microsoft Learn documentation, what is the correct way to set up Az...
✅ Status: completed | Tool check: Microsoft Learn links: True

...

📝 Question 12/12 [HYBRID]
   What Azure security services should I implement to align with Contosoʹs incident...
✅ Status: completed | Tool check: Contoso content: True, Learn links: True

======================================================================
📊 EVALUATION SUMMARY BY TEST TYPE:
======================================================================
✅ SHAREPOINT_ONLY: 4/4 passed (100.0%)
✅ MCP_ONLY: 4/4 passed (100.0%)
✅ HYBRID: 4/4 passed (100.0%)

📊 Overall Evaluation Results: 12/12 questions passed (100.0%)
💾 Results saved to evaluation_results.json

Ativos de avaliação adicionais

A avaliação gera evaluation_results.json com métricas para cada pergunta (acertos de palavra-chave, métrica de comprimento). Você pode estender esse arquivo para:

  • Use prompts de pontuação baseados em modelo.
  • Introduza a validação de saída estruturada.
  • Registrar latência e uso de token.

Aqui está um exemplo da estrutura de saída JSON:

[
  {
    "question": "What is Contoso's remote work policy?",
    "response": "Contoso's remote work policy includes the following key components: <...>",
    "status": "completed",
    "passed": true,
    "validation_details": "Contoso-specific content: True",
    "test_type": "sharepoint_only",
    "expected_source": "sharepoint",
    "explanation": "Forces SharePoint tool usage - answer must contain Contoso-specific policy details"
  },
  {
    "question": "What are Contoso's security protocols for remote employees?",
    "response": ...

    ...

  }
]

Resumo

Agora você tem:

  • Um protótipo de agente único em funcionamento fundamentado em conhecimento interno e externo.
  • Um script de avaliação repetível que demonstra padrões de validação empresarial.
  • Caminho de atualização claro: mais ferramentas, orquestração de vários agentes, avaliação mais avançada, implantação.

Esses padrões reduzem o atrito protótipo a produção: você pode adicionar fontes de dados, impor governança e integrar o monitoramento sem reescrever a lógica principal.

Próximas etapas

Este tutorial demonstra a fase 1 da jornada do desenvolvedor – da ideia ao protótipo. Este exemplo mínimo fornece a base para o desenvolvimento de IA empresarial. Para continuar seu percurso, explore os próximos estágios:

Aprimoramentos adicionais sugeridos

Estágio 2: Protótipo para produção

Estágio 3: Produção para adoção