ToolSimulator: Testes Escaláveis e Seguros para Agentes de IA com Ferramentas Externas

A AWS lançou o ToolSimulator, um framework de simulação de ferramentas baseado em grandes modelos de linguagem (LLM) integrado ao Strands Evals SDK, que permite testar agentes de IA que dependem de ferramentas externas de forma segura e em escala.
Por que o ToolSimulator é importante?
Agentes de IA modernos frequentemente interagem com APIs externas, bancos de dados e outros sistemas para executar tarefas. Testar essas interações diretamente em APIs reais traz três desafios principais:
- Dependência externa: APIs reais podem impor limites de uso, apresentar instabilidades e exigir conexão de rede, dificultando testes extensivos.
- Risco de efeitos colaterais: Chamadas a ferramentas reais podem desencadear ações indesejadas, como envio de e-mails, alterações em bancos de dados ou reservas reais.
- Privacidade e segurança: Dados sensíveis podem ser expostos durante testes em sistemas ao vivo, criando riscos de compliance.
Alternativas como mocks estáticos são limitadas, pois exigem manutenção constante e não suportam fluxos de trabalho multi-turno com estado compartilhado, comuns em agentes reais.
Como o ToolSimulator se diferencia?
O ToolSimulator resolve esses problemas com três funcionalidades-chave:
- Geração adaptativa de respostas: As respostas simuladas variam conforme os parâmetros da chamada, gerando dados plausíveis e contextuais.
- Suporte a workflows com estado: Mantém estado compartilhado entre chamadas, permitindo simular interações complexas como reservas de voo que dependem de múltiplas etapas.
- Validação de esquema: Respostas são validadas contra schemas Pydantic definidos pelo desenvolvedor, garantindo formatos corretos e evitando falhas por dados malformados.
Disponibilidade e público-alvo
O ToolSimulator está disponível hoje como parte do Strands Evals SDK. Desenvolvedores que criam agentes de IA capazes de chamar ferramentas externas podem usar a ferramenta para acelerar e aprimorar seus testes, sem a necessidade de uma conta AWS para rodar localmente.
Como começar a usar o ToolSimulator
Para usar o ToolSimulator, você precisa:
- Python 3.10 ou superior instalado
- Instalar o Strands Evals SDK via pip:
pip install strands-evals - Conhecimentos básicos de Python, especialmente decoradores e type hints
- Familiaridade com agentes de IA e conceitos de chamadas de ferramentas (APIs, esquemas de função)
- Conhecimento em Pydantic é recomendado para validação avançada, mas não obrigatório
Fluxo básico de uso
- Registrar ferramentas: Crie uma instância do ToolSimulator e decore funções que simulam as ferramentas, deixando o corpo vazio, pois as chamadas reais são interceptadas.
- Configurar simulação (opcional): Personalize o estado inicial, compartilhe estado entre ferramentas relacionadas e defina schemas de resposta para validação.
- Executar simulação: Quando o agente chama uma ferramenta registrada, o ToolSimulator gera respostas realistas e mantém o estado para chamadas subsequentes.
from strands_evals.simulation.tool_simulator import ToolSimulator
tool_simulator = ToolSimulator()
@tool_simulator.tool(initial_state_description="Banco de voos: SEA->JFK com horários às 8h, 12h e 18h, preços entre $180 e $420.")
def search_flights(origin: str, destination: str, date: str) -> dict:
pass # Implementação real não chamada durante simulação
Exemplo de uso com agente
from strands import Agent
flight_tool = tool_simulator.get_tool("search_flights")
agent = Agent(
system_prompt="Você é um assistente de busca de voos.",
tools=[flight_tool],
)
response = agent("Encontre voos de Seattle para Nova York em 15 de março.")
print(response)
Recursos avançados do ToolSimulator
- Instâncias independentes: Permite criar múltiplas simulações paralelas com estados e registros separados para comparar agentes.
- Estado compartilhado para workflows multi-turno: Ferramentas que escrevem e leem dados usam um ID compartilhado para manter coerência de estado.
- Validação rígida de schemas: Defina modelos Pydantic para garantir que as respostas simuladas estejam sempre no formato esperado.
Integração com pipelines de avaliação Strands Evals
O ToolSimulator integra-se facilmente ao framework Strands Evals para criar pipelines de avaliação completas, incluindo coleta de métricas de sucesso e geração de relatórios detalhados. Isso permite validar não só as respostas finais do agente, mas toda a sequência de interações e chamadas às ferramentas simuladas.
Impacto prático para desenvolvedores
Com o ToolSimulator, equipes de desenvolvimento podem:
- Realizar testes em larga escala sem riscos de efeitos colaterais ou exposição de dados sensíveis.
- Detectar bugs de integração e testar casos extremos de forma abrangente.
- Garantir que agentes estejam prontos para produção com maior confiança e rapidez.