
Flow Integrity Deterministic Enforcement System. Mecanismos para proteger agentes de IA com controle de fluxo de informações.
Este repositório contém um notebook Jupyter que acompanha o artigo acadêmico "Securing AI Agents with Information-Flow Control". O notebook está estruturado como um tutorial para apresentar aos leitores os conceitos introduzidos no artigo. Ele ilustra uma implementação prática de mecanismos para aplicar deterministicamente políticas de segurança em tarefas agênticas e fundamenta os conceitos em código executável que os leitores podem experimentar.
O notebook foi testado com GPT-4o e GPT-4.1 usando a API Azure OpenAI Chat Completions, mas pode ser facilmente adaptado para usar um endpoint OpenAI.
O código configura o endpoint do modelo no cliente usando um arquivo de configuração .env contendo definições para AZURE_ENDPOINT, API_VERSION e AZURE_DEPLOYMENT.
Copie o arquivo .env.example fornecido para .env e edite conforme apropriado.
O notebook autentica no Serviço Azure OpenAI usando Microsoft Entra ID, mas pode ser simplesmente adaptado para usar autenticação baseada em chave, se preferir.
Para sua conveniência, fornecemos um notebook totalmente executado para ilustrar a saída pretendida, mas incentivamos os leitores a configurar seu próprio endpoint para experimentar na prática e reproduzir as nossas saídas.
Se você deseja citar este trabalho, cite-o da seguinte forma
@misc{securing_ai_agents_with_ifc,
title = {Securing {AI} Agents with Information-Flow Control},
author = {Costa, Manuel and
K{\"o}pf, Boris and
Kolluri, Aashish and
Paverd, Andrew and
Russinovich, Mark and
Salem, Ahmed and
Tople, Shruti and
Wutschitz, Lukas and
Zanella-B{\'e}guelin, Santiago},
year = {2025},
eprint = {2505.23643},
archivePrefix = {arXiv},
primaryClass = {cs.CR},
doi = {10.48550/arXiv.2505.23643}
}
Este projeto aceita contribuições e sugestões. A maioria das contribuições exige que você concorde com um Contrato de Licença de Contribuidor (CLA), declarando que você tem o direito de, e de fato nos concede, os direitos de usar sua contribuição. Para obter detalhes, visite Contratos de Licença de Contribuidor.
Quando você envia um pull request, um bot de CLA determinará automaticamente se você precisa fornecer um CLA e decorará o PR adequadamente (por exemplo, verificação de status, comentário). Basta seguir as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios que usam nosso CLA.
Este projeto adotou o Código de Conduta de Código Aberto da Microsoft. Para obter mais informações, consulte as Perguntas Frequentes sobre o Código de Conduta ou entre em contato com [email protected] para quaisquer dúvidas ou comentários adicionais.
Este projeto pode conter marcas registradas ou logotipos de projetos, produtos ou serviços. O uso autorizado de marcas registradas ou logotipos da Microsoft está sujeito e deve seguir as Diretrizes de Marcas e Branding da Microsoft. O uso de marcas registradas ou logotipos da Microsoft em versões modificadas deste projeto não deve causar confusão nem implicar patrocínio da Microsoft. Qualquer uso de marcas registradas ou logotipos de terceiros está sujeito às políticas desses terceiros.