Cree un agente FinOps utilizando Amazon Bedrock AgentCore

La gestión de costos en varias cuentas de AWS a menudo requiere que los equipos financieros consulten datos de varias fuentes para obtener una visión completa de las oportunidades de optimización y gasto. En esta publicación, aprenderá cómo crear un agente FinOps utilizando Amazon Bedrock AgentCore que ayude a su equipo de finanzas a administrar los costos de AWS en varias cuentas. Este agente conversacional consolida datos de AWS Cost Explorer, AWS Budgets y AWS Compute Optimizer en una única interfaz, para que su equipo pueda hacer preguntas como "¿Cuáles son mis principales generadores de costos este mes?" y recibir respuestas inmediatas.

Aprenderá a configurar la arquitectura, implementar la solución utilizando el kit de desarrollo en la nube de AWS (AWS CDK) e interactuar con sus datos de costos a través de consultas en lenguaje natural. La solución utiliza AgentCore, Anthropic Claude Sonnet 4.5, Strands Agent SDK y Model Context Protocol (MCP).

Tendrás una memoria de conversación que retiene 30 días de contexto, para que puedas hacer preguntas de seguimiento sin repetir información. Más de 20 herramientas especializadas cubren todo el espectro de la gestión de costos, desde el análisis hasta la optimización, aliviando la necesidad de navegar manualmente por múltiples consolas de AWS. La interacción del lenguaje natural hace que los datos de costos sean accesibles para los miembros del equipo de toda su organización.

Descripción general de la solución

Esta solución consta de dos componentes principales: la capa de autenticación y frontend y Amazon Bedrock AgentCore Runtime con herramientas y memoria. Amazon Cognito administra la autenticación de usuarios mientras AgentCore Runtime procesa consultas de administración de costos. La capa de autenticación y frontend utiliza AWS Amplify para alojar la interfaz de la aplicación web y Amazon Cognito para la autenticación del usuario. Amazon Cognito maneja la autenticación de usuarios y proporciona credenciales temporales de AWS a través de grupos de identidades.

El agente personalizado para FinOps está alojado en AgentCore Runtime y creado con Strands Agent que se integra con Amazon Bedrock para acceder a un modelo de lenguaje grande (LLM). Amazon Bedrock AgentCore Gateway administra invocaciones de herramientas y enruta solicitudes a servicios backend mediante la autenticación de AWS Identity and Access Management (IAM). Los servidores MCP están alojados en AgentCore Runtime para brindar acceso a las herramientas de administración de costos y facturación de AWS. AgentCore Memory mantiene el historial de conversaciones durante hasta 30 días de retención de contexto. AgentCore Identity administra el ciclo de vida de las credenciales OAuth 2.0 para una comunicación segura entre los tiempos de ejecución del servidor Gateway y MCP. Almacena las credenciales del cliente Amazon Cognito M2M como proveedor de credenciales OAuth y emite tokens en nombre de la puerta de enlace cuando necesita autenticarse con los tiempos de ejecución de MCP.

Con estos componentes implementados, la siguiente sección examina cómo funcionan juntos en la arquitectura completa.

Diagrama de arquitectura

El siguiente diagrama representa la arquitectura de la solución, que contiene cinco secciones clave:

Sección A: Infraestructura de autenticación: Primero, la pila CDK de FinOpsAuthStack implementa la infraestructura de autenticación (grupo de usuarios de Amazon Cognito, grupo de identidades, cliente M2M, servidor de recursos y funciones de IAM). El grupo de usuarios maneja la autenticación de usuarios, el cliente M2M permite flujos OAuth 2.0 de máquina a máquina entre los tiempos de ejecución de Gateway y MCP, y el grupo de identidades proporciona credenciales temporales de AWS que permiten que la aplicación frontend se comunique de forma segura con el tiempo de ejecución de AgentCore.

Sección B: Infraestructura de creación de imágenes: a continuación, la pila CDK de FinOpsImageStack implementa la canalización de creación de imágenes del contenedor (depósito de Amazon S3, proyectos de AWS CodeBuild y repositorios de Amazon Elastic Container Registry (Amazon ECR)). CodeBuild clona los servidores MCP de AWS Labs ascendentes, aplica una transformación stdio a HTTP (parcheándolos para el transporte http que se puede transmitir) y crea imágenes de contenedores de AWS Graviton (ARM64) que se almacenan en Amazon ECR para su uso en AgentCore Runtimes.

