Semantic Kernel: orquestar agentes de IA con .NET y Python
João Barros
26 de December de 2025
2 min de lectura
Semantic Kernel es el SDK open-source de Microsoft para construir aplicaciones de IA que combinan LLMs con código nativo, plugins, memoria semántica y orquestación de agentes. Es la base técnica detrás de Microsoft Copilot.
Conceptos fundamentales
Kernel → motor central que coordina todo
Plugin → colección de funciones (nativas o semánticas)
KernelFunction → función individual (nativa en C#/Python o un prompt template)
Memory → contexto vectorial persistente (RAG interno)
Planner → selecciona y encadena funciones automáticamente para cumplir un objetivo
Crear un kernel y llamar a un LLM
import asyncio
from semantic_kernel import Kernel
from semantic_kernel.connectors.ai.open_ai import AzureChatCompletion
kernel = Kernel()
kernel.add_service(AzureChatCompletion(
deployment_name="gpt-4o",
endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
api_key=os.environ["AZURE_OPENAI_KEY"]
))
# Función semántica inline
respuesta = await kernel.invoke_prompt(
"Traduce este texto al inglés formal: {{$input}}",
input="El informe de ventas está listo para revisión."
)
print(respuesta)
Plugin nativo — exponer código al LLM
from semantic_kernel.functions import kernel_function
class SalesPlugin:
@kernel_function(description="Devuelve las ventas totales de un mes")
def get_monthly_sales(self, month: str, year: str) -> str:
# Lógica real: query SQL, API, etc.
return f"Ventas de {month}/{year}: 125.430€"
kernel.add_plugin(SalesPlugin(), plugin_name="sales")
# El LLM ahora puede llamar a esta función automáticamente cuando sea relevante
respuesta = await kernel.invoke_prompt(
"¿Cuál fue el total de ventas en marzo de 2024?",
# El planner decide llamar a get_monthly_sales(month='March', year='2024')
)
Memoria semántica
from semantic_kernel.memory import SemanticTextMemory
memory = SemanticTextMemory(storage=..., embeddings_generator=...)
await memory.save_information("politicas", id="vacaciones", text="Los empleados tienen 22 días de vacaciones al año...")
# Recuperar contexto relevante
results = await memory.search("politicas", "¿cuántos días de vacaciones tengo?")
print(results[0].text)
Conclusión
Semantic Kernel es el SDK más maduro para construir asistentes empresariales con LLMs en la stack de Microsoft. La abstracción de plugins permite que el LLM llame a código real (queries SQL, APIs) en lugar de solo generar texto — eso es lo que diferencia un chatbot de un agente útil.