Structured Inputs na Prática: Pare de criar um agente para cada usuário no Microsoft Foundry
Criar agentes personalizados para diferentes usuários parece uma solução simples. Até que o número de clientes começa a crescer.
Imagine uma aplicação SaaS em que cada cliente possui seu próprio nome, sua própria base de conhecimento e seu próprio Vector Store. A abordagem mais comum é criar um agente para cada usuário ou empresa.
Funciona? Sim.
Escala? Definitivamente não.
Além da complexidade operacional, você passa a gerenciar dezenas, ou centenas, de definições praticamente idênticas, mudando apenas alguns valores de configuração.
Foi exatamente para resolver esse cenário que o Microsoft Foundry introduziu o recurso de Structured Inputs.
Com ele, é possível criar um único agente e personalizar sua execução em tempo de execução, substituindo informações como nome do usuário, identificadores de Vector Stores e outros parâmetros específicos de cada sessão.
Na prática, isso significa que a definição do agente continua única, enquanto cada usuário recebe uma experiência personalizada.
Mas a implementação gera algumas dúvidas:
- Como declarar placeholders nas instructions?
- Como esses valores são substituídos durante a execução?
- Como utilizar
Patch.Setcom JSON Pointer? - Como isso funciona no SDK nativo?
- E como fazer exatamente a mesma coisa utilizando o Microsoft Agent Framework?
Essas perguntas ficam ainda mais interessantes quando você percebe que o Microsoft Agent Framework não exige que você recrie toda a definição do agente. Ele consegue trabalhar sobre um agente já existente no Foundry, adicionando recursos como gerenciamento de sessões e abstrações mais sofisticadas, sem abrir mão das funcionalidades nativas.
No vídeo da última semana mostro exatamente esse cenário.
Você verá duas implementações completas em C#:
- utilizando o SDK Azure.AI.Projects, para quem deseja acesso direto aos recursos do Microsoft Foundry;
- utilizando o Microsoft Agent Framework, mostrando como usar
AsAIAgent,AgentSessioneRawRepresentationFactorypara injetar valores de runtime sem duplicar a definição do agente.
Além disso, comparo quando faz sentido permanecer apenas com o SDK nativo e quando o Microsoft Agent Framework começa a fazer diferença conforme a aplicação cresce.
Se você está desenvolvendo agentes para produção, especialmente em cenários multiusuário, esse é um recurso que vale a pena conhecer.
O código-fonte utilizado durante a demonstração também está disponível no repositório do projeto.