Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tutorial se describe la primera fase del recorrido del desarrollador de Microsoft Foundry: desde una idea inicial hasta un prototipo de trabajo. Cree un asistente para el área de trabajo moderno que combine conocimientos internos de la empresa con instrucciones técnicas externas mediante el SDK de Microsoft Foundry.
Escenario empresarial: cree un asistente de INTELIGENCIA ARTIFICIAL que ayude a los empleados mediante la combinación de:
- Directivas de empresa (de documentos de SharePoint)
- Guía de implementación técnica (de Microsoft Learn a través de MCP)
- Soluciones completas (combinando ambos orígenes para la implementación empresarial)
- Evaluación por lotes para validar el rendimiento del agente en escenarios empresariales realistas
Resultado del tutorial: Al final tiene un Asistente Moderno para el Lugar de Trabajo que puede responder a preguntas sobre políticas, técnicas y de implementación combinada; un script de evaluación por lotes repetible; y claros puntos de extensión (otras herramientas, patrones multiagente, evaluación más completa).
Hará lo siguiente:
- Cree un asistente para un entorno de trabajo moderno mediante la integración de SharePoint y MCP.
- Demostrar escenarios empresariales reales que combinan conocimientos internos y externos.
- Implemente un manejo de errores sólido y una degradación elegante.
- Cree un marco de evaluación para pruebas centradas en la empresa.
- Prepare la base para la gobernanza y la implementación de producción.
En este ejemplo mínimo se muestran los patrones aptos para el entorno empresarial con escenarios de negocio realistas.
Importante
El código de este artículo usa paquetes que se encuentran actualmente en versión preliminar. Esta versión preliminar se ofrece sin acuerdo de nivel de servicio y no se recomienda para las cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure.
Prerrequisitos
Suscripción de Azure y autenticación de la CLI (
az login)CLI de Azure 2.67.0 o posterior (compruebe con
az version)Un proyecto Foundry con un modelo implementado (por ejemplo,
gpt-4o-mini). Si no tiene uno: cree un proyecto y, a continuación, implemente un modelo (consulte Información general del modelo: Catálogo de modelos).Python 3.10 o posterior
Conexión de SharePoint configurada en el proyecto (documentación de la herramienta de SharePoint)
Nota:
Para configurar el proyecto foundry para la conectividad de SharePoint, consulte la documentación de la herramienta de SharePoint.
(Opcional) Git instalado para clonar el repositorio de ejemplo
Paso 1: Obtener el código de ejemplo
En lugar de navegar por un árbol de repositorio grande, use uno de estos enfoques:
Opción A (clonar todo el repositorio de ejemplos)
Sugerencia
El código usa la API del proyecto Foundry (nueva) (versión preliminar) y no es compatible con la API del proyecto Foundry (clásico).
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
Opción B (extracción dispersa solo para este tutorial - descarga reducida)
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 la ruta de acceso para las variantes csharp o java según sea necesario.
Opción C (Descargar ARCHIVO ZIP del repositorio)
Descargue el archivo ZIP del repositorio, extráigalo en el entorno local y vaya a la carpeta del tutorial.
Importante
Para la implementación en producción, use un repositorio independiente. En este tutorial se usa el repositorio de ejemplos compartidos. La extracción dispersa minimiza el ruido local.
La estructura mínima solo contiene archivos esenciales:
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
Paso 2: Ejecutar el ejemplo inmediatamente
Empiece por ejecutar el agente para que vea la funcionalidad de trabajo antes de profundizar en los detalles de implementación.
Configuración del entorno y entorno virtual
Instale los entornos de ejecución de lenguaje necesarios, las herramientas globales y las extensiones de VS Code, tal como se describe en Preparación del entorno de desarrollo.
Instale las dependencias desde
requirements.txt:pip install -r requirements.txt-
Copie su endpoint desde la pantalla de bienvenida. Lo usarás en el paso siguiente.
Configure
.env.Copiar
.env.templateen.envy configurar:# 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://dori-uw-1.kuma-moon.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-siteSugerencia
Para obtener el identificador de inquilino, ejecute:
# Get tenant ID az account show --query tenantId -o tsvPara obtener el punto de conexión del proyecto, abra el proyecto en el portal de Foundry y copie el valor que se muestra allí.
Ejecutar el agente y realizar la evaluación
python main.py
python evaluate.py
Salida esperada (primera ejecución del agente)
Ejecución exitosa con SharePoint:
🤖 Creating Modern Workplace Assistant...
✅ SharePoint connected: YourConnection
✅ Agent created: asst_abc123
Degradación elegante sin SharePoint:
⚠️ SharePoint connection not found: Connection 'YourConnection' not found
✅ Agent created: asst_abc123
Ahora que tiene un agente en funcionamiento, las siguientes secciones explican cómo funciona. No es necesario realizar ninguna acción al leer estas secciones; estas secciones son para obtener una explicación.
Paso 3: Configurar documentos empresariales de SharePoint de ejemplo
- Vaya al sitio de SharePoint (configurado en la conexión).
- Cree la biblioteca de documentos "Políticas de la empresa" (o use "Documentos" existentes).
- Cargue los cuatro documentos de Word de ejemplo proporcionados en la
sharepoint-sample-datacarpeta :remote-work-policy.docxsecurity-guidelines.docxcollaboration-standards.docxdata-governance-policy.docx
Estructura de la muestra
📁 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
Paso 4: Descripción de la implementación del asistente
En esta sección se explica el código principal de main.py. Usted ya ejecutó el agente; esta sección es conceptual y no requiere ningún cambio. Después de leerlo, puede:
- Agregue nuevas herramientas de datos internas y externas.
- Amplíe las instrucciones dinámicas.
- Introduce la orquestación multiagente.
- Mejorar la observabilidad y el diagnóstico.
El código se divide en las secciones principales siguientes, ordenadas como aparecen en el código de ejemplo completo:
- Configuración de importaciones y autenticación
- Configuración de la autenticación en Azure
- Configurar la herramienta de SharePoint
- Configuración de la herramienta MCP
- Creación del agente y conexión de las herramientas
- Conversación con el agente
Importante
El código de este artículo usa paquetes que se encuentran actualmente en versión preliminar. Esta versión preliminar se ofrece sin acuerdo de nivel de servicio y no se recomienda para las cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure.
Importación y configuración de autenticación
El código usa varias bibliotecas cliente del SDK de Microsoft Foundry para crear un agente empresarial sólido.
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
Configuración de la autenticación en Azure
Antes de crear el agente, configure la autenticación en 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']}")
Crear la herramienta de SharePoint para el agente
El agente usa SharePoint y puede acceder a la directiva de la empresa y a los documentos de procedimientos almacenados allí. Configure la conexión a SharePoint en el código.
# Create SharePoint tool with the full ARM resource ID
sharepoint_tool = SharepointTool(connection_id=connection_id)
print(f"✅ SharePoint tool configured successfully")
Creación de la herramienta MCP para el 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)")
Creación del agente y conexión de las herramientas
Ahora, cree el agente y conecte las herramientas de SharePoint y 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
Conversación con el agente
Por último, implemente un bucle interactivo para conversar con el agente.
# Get response from the agent
print("🤖 ASSISTANT RESPONSE:")
response, status = chat_with_assistant(agent.id, scenario['question'])
Salida esperada del código de ejemplo del agente (main.py)
Al ejecutar el agente, verá una salida similar al ejemplo siguiente. La salida muestra una configuración correcta de herramientas y respuestas del agente a escenarios empresariales:
$ 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://dori-uw-1.kuma-moon.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
Paso 5: Evaluación del asistente en un lote
El código del marco de evaluación prueba escenarios empresariales realistas que combinan directivas de SharePoint con la guía técnica de Microsoft Learn. Este enfoque muestra las funcionalidades de evaluación por lotes para validar el rendimiento del agente en varios casos de prueba. La evaluación usa un enfoque basado en palabras clave para evaluar si el agente proporciona respuestas relevantes que incorporan los orígenes de información esperados.
Este marco de evaluación prueba:
- Preguntas sobre la integración de SharePoint para directivas de empresa
- Integración de MCP para preguntas de orientación técnica
- Escenarios combinados que requieren conocimientos internos y externos
- Calidad de respuesta mediante la coincidencia de palabras clave y el análisis de longitud
El código se divide en las secciones principales siguientes:
- Cargar datos de evaluación.
- Ejecute la evaluación por lotes.
- Compile los resultados de la evaluación.
Carga de datos de evaluación
En esta sección, el marco de evaluación carga las preguntas de prueba de questions.jsonl. El archivo contiene escenarios empresariales que prueban distintos aspectos del 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
Ejecución de la evaluación por lotes
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 evaluación
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']}")
Salida esperada del código de ejemplo de evaluación (evaluate.py)
Al ejecutar el script de evaluación, verá un resultado similar al ejemplo siguiente. La salida muestra la ejecución correcta de escenarios de prueba empresarial y la generación de métricas de evaluación:
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://dori-uw-1.kuma-moon.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
Recursos de evaluación adicionales
La evaluación genera evaluation_results.json con métricas para cada pregunta (coincidencias de palabras clave, heurística de longitud). Puede extender este archivo a:
- Use indicaciones de puntuación basadas en modelos.
- Introducir la validación de salida estructurada.
- Registre la latencia y el uso del token.
Este es un ejemplo de la estructura de salida 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": ...
...
}
]
Resumen
Ahora tiene:
- Un prototipo de agente único en funcionamiento basado en conocimientos internos y externos.
- Un script de evaluación repetible que muestra patrones de validación empresarial.
- Ruta clara de actualización: más herramientas, orquestación de múltiples agentes, evaluación más completa, implementación.
Estos patrones reducen la fricción entre prototipos y producción: puede agregar orígenes de datos, aplicar la gobernanza e integrar la supervisión sin volver a escribir la lógica principal.
Pasos siguientes
En este tutorial se muestra la fase 1 del recorrido del desarrollador, desde la idea hasta el prototipo. Este ejemplo mínimo proporciona la base para el desarrollo de inteligencia artificial empresarial. Para continuar su viaje, explore las siguientes fases:
Mejoras adicionales sugeridas
- Agregue más orígenes de datos (Azure AI Search, otros orígenes).
- Implemente métodos de evaluación avanzados (evaluación asistida por IA).
- Cree herramientas personalizadas para operaciones específicas de la empresa.
- Agregar memoria de conversación y personalización.
Fase 2: Prototipo a producción
- Implemente la evaluación de seguridad con pruebas de equipo rojo.
- Cree conjuntos de datos de evaluación completos con métricas de calidad.
- Aplicar directivas de gobernanza en toda la organización y comparación de modelos.
- Configurar la monitorización de flotas, la integración de CI/CD y los puntos de conexión implementación de producción.
Fase 3: Producción a la adopción
- Recopile los datos de seguimiento y los comentarios de los usuarios de las implementaciones de producción.
- Ajuste de los modelos y genere información de evaluación para la mejora continua.
- Integre el gateway de Azure API Management con la supervisión continua de calidad.
- Implemente la gobernanza de flotas, los controles de cumplimiento y la optimización de costos.