Construir agentes de IA cada vez es más fácil. Desplegarlos como parte de una aplicación real, con múltiples servicios, estado persistente e infraestructura de producción, es donde las cosas se complican. Los desarrolladores de la comunidad .NET han solicitado si existe un ejemplo real que muestre ejecutándose tanto en la máquina local como en la nube de forma nativa en la nube.
¡Te hemos oído! Hemos creado un ejemplo de Coach de Entrevistas de código abierto para mostrar cómo encajan Microsoft Agent Framework, Microsoft Foundry, Model Context Protocol (MCP) y Aspire en una aplicación de estilo producción. Es un simulador de entrevistas funcional donde un coach de IA te guía a través de preguntas de comportamiento y técnicas, y luego te ofrece un resumen de tu rendimiento.
Esta entrada cubre los patrones que usamos y los problemas que resuelven.
Aquí tienes el enlace para visitar la aplicación de demostración de Interview Coach.
¿Por qué Microsoft Agent Framework?
Si has estado construyendo agentes de IA con .NET, probablemente hayas usado Semantic Kernel, AutoGen o ambos. Microsoft Agent Framework es el siguiente paso. Está construido por los mismos equipos y combina lo que funcionó en ambos proyectos en un único marco.
Toma las abstracciones de agentes de AutoGen y las características empresariales del Kernel Semántico (gestión de estados, seguridad de tipos, middleware, telemetría) y las reúne bajo un mismo techo. También añade flujos de trabajo basados en gráficos para la orquestación multiagente.
Para los desarrolladores .NET, esto significa:
- Un marco en vez de dos. No más elegir entre Semantic Kernel y AutoGen.
- Patrones familiares. Los agentes usan inyección de dependencias,
IChatClienty el mismo modelo de alojamiento que ASP.NET aplicaciones. - Construido para producción. Se incluyen OpenTelemetry, pipelines de middleware e integración con Aspire.
- Orquestación multiagente. Se admiten flujos de trabajo secuenciales, ejecución concurrente, patrones de traspaso y chat grupal.
El Coach de Entrevistas convierte todo esto en una solicitud real, no solo en un Hello World.
¿Por qué Microsoft Foundry?
Los agentes de IA necesitan más que un modelo. Necesitan infraestructura. Microsoft Foundry es la plataforma de Azure para construir y gestionar aplicaciones de IA, y es el backend recomendado para Microsoft Agent Framework.
Foundry te ofrece un único portal para:
- Acceso a modelos. Un catálogo de modelos de OpenAI, Meta, Mistral y otros, todo en un mismo punto final.
- Seguridad de contenidos. Moderación incorporada y detección de PII para que tus agentes no se descontrolen.
- Enrutamiento optimizado para costes. Las solicitudes se encaminan automáticamente al mejor modelo para el trabajo.
- Evaluación y ajuste fino. Mide la calidad del agente y mejorala con el tiempo.
- Gobernanza empresarial. Identidad, control de acceso y cumplimiento mediante Entra ID y Microsoft Defender.
Para el Coach de Entrevistas, Foundry proporciona el endpoint del modelo que alimenta a los agentes. Como el código del agente usa la interfaz, Foundry es solo una elección de configuración, pero es el que te da más herramientas de fábrica.IChatClient
¿Qué hace el Coach de Entrevistas?
El Coach de Entrevistas es una IA conversacional que realiza una entrevista de trabajo simulada. Proporcionas un currículum y una descripción del puesto, y el agente se encarga de eso:
- Admisión. Recopila tu currículum y la descripción del puesto objetivo.
- Entrevista conductual. Hace preguntas tipo método STAR adaptadas a tu experiencia.
- Entrevista técnica. Hace preguntas técnicas específicas de cada puesto.
- Resumen. Genera una evaluación de desempeño con retroalimentación específica.
Interactúas con él a través de una interfaz web de Blazor que transmite las respuestas en tiempo real.
Arquitectura de un vistazo
La aplicación está dividida en varios servicios, todos orquestados por Aspire:
-
- Proveedor de LLM. Microsoft Foundry (recomendado) para acceso a diferentes modelos.
- WebUI. Interfaz de chat Blazor para la conversación de la entrevista.
- Agente. La lógica de la entrevista, basada en Microsoft Agent Framework.
- Servidor MCP de MarkItDown. Analiza los currículums (PDF, DOCX) en markdown a través de MarkItDown de Microsoft.
- Servidor MCP de InterviewData. Un servidor .NET MCP que almacena sesiones en SQLite.

