Cómo Integré mi Agente de Copilot Studio en una App de Consola C# con el SDK de Agentes
Bueno, les cuento mi experiencia. Tenía creado un agente en Copilot Studio y también una aplicación de consola en C# que ya venía usando. Lo que necesitaba era conectar ambas cosas para poder mandar prompts desde mi consola y recibir las respuestas ahí mismo, sin tener que andar saltando entre aplicaciones.
Les voy a mostrar cómo logré integrar mi Agente de Copilot Studio en el proyecto de consola C# usando el SDK de Agentes de Microsoft 365.
Antes de meternos de lleno con el código C#, déjenme contarles un poco sobre el agente que usé. Para este ejemplo, trabajé con el Agente de Q&A de Sitio Web que viene listo para usar.
Lo que necesitás saber del Agente:
- Mi agente es básicamente un sistema de Preguntas y Respuestas que usa el sitio de Microsoft como base de conocimiento.
- Lo configuré sin autenticación para hacerlo más simple.
- Cuando entré a Canales > Aplicación web, me encontré con dos opciones: Código de inserción y SDK de Agentes de Microsoft 365.
- Para este proyecto, decidí ir por el SDK de Agentes de Microsoft 365.
Ok, ahora que ya sabés cómo está configurado el agente, vamos a lo bueno: configurar el proyecto de consola C#. Usé el proyecto de ejemplo que Microsoft tiene disponible.
Configurando el proyecto C# desde los ejemplos de Microsoft:
- Primero cloné el repo de GitHub:
https://github.com/microsoft/Agents.gitSúper fácil, nada del otro mundo.
- Lo abrí en Visual Studio (también podés usar VSCode si preferís)
- Me fui directo a la carpeta samples/dotnet/copilotstudio-client. Compilé el proyecto para asegurarme que todo andaba bien, sin errores.
Una vez que tuve el proyecto funcionando, el siguiente paso fue crear el registro de aplicación en Entra ID.
Creando el Registro de Aplicación en Entra ID:
Para este ejemplo, decidí crear una Identidad de Aplicación Cliente Nativa. Lo bueno es que no necesita secretos, así que es más simple.
- Entré a https://portal.azure.com
- Busqué Microsoft Entra Id en el portal
- Fui a Administrar > Registros de aplicaciones > + Nuevo registro
- En la pantalla de registro:
- Le puse un nombre (podés ponerle el que quieras)
- Elegí “Cuentas solo en este directorio de organización”
- En “Seleccionar una plataforma”, marqué “Cliente público/nativo (móvil y escritorio)”
- En el URI de redirección puse
http://localhost(ojo, es HTTP, no HTTPS) - Le di click a Registrar
- En la página de Resumen, me guardé el ID de aplicación (cliente) y el ID de directorio (inquilino). Estos los vas a necesitar después, así que anotalos bien.
- Después fui a Administrar > Permisos de API > Agregar permiso
- En el panel que aparece, clickeé en “APIs que usa mi organización”
- Busqué “Power Platform API”
- En los permisos, elegí “Permisos delegados”
- Marqué CopilotStudio y seleccioné
CopilotStudio.Copilots.Invoke - Le di a Agregar permisos
- Importante: Le di click a “Otorgar consentimiento de administrador” (si no tenés permisos de admin, pedile a alguien que lo haga)
Probando la aplicación de consola C#:
- Antes de correr el proyecto, tuve que configurar el archivo appsettings.json.
- Para conseguir los valores que necesitaba —el Nombre del esquema del agente, ID del entorno e ID del inquilino— fui a mi agente en Copilot Studio y navegué hasta: Agente > Configuración > Avanzado > Metadatos.
- Copié esos valores (están todos ahí juntitos)
- Los pegué en el archivo
appsettings.jsonasí:
{
"AgentSchemaName": "acá_va_tu_nombre_esquema",
"EnvironmentId": "acá_va_tu_id_entorno",
"TenantId": "acá_va_tu_id_inquilino"
}- Compilé y corrí el proyecto C#
- La primera vez que lo ejecuté, me pidió que me loguee. Normal, completé el login sin drama.
- Y ahí está! Una vez autenticado, ya podía chatear con mi agente directamente desde la consola. Las respuestas aparecían en tiempo real. Una belleza.
Beneficios de orquestar agentes con Copilot Studio
Integrar agentes de Copilot Studio en aplicaciones personalizadas no solo facilita la interacción con usuarios, sino que también permite:
- Centralizar la gestión de agentes: todos los agentes, sin importar dónde fueron creados, pueden trabajar juntos.
- Seleccionar dinámicamente el agente adecuado: el sistema decide cuál responde mejor según la intención del usuario.
- Escalar de forma ágil: los equipos de negocio crean agentes y los de desarrollo los integran en cuestión de horas.
- Maximizar el ROI en IA: se aprovechan tanto las herramientas low-code de negocio como las integraciones avanzadas de desarrollo.
Lo más importante que aprendí:
- Preparar el Agente:
- Crear el agente en Copilot Studio (yo usé uno de Q&A)
- Dejarlo sin autenticación para simplificar las pruebas
- Usar la opción del SDK de Agentes de Microsoft 365 (no el embed code)
- El Proyecto C#:
- Clonar el repo de ejemplos de Microsoft (viene todo listo)
- Compilar el proyecto copilotstudio-client
- Verificar que compile sin errores antes de seguir
- El Registro en Entra ID:
- Crear una app cliente nativa (sin secretos)
- Configurar el redirect a http://localhost
- Agregar los permisos de Power Platform API
- No olvidarse del consentimiento de administrador
- La Configuración Final:
- Sacar los metadatos del agente desde Copilot Studio
- Actualizar el appsettings.json con esos valores
- Loguearse la primera vez que corrés la app
- El Resultado:
- Chat directo con el agente desde tu consola
- Respuestas en tiempo real
- Integración completa y funcionando
Lo genial de este approach es que podés integrar las capacidades de IA de Copilot Studio directamente en tus apps empresariales existentes. Es como tener lo mejor de ambos mundos: tu aplicación de siempre pero ahora con superpoderes de IA.
Si seguís estos pasos, vas a tener tu integración funcionando en un ratito. No es complicado, solo hay que ir paso a paso y prestar atención a los detalles de configuración.
