Plugins y funciones de Semantic Kernel explicados para desarrolladores de .NET y Python
By Mirko Peters ·
Descubre cómo los plugins y las funciones de Semantic Kernel conectan código personalizado con modelos de IA de forma segura. Domina las descripciones, OpenAPI, los servidores MCP y los límites de herramientas.
Automatically translated with AI from the original post. Read the English original

Los plugins y las funciones de Semantic Kernel son los bloques de construcción que permiten a los modelos de lenguaje interactuar de forma segura con software externo. Al asociar descripciones en lenguaje natural a código personalizado, los desarrolladores pueden hacer que los modelos de IA descubran, planifiquen y ejecuten funciones empresariales de forma automática, sin codificar la lógica de forma fija ni arriesgarse a exponer directamente la base de datos.
Puntos clave
- Los plugins de Semantic Kernel agrupan funciones relacionadas para exponer directamente las capacidades del software personalizado a los modelos de lenguaje de gran tamaño.
- Las descripciones de las funciones son instrucciones fundamentales para la IA; las descripciones vagas o mal redactadas hacen que el modelo adivine de forma incorrecta o que falle por completo.
- Los plugins pueden escribirse de forma nativa en C#, Python o Java, importarse mediante especificaciones OpenAPI o integrarse a través de servidores del Protocolo de contexto de modelo (MCP).
- Encapsular las conexiones a bases de datos y los clientes web dentro de los plugins evita que el modelo de IA acceda directamente a la infraestructura sensible.
- Seguir las recomendaciones de OpenAI de mantener las listas de herramientas activas entre diez y veinte funciones preserva una alta precisión del modelo durante la ejecución.
Comprender los plugins y las funciones
Cuando los desarrolladores empiezan a crear aplicaciones que unen las bases de código de software tradicional con los modelos de lenguaje de gran tamaño, pronto se dan cuenta de que estos modelos son excelentes generando texto, pero totalmente incapaces de ejecutar comandos operativos por sí mismos. Un modelo no puede consultar una base de datos de clientes, enviar un correo electrónico ni encender las luces inteligentes de una oficina sin una capa intermedia. En la arquitectura de Semantic Kernel, ese puente que falta se construye con plugins y funciones.
Una función es, sencillamente, un fragmento de código estándar, escrito en C#, Python o Java, que realiza una tarea concreta. Lo que convierte una función corriente en una herramienta lista para la IA es su descripción en lenguaje natural. Cuando tu aplicación registra una función en el kernel, asocias metadatos que explican qué hace la función, qué parámetros necesita y qué datos devuelve. El modelo de lenguaje de gran tamaño lee estas descripciones en tiempo de ejecución para determinar cuándo y cómo invocar tu código.
Anatomía de una función bien descrita
Los principiantes suelen tratar las descripciones de las funciones como comentarios opcionales o detalles de documentación secundarios, pero dentro del ecosistema de Semantic Kernel, la descripción es el prompt. Si la descripción de tu función es vaga, ambigua o excesivamente técnica, el modelo de lenguaje malinterpretará su propósito o, directamente, no la utilizará.
Cómo escribir descripciones eficaces para la IA
Para garantizar una alta fiabilidad en entornos de producción, debes redactar las descripciones de las funciones como si estuvieras explicando la capacidad a un nuevo compañero de trabajo. Por ejemplo, en lugar de describir una utilidad de búsqueda como get_ord_st() sin contexto, tu plugin debe indicar explícitamente que la función recupera el estado de un pedido de cliente a partir de un ID de pedido en forma de cadena y devuelve los detalles actuales del cumplimiento. Las entradas claras, los tipos explícitos y las explicaciones funcionales precisas eliminan las conjeturas del modelo.
Origen de los plugins: código, OpenAPI y servidores MCP
Semantic Kernel ofrece una enorme flexibilidad, ya que permite a los desarrolladores obtener plugins de tres orígenes distintos. Entender de dónde proceden tus plugins determina con qué facilidad pueden escalarse y compartirse entre los equipos de ingeniería.
Plugins de código nativo
El método más directo consiste en escribir plugins directamente dentro del código de tu aplicación existente, usando el lenguaje nativo que admite tu proyecto. Tanto si estás construyendo un backend empresarial en C# como una canalización de procesamiento de datos en Python, tus métodos personalizados se integran sin fisuras en el contenedor del kernel.
OpenAPI y Model Context Protocol (MCP)
Más allá del código nativo, puedes importar capacidades externas mediante formatos web estandarizados como OpenAPI. Además, las implementaciones modernas aprovechan los servidores de Model Context Protocol (MCP). Los servidores MCP permiten a un equipo centralizado crear una capacidad segura una sola vez y compartirla entre varias aplicaciones y entornos de desarrollo, de modo que los creadores low-code y los ingenieros de software accedan exactamente a la misma lógica de negocio.
Mejores prácticas de seguridad y arquitectura
Una de las ventajas arquitectónicas más potentes de los plugins de Semantic Kernel es el aislamiento. Un plugin bien diseñado actúa como un límite seguro entre el modelo de lenguaje y tu infraestructura empresarial. El plugin encapsula internamente las conexiones a bases de datos, las claves de API y los clientes web sensibles. El modelo de IA nunca interactúa con tus credenciales ni con las tablas de datos en bruto; solo ve la descripción de la función en texto plano y el resultado saneado que devuelve el bucle de ejecución.
Gestionar los límites de herramientas para una precisión óptima
Los desarrolladores sienten la tentación de crear cajas de herramientas enormes con decenas o cientos de funciones, pero los datos empíricos de OpenAI aconsejan cautela. La precisión del modelo cae de forma notable a medida que crece la lista de herramientas disponibles. Las mejores prácticas recomiendan mantener menos de diez herramientas activas en una misma solicitud y evitar estrictamente totales superiores a veinte. Unas pocas funciones bien enfocadas siempre superan a una biblioteca saturada de utilidades marginales.
Conclusión
Dominar los plugins y funciones de Semantic Kernel es la clave para transformar modelos de lenguaje estáticos en agentes dinámicos capaces de ejecutar flujos de trabajo empresariales del mundo real. Al redactar con cuidado las descripciones de las funciones, aprovechar los estándares OpenAPI y MCP, y mantener límites de seguridad estrictos, los desarrolladores pueden crear aplicaciones de IA robustas y escalables sin exponer infraestructura sensible. Para saber más sobre cómo el kernel orquesta la memoria, los conectores y la planificación, escucha el episodio completo del podcast M365 FM, un desglose completo y sin jerga de la capa de orquestación de IA de Microsoft.
Preguntas frecuentes
¿Qué es un plugin de Semantic Kernel?
Un plugin de Semantic Kernel es una colección de funciones relacionadas que se expone a un modelo de lenguaje de gran tamaño, lo que permite a la IA entender e invocar automáticamente lógica de software personalizada.
¿Por qué son fundamentales las descripciones de las funciones en Semantic Kernel?
Las descripciones de las funciones actúan como instrucciones para el modelo de IA. El modelo lee estas descripciones para decidir qué función invocar, de modo que las descripciones vagas provocan fallos de ejecución o suposiciones incorrectas.
¿Pueden los modelos de IA acceder directamente a mi base de datos a través de los plugins?
No. Los plugins encapsulan detalles sensibles como las conexiones a bases de datos y las credenciales, garantizando que el modelo de IA solo interactúe con descripciones en texto plano y con resultados de función saneados.
¿Cuántas funciones debe incluir una única solicitud de plugin?
Se recomienda mantener menos de diez herramientas activas, con un máximo estricto de veinte, para evitar la degradación de la precisión del modelo causada por la sobrecarga de herramientas.