Sección C: Tiempos de ejecución del servidor MCP: la pila CDK FinOpsMCPRuntimeStack implementa dos tiempos de ejecución AgentCore que ejecutan los servidores MCP de AWS Labs transformados (facturación y precios). Cada tiempo de ejecución se configura con autorización JWT utilizando Amazon Cognito de AuthStack y tiene permisos de IAM específicos para las API de AWS a las que accede. Por ejemplo, AWS Billing and Cost Management y AWS Compute Optimizer para el tiempo de ejecución de facturación y AWS Pricing para el tiempo de ejecución de precios.

Sección D: Puerta de enlace AgentCore: la pila CDK FinOpsAgentCoreGatewayStack implementa la puerta de enlace AgentCore con autorización AWS_IAM, un proveedor de credenciales OAuth (registrado con AgentCore Identity utilizando las credenciales Cognito M2M de AuthStack) y dos destinos de servidor MCP que apuntan a los tiempos de ejecución de facturación y precios. La puerta de enlace proporciona un punto final de invocación y descubrimiento de herramientas unificadas, que maneja el intercambio de tokens OAuth para la autenticación saliente a los tiempos de ejecución de MCP.

Sección E: Tiempo de ejecución del agente principal: Finalmente, la pila CDK FinOpsAgentRuntimeStack implementa el tiempo de ejecución principal de AgentCore. Utiliza Strands Agent Framework con Claude Sonnet 3.7 para orquestar invocaciones de modelos y llamadas de herramientas a través de Gateway. También implementa AgentCore Memory para el historial de conversaciones. El tiempo de ejecución se conecta a la puerta de enlace a través de la autenticación IAM SigV4, descubre 24 herramientas de ambos servidores MCP y enruta las solicitudes de herramientas a través de la puerta de enlace para recuperar datos de costos, facturación y precios.

Usando la aplicación web

Ahora que comprende la arquitectura, veamos un flujo de solicitud de muestra. Por ejemplo, ¿qué sucede cuando un usuario pregunta "¿Cuáles son mis costos de AWS para enero de 2026?"

El usuario de FinOps accede a la aplicación web alojada en AWS Amplify, que sirve al frontend (HTML, CSS, JavaScript). El usuario se autentica con Amazon Cognito. Amazon Cognito valida las credenciales y devuelve credenciales temporales de AWS del grupo de identidades. La interfaz envía la pregunta del usuario a AgentCore Runtime y utiliza las credenciales temporales de AWS para llamar a InvokeAgentRuntime. El agente de Strands dentro del tiempo de ejecución envía la pregunta junto con 24 definiciones de herramientas disponibles a Claude Sonnet 4.5 en Amazon Bedrock. El modelo analiza la pregunta y decide que necesita llamar a billingMcp__cost_explorer. El agente recibe la solicitud de llamada a la herramienta del modelo y la enruta a AgentCore Gateway mediante la autenticación IAM SigV4 (InvokeGateway). La puerta de enlace debe autenticarse con el tiempo de ejecución de MCP. Se pone en contacto con AgentCore Identity para obtener un token OAuth 2.0 utilizando el proveedor de credenciales registrado (respaldado por las credenciales del cliente Cognito M2M). La puerta de enlace envía las herramientas de MCP/solicitud de llamada con el token de OAuth al tiempo de ejecución de MCP de facturación. Billing MCP Runtime ejecuta la llamada API real a AWS Cost Explorer y solicita datos de costos y uso para enero de 2026 utilizando su función de ejecución. Los datos de costos regresan a través de la cadena. Billing MCP Runtime responde a la puerta de enlace y luego la puerta de enlace responde al agente. El agente envía los datos de costos a Amazon Bedrock, donde Claude genera un resumen en lenguaje natural de los costos de enero de 2026. La respuesta formateada se devuelve al usuario de FinOps y muestra el desglose de costos en la interfaz de chat.

Requisitos previos

Antes de comenzar, verifique que tenga:

Una cuenta de AWS con los permisos adecuados para los siguientes servicios: Amazon Bedrock, AgentCore, Amazon ECR, AWS Lambda, Amazon Cognito, AWS CodeBuild e IAM AWS Command Line Interface (AWS CLI) (v2.x) configurado con credenciales Node.js (v18 o posterior) y npm instalado Python 3.13 o superior instalado AWS CDK instalado y arrancado en su cuenta de AWS Instalar: npm install -g aws-cdk Bootstrap: cdk bootstrap aws://AWS-NÚMERO-de-CUENTA/AWS-REGION

Implemente la solución utilizando AWS CDK

Esta solución se implementa en la región de AWS us-east-1. La implementación utiliza AWS CDK para aprovisionar la infraestructura a través de tres pilas de AWS CloudFormation.

Para implementar la solución:

Paso 1: clonar el repositorio

clon de git https://github.com/aws-samples/sample-finops-agent-amazon-bedrock-agentcore cd de muestra-finops-agent-amazon-bedrock-agentcore

Paso 2: establecer variables de entorno

Reemplace su-correo electrónico@ejemplo.com con su dirección de correo electrónico para recibir la contraseña de administrador temporal:

exportar ADMIN_EMAIL="tu-correo electrónico@ejemplo.com"

Paso 3: Implementar usando CDK

cd cdk && npm install && npm run build && npx cdk bootstrap && npx cdk implementar –todos –require-approval nunca

El script de implementación instala las dependencias del CDK, crea código TypeScript, arranca el CDK si es necesario y luego implementa las tres pilas en secuencia. El proceso dura aproximadamente entre 15 y 20 minutos. Una vez completado, tendrá cinco CloudFormation Stacks dentro de su cuenta.

Una vez completada la implementación del último CloudFormation Stack FinOpsAgentRuntimeStack, tenga en cuenta los siguientes resultados del terminal:

ID del grupo de usuarios: ID del grupo de identidades de Cognito ID del cliente del grupo de usuarios: ID del cliente del grupo de usuarios de Cognito ID del grupo de identidades: ID del grupo de identidades ARN de AgentCore: ARN de tiempo de ejecución de AgentCore

La siguiente captura de pantalla muestra cómo se verán las Salidas.

Salida CFN de FinOps AgentCore

Recibirá un correo electrónico con una contraseña temporal para el usuario administrador.

Con la infraestructura implementada, ahora puede configurar y utilizar la aplicación web para interactuar con sus datos de costos.

Implementar la aplicación Amplify

Si bien proporcionamos una interfaz de muestra alojada en AWS Amplify, puede integrar la solución con su propia interfaz personalizada o conectarla a sus herramientas de comunicación empresarial existentes. La aplicación frontend requiere implementación manual usando código del repositorio de GitHub:

Descargue el código de interfaz AWS-Amplify-Frontend.zip de GitHub. Navegue hasta AWS Amplify en la Consola de administración de AWS. Elija Implementar sin proveedor Git. Cargue el archivo .zip de la aplicación. Espere a que se complete la implementación. Tenga en cuenta la URL del dominio generada.

Comprender los servidores MCP

Los servidores MCP (servidor MCP de gestión de costos y facturación de AWS y servidor MCP de precios de AWS) proporcionan herramientas de fijación de precios y gestión de costos. Cada servidor MCP está diseñado para manejar tipos específicos de consultas. El servidor MCP de gestión de costos y facturación de AWS se centra en el análisis histórico de gastos, el monitoreo del presupuesto, la detección de anomalías de costos y las recomendaciones de optimización utilizando los datos reales de su cuenta de AWS. El servidor MCP de precios de AWS maneja consultas prospectivas al proporcionar datos de precios en tiempo real desde la API de lista de precios de AWS, lo que permite la estimación de costos para nuevas cargas de trabajo y proyectos de infraestructura como código (IaC).

Usando la aplicación web

Abra la URL proporcionada después de crear su aplicación AWS Amplify. Se le pedirá que ingrese los detalles de configuración de Amazon Cognito y AgentCore. Ingrese los valores de la salida de su pila (recopilados anteriormente). En el menú Tipo de agente, seleccione AgentCore Agent, ingrese la región de implementación y elija un nombre de agente (en este ejemplo, usamos AgentCore Agent). Guarde la configuración como se muestra en la siguiente imagen:

Configuración del front-end de FinOps

Inicie sesión con su nombre de usuario y la contraseña temporal enviada a su correo electrónico. Al iniciar sesión por primera vez, se le pedirá que restablezca su contraseña. Después de restablecer su contraseña, puede comenzar a hacer preguntas. Por ejemplo, pregunte "¿Cuáles son mis costos de AWS para enero de 2026?" Cuando pregunta sobre los costos, el sistema recupera datos utilizando la herramienta get_cost_and_usage para recuperar sus datos de costos y proporciona un desglose detallado por servicio.

Pregunte "¿Cuáles son mis oportunidades actuales de ahorro de costos?" El agente llama a múltiples herramientas para identificar oportunidades de optimización:

get_rightsizing_recommendations: identifica recursos sobreaprovisionados o infrautilizados get_ Savings_plans_recommendations: sugiere planes de descuento basados ​​en compromisos get_compute_optimizer_recommendations: proporciona información sobre optimización informática

A continuación, pregunte "¿Puede darme detalles de alguna instancia EC2 infrautilizada?" Debido a la memoria de la conversación, las preguntas de seguimiento mantienen el contexto de la pregunta anterior y brindan información detallada sobre casos específicos.

Vea esta sesión interactiva en acción en el siguiente vídeo.

Tutorial de demostración del agente FinOps

A continuación se muestran ejemplos de consultas adicionales que puede probar:

“Muéstrame mis costos por región durante los últimos 30 días” “¿Cuál es mi pronóstico de costos para los próximos 3 meses?” “Comparar precios para instancias t3.micro y t3.small” “¿Hay alguna anomalía en los costos en mi cuenta?” "¿Cuál es mi estado de uso de la capa gratuita?" "Muéstrame mis presupuestos y su estado actual" "¿Cuál es el precio de Lambda en us-east-1?" "Obtener recomendaciones de ajuste de tamaño para mis instancias EC2"

Memoria conversacional en acción

AgentCore Memory mantiene el contexto en múltiples preguntas:

Usted: "¿Cuáles son mis 5 servicios principales por costo?" Agente: (Proporciona una lista de los 5 servicios principales)

Tú: "¿Qué pasa con el segundo?" Agente: (Recuerda la lista anterior y proporciona detalles)

Tú: "¿Cómo puedo optimizarlo?" Agente: (Proporciona recomendaciones de optimización)

Vea esta sesión interactiva en acción en el siguiente vídeo.

Uso de memoria del agente FinOps

AgentCore Memory administra automáticamente el historial de conversaciones y el administrador de sesiones de Strands recupera el contexto relevante para cada solicitud.

Limpiar

Para evitar incurrir en cargos futuros, elimine los recursos creados por esta solución.

Eliminar las pilas:

cd muestra-finops-agent-amazon-agentcore/cdk npx cdk destruir –todos

Se le preguntará lo siguiente:

¿Está seguro de que desea eliminar: FinOpsAgentRuntimeStack, FinOpsAgentCoreGatewayStack, FinOpsMCPRuntimeStack, FinOpsAuthStack, FinOpsImageStack (sí/n)?

Escriba y y esto eliminará las pilas.

Eliminar la aplicación Amplify:

En la consola de Amplify, en la navegación izquierda de su aplicación, elija Configuración de la aplicación y seleccione Configuración general. En la sección Configuración general, elija Eliminar aplicación.

Conclusión

En esta publicación, le mostramos cómo crear un agente FinOps utilizando AgentCore. El agente proporciona acceso en lenguaje natural a análisis de costos y recomendaciones de optimización mediante la consolidación de datos de AWS Cost Explorer, AWS Budgets y Compute Optimizer.

La arquitectura combina AgentCore Runtime, Gateway, Memory, Identity, Strands Framework, MCP y Claude Sonnet 4.5. Puede ampliar esta base a otros casos de uso, como la automatización de DevOps, el análisis de seguridad y la supervisión del cumplimiento. Comience hoy visitando el repositorio de GitHub.

Sobre los autores

salman ahmed

salman ahmed

Salman es gerente técnico senior de cuentas en AWS. Se especializa en guiar a los clientes a través del diseño, implementación y soporte de soluciones de AWS. Combinando su experiencia en redes con un impulso para explorar nuevas tecnologías, ayuda a las organizaciones a navegar con éxito su viaje a la nube. Fuera del trabajo, le gusta la fotografía, viajar y ver a sus equipos deportivos favoritos.

Ravikumar

Ravikumar

Ravi es gerente técnico senior de cuentas en AWS Enterprise Support y ayuda a los clientes de la industria de viajes y hotelería a optimizar sus operaciones en la nube en AWS. Es un profesional de TI orientado a resultados con más de 20 años de experiencia. A Ravi le apasiona la IA generativa y explora activamente sus aplicaciones en la computación en la nube. En su tiempo libre, Ravi disfruta de actividades creativas como pintar. También le gusta jugar al cricket y viajar a lugares nuevos.

Sergio Barraza

Sergio Barraza

Sergio es gerente técnico senior de cuentas en AWS y ayuda a los clientes a diseñar y optimizar soluciones en la nube. Con más de 25 años en el desarrollo de software, guía a los clientes a través de la adopción de servicios de AWS. Fuera del trabajo, Sergio es un músico multiinstrumentista que toca la guitarra, el piano y la batería, y también practica Wing Chun Kung Fu.