Construindo fluxos de trabalho agênticos com SageMaker AI e Bedrock AgentCore
Amazon Web Services
Anthropic
Alibaba/Qwen
Este post demonstra como combinar endpoints compatíveis com OpenAI no Amazon SageMaker AI com o runtime do Amazon Bedrock AgentCore para construir sistemas multiagentes. Ele percorre a implantação do Qwen 3.5 9B no SageMaker AI, integrando-o a um sistema multiagente Strands Agents junto com modelos no Amazon Bedrock e enviando todo o fluxo de trabalho para o runtime do Amazon Bedrock AgentCore. O foco está na mecânica de integração, incluindo observabilidade em nível de token dos endpoints do SageMaker, que a Strands não fornece por padrão.
Um desafio comum na construção de fluxos de trabalho agênticos é misturar modelos de fundação gerenciados com seus próprios modelos otimizados para custo ou específicos de domínio, sem reescrever a estrutura do agente. Este post mostra como combinar endpoints compatíveis com OpenAI no Amazon SageMaker AI com o runtime do Amazon Bedrock AgentCore e sua implantação gerenciada. A arquitetura conecta três caminhos de hospedagem de modelos por meio de um único contêiner do Amazon Bedrock AgentCore: um agente orquestrador (Claude Haiku 4.5 no Bedrock) para classificação de intenção e roteamento, um agente de orçamento (Claude Sonnet 4.6 no Bedrock) para detalhamentos de orçamento e um agente de análise financeira (Qwen 3.5 9B no Amazon SageMaker AI) para análise de ações usando chamada de ferramentas. A implantação inclui tokens de portador com atualização automática para sessões de longa duração, usando o padrão de agentes como ferramentas dos Agentes Strands e implantando via bedrock-agentcore-starter-toolkit. Um desafio chave é que o runtime do Amazon Bedrock AgentCore instrumenta automaticamente os agentes com OpenTelemetry, mas os endpoints compatíveis com OpenAI do SageMaker não recebem telemetria automática de uso de tokens. A solução envolve emitir manualmente spans de chat gen_ai envolvendo a invocação do agente SageMaker e extraindo o uso de tokens de AgentResult.metrics.accumulated_usage dos Strands. Além disso, stream_options: {"include_usage": True} deve ser definido porque o vLLM não inclui um bloco de uso nas respostas de streaming por padrão. O post também aborda configuração passo a passo, exemplo de saída de trace, principais aprendizados e extensão do padrão com modelos ajustados, teste A/B com componentes de inferência e roteamento consciente de custo.
Fonte: AWS ML blog —
original