Aspire se encarga del descubrimiento de servicios, revisiones de salud y telemetría. Cada componente se ejecuta como un proceso separado, y empiezas todo con un solo comando.
Patrón 1: Transferencia multiagente
Reproductor de vídeo
00:00
00:36
El patrón de handoff es donde esta muestra se vuelve interesante. En lugar de que un agente lo haga todo, la entrevista se divide entre cinco agentes especializados:
| Agente | Función | Herramientas |
|---|---|---|
| Triaje | Envía los mensajes al especialista adecuado | Ninguno (enrutamiento puro) |
| Recepcionista | Crea sesiones, recopila currículum y descripción del puesto | MarkItDown + InterviewData |
| Entrevistador conductual | Realiza preguntas conductuales utilizando el método STAR | InterviewData |
| Entrevistador Técnico | Hace preguntas técnicas específicas de cada puesto | InterviewData |
| Resumidor | Genera el resumen final de la entrevista | InterviewData |
En el patrón de traspaso, un agente transfiere el control total de la conversación al siguiente. El agente receptor toma el control por completo. Esto es diferente del «agente como herramienta», donde un agente principal llama a otros como ayudantes pero mantiene el control.
Así es como está cableado el flujo de trabajo de traspaso:Copiado
var workflow = AgentWorkflowBuilder .CreateHandoffBuilderWith(triageAgent) .WithHandoffs(triageAgent, [receptionistAgent, behaviouralAgent, technicalAgent, summariserAgent]) .WithHandoffs(receptionistAgent, [behaviouralAgent, triageAgent]) .WithHandoffs(behaviouralAgent, [technicalAgent, triageAgent]) .WithHandoffs(technicalAgent, [summariserAgent, triageAgent]) .WithHandoff(summariserAgent, triageAgent) .Build();
El camino feliz es secuencial: recepcionista → resumidor de → de comportamiento → técnico. Cada especialista pasa directamente al siguiente. Si algo se sale del guion, los agentes recurren a Triage para redirigir.
El ejemplo también incluye un modo de agente único para despliegues más sencillos, para que puedas comparar ambos enfoques lado a lado.
Patrón 2: MCP para integración de herramientas
Las herramientas de este proyecto no están dentro del agente. Viven en sus propios servidores MCP (Model Context Protocol). El mismo servidor MarkItDown podría impulsar un proyecto de agente completamente diferente, y los equipos de herramientas pueden lanzar de forma independiente a los de los equipos. MCP también es independiente del lenguaje, que es como MarkItDown funciona como servidor Python mientras el agente es .NET.
El agente descubre herramientas en la startup a través de los clientes MCP y las pasa a los agentes adecuados:Copiado
var receptionistAgent = new ChatClientAgent( chatClient: chatClient, name: "receptionist", instructions: "You are the Receptionist. Set up sessions and collect documents...", tools: [.. markitdownTools, .. interviewDataTools]);
Cada agente solo recibe las herramientas que necesita. El triaje no recibe ninguno (solo enruta), los entrevistadores tienen acceso a las sesiones y la recepcionista tiene análisis de documentos más acceso a la sesión. Esto sigue el principio del privilegio mínimo.
Patrón 3: Orquestación Aspire
Aspire lo une todo. El anfitrión de la app define la topología del servicio: qué servicios existen, cómo dependen unos de otros y qué configuración reciben. Obtienes:
- Descubrimiento del servicio. Los servicios se encuentran entre sí por nombre, no por URLs codificadas en fija.
- Chequeos médicos. El panel de control de Aspire muestra el estado de cada componente.
- Trazado distribuido. OpenTelemetry se conectó por cable mediante los valores por defecto de servicio compartido.
- Arranque con un solo comando. lanza todo.
aspire run --file ./apphost.cs
Para el despliegue, se traslada toda la aplicación a Azure Container Apps.
