(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa
Azure AI & Machine Learning
Azure AI & Machine Learning 2 min

Semantic Kernel: orquestrar agentes de IA com .NET e Python

João Barros 26 de December de 2025 2 min de leitura

O Semantic Kernel é o SDK open-source da Microsoft para construir aplicações de IA que combinam LLMs com código nativo, plugins, memória semântica e orquestração de agentes. É a fundação técnica por baixo do Microsoft Copilot.

Conceitos fundamentais

Kernel       → motor central que coordena tudo
Plugin       → colecção de funções (nativas ou semânticas)
  KernelFunction → função individual (nativa em C#/Python ou prompt template)
Memory       → contexto vectorial persistente (RAG interno)
Planner      → selecciona e encadeia funções automaticamente para cumprir um objectivo

Criar kernel e chamar 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"]
))

# Função semântica inline
resposta = await kernel.invoke_prompt(
    "Traduz este texto para inglês formal: {{$input}}",
    input="O relatório de vendas está pronto para revisão."
)
print(resposta)

Plugin nativo — expor código ao LLM

from semantic_kernel.functions import kernel_function

class VendasPlugin:
    @kernel_function(description="Retorna vendas totais de um mês")
    def get_vendas_mes(self, mes: str, ano: str) -> str:
        # Lógica real: query SQL, API, etc.
        return f"Vendas de {mes}/{ano}: 125.430€"

kernel.add_plugin(VendasPlugin(), plugin_name="vendas")

# O LLM pode agora chamar esta função automaticamente quando relevante
resposta = await kernel.invoke_prompt(
    "Qual foi o total de vendas em Março de 2024?",
    # O planner decide chamar get_vendas_mes(mes='Março', ano='2024')
)

Memória semântica

from semantic_kernel.memory import SemanticTextMemory

memory = SemanticTextMemory(storage=..., embeddings_generator=...)
await memory.save_information("politicas", id="ferias", text="Os colaboradores têm 22 dias de férias por ano...")

# Recuperar contexto relevante
results = await memory.search("politicas", "quantos dias de férias tenho?")
print(results[0].text)

Conclusão

O Semantic Kernel é o SDK mais maduro para construir assistentes empresariais com LLMs na stack Microsoft. A abstracção de plugins permite que o LLM chame código real (queries SQL, APIs) em vez de apenas gerar texto — isso é o que diferencia um chatbot de um agente útil.

Partilhar: