in

Agentes para Amazon Bedrock: Presentamos una experiencia de creación y configuración simplificada | Servicios web de Amazon

8 de mayo de 2024: Publicación actualizada con un enlace que muestra cómo manejar el retorno de control en el código.

Con Agents for Amazon Bedrock, las aplicaciones pueden utilizar inteligencia artificial generativa (IA generativa) para ejecutar tareas en múltiples sistemas y fuentes de datos. A partir de hoy, estas nuevas capacidades agilizan la creación y gestión de agentes:

Creación rápida de agentes – Ahora puede crear rápidamente un agente y, opcionalmente, agregar instrucciones y grupos de acciones más adelante, lo que brinda flexibilidad y agilidad para su proceso de desarrollo.

Constructor de agentes – Todas las configuraciones de agentes se pueden operar en la nueva sección del generador de agentes de la consola.

Configuración simplificada – Los grupos de acciones pueden utilizar un esquema simplificado que simplemente enumera funciones y parámetros sin tener que proporcionar un esquema API.

Retorno del control – Puede omitir el uso de una función de AWS Lambda y devolver el control a la aplicación que invoca al agente. De esta manera, la aplicación puede integrarse directamente con sistemas fuera de AWS o llamar a puntos finales internos alojados en cualquier Amazon Virtual Private Cloud (Amazon VPC) sin la necesidad de integrar las configuraciones de red y seguridad requeridas con una función Lambda.

Infraestructura como código – Puede utilizar AWS CloudFormation para implementar y administrar agentes con la nueva configuración simplificada, lo que garantiza coherencia y reproducibilidad en todos los entornos para sus aplicaciones de IA generativa.

Veamos cómo funcionan estas mejoras en la práctica.

Crear un agente usando la nueva consola simplificada
Para probar la nueva experiencia, quiero crear un agente que pueda ayudarme a responder a un correo electrónico que contenga comentarios de los clientes. Puedo usar IA generativa, pero una sola invocación de un modelo básico (FM) no es suficiente porque necesito interactuar con otros sistemas. Para hacer eso, utilizo un agente.

En la consola de Amazon Bedrock, elijo Agentes desde el panel de navegación y luego Crear agente. Ingreso un nombre para el agente (comentarios de los clientes) y una descripción. Usando la nueva interfaz, procedo y creo el agente sin proporcionar información adicional en esta etapa.

Captura de pantalla de la consola.

Ahora se me presenta el Constructor de agentes, el lugar donde puedo acceder y editar la configuración general de un agente. En el Rol de recurso del agentedejo la configuración predeterminada como Crear y utilizar un nuevo rol de servicio para que el rol de AWS Identity and Access Management (IAM) asumido por el agente se cree automáticamente para mí. Para el modelo, selecciono antrópico y Soneto de Claudio 3.

Captura de pantalla de la consola.

En Instrucciones para el agente, Proporciono instrucciones claras y específicas para la tarea que debe realizar el agente. Aquí también puedo especificar el estilo y el tono que quiero que utilice el agente al responder. Para mi caso de uso, ingreso:

Help reply to customer feedback emails with a solution tailored to the customer account settings.

En Ajustes adicionalesYo selecciono Activado para Entrada del usuario para que el agente pueda solicitar detalles adicionales cuando no tenga suficiente información para responder. Entonces elijo Ahorrar para actualizar la configuración del agente.

ahora elijo Agregar en el Grupos de acción sección. Los grupos de acción son la forma en que los agentes pueden interactuar con sistemas externos para recopilar más información o realizar acciones. Introduzco un nombre (recuperar-configuración-del-cliente) y una descripción del grupo de acciones:

Retrieve customer settings including customer ID.

La descripción es opcional pero, cuando se proporciona, se pasa al modelo para ayudar a elegir cuándo utilizar este grupo de acciones.

Captura de pantalla de la consola.

En Tipo de grupo de acciónYo selecciono Definir con detalles de función de modo que solo necesito especificar funciones y sus parámetros. La otra opción aquí (Definir con esquemas API) corresponde a la forma anterior de configurar grupos de acciones utilizando un esquema API.

Las funciones del grupo de acciones pueden asociarse a una llamada de función Lambda o configurarse para devolver el control al usuario o la aplicación que invoca al agente para que pueda proporcionar una respuesta a la función. La opción de devolver el control es útil para cuatro casos de uso principales:

  • Cuando es más fácil llamar a una API desde una aplicación existente (por ejemplo, la que invoca al agente) que crear una nueva función Lambda con la autenticación y las configuraciones de red correctas según lo requiere la API
  • Cuando la duración de la tarea supera el tiempo de espera máximo de la función Lambda de 15 minutos para poder manejar la tarea con una aplicación que se ejecuta en contenedores o servidores virtuales o utilizar una orquestación de flujo de trabajo como AWS Step Functions.
  • Cuando tengo acciones que consumen mucho tiempo porque, con el retorno del control, el agente no espera a que se complete la acción antes de continuar con el siguiente paso, y la aplicación que invoca puede ejecutar acciones de forma asincrónica en segundo plano mientras el flujo de orquestación del el agente continúa
  • Cuando necesito una forma rápida de simular la interacción con una API durante el desarrollo y las pruebas de un agente

En Invocación de grupo de acciones, puedo especificar la función Lambda que se invocará cuando el modelo identifique este grupo de acciones durante la orquestación. Puedo pedirle a la consola que cree rápidamente una nueva función Lambda, que seleccione una función Lambda existente o que devuelva el control para que el usuario o la aplicación que invoca al agente solicite detalles para generar una respuesta. Yo selecciono Control de devolución para mostrar cómo funciona eso en la consola.

Captura de pantalla de la consola.

Configuro la primera función del grupo de acciones. Introduzco un nombre (recuperar-configuraciones-del-cliente-desde-crm) y la siguiente descripción de la función:

Retrieve customer settings from CRM including customer ID using the customer email in the sender/from fields of the email.

Captura de pantalla de la consola.

En ParámetrosAñado email con Customer email Como la descripción. Este es un parámetro de tipo Cadena y es requerido por esta función. yo elijo Agregar para completar la creación del grupo de acciones.

Como, para mi caso de uso, espero que muchos clientes tengan problemas al iniciar sesión, agrego otro grupo de acciones (llamado comprobar el estado de inicio de sesión) con la siguiente descripción:

Check customer login status.

Esta vez, selecciono la opción para crear una nueva función Lambda para poder manejar estas solicitudes en código.

Para este grupo de acciones, configuro una función (llamada comprobar-el-estado-de-inicio-de-inicio-de-cliente-en-el-sistema-de-inicio de sesión) con la siguiente descripción:

Check customer login status in login system using the customer ID from settings.

En ParámetrosAñado customer_idotro parámetro requerido de tipo Cadena. Entonces elijo Agregar para completar la creación del segundo grupo de acción.

Cuando abro la configuración de este grupo de acciones, veo el nombre de la función Lambda que se creó en mi cuenta. Ahí elijo Vista para abrir la función Lambda en la consola.

Captura de pantalla de la consola.

En la consola Lambda, edito el código inicial que se proporcionó e implemento mi caso de negocio:

import json

def lambda_handler(event, context):
    print(event)
    
    agent = event['agent']
    actionGroup = event['actionGroup']
    function = event['function']
    parameters = event.get('parameters', [])

    # Execute your business logic here. For more information,
    # refer to: https://docs.aws.amazon.com/bedrock/latest/userguide/agents-lambda.html
    if actionGroup == 'check-login-status' and function == 'check-customer-login-status-in-login-system':
        response = {
            "status": "unknown"
        }
        for p in parameters:
            if p['name'] == 'customer_id' and p['type'] == 'string' and p['value'] == '12345':
                response = {
                    "status": "not verified",
                    "reason": "the email address has not been verified",
                    "solution": "please verify your email address"
                }
    else:
        response = {
            "error": "Unknown action group {} or function {}".format(actionGroup, function)
        }
    
    responseBody =  {
        "TEXT": {
            "body": json.dumps(response)
        }
    }

    action_response = {
        'actionGroup': actionGroup,
        'function': function,
        'functionResponse': {
            'responseBody': responseBody
        }

    }

    dummy_function_response = {'response': action_response, 'messageVersion': event['messageVersion']}
    print("Response: {}".format(dummy_function_response))

    return dummy_function_response

yo elijo Desplegar en la consola Lambda. La función está configurada con una política basada en recursos que permite a Amazon Bedrock invocar la función. Por este motivo, no necesito actualizar la función de IAM utilizada por el agente.

Estoy listo para probar el agente. De vuelta en la consola de Amazon Bedrock, con el agente seleccionado, busco el Agente de prueba sección. ahí elijo Preparar para preparar el agente y probarlo con los últimos cambios.

Como información para el agente, proporciono este correo electrónico de muestra:

From: [email protected]

Subject: Problems logging in

Hi, when I try to log into my account, I get an error and cannot proceed further. Can you check? Thank you, Danilo

En el primer paso, la orquestación del agente decide utilizar el primer grupo de acciones (recuperar-configuración-del-cliente) y función (recuperar-configuraciones-del-cliente-desde-crm). Esta función está configurada para devolver el control y, en la consola, se me solicita que proporcione el resultado de la función del grupo de acciones. La dirección de correo electrónico del cliente se proporciona como parámetro de entrada.

Captura de pantalla de la consola.

Para simular una interacción con una aplicación, respondo con una sintaxis JSON y elijo Entregar:

{ "customer id": 12345 }

En el siguiente paso, el agente tiene la información necesaria para utilizar el segundo grupo de acciones (comprobar el estado de inicio de sesión) y función (comprobar-el-estado-de-inicio-de-inicio-de-cliente-en-el-sistema-de-inicio de sesión) para llamar a la función Lambda. A cambio, la función Lambda proporciona esta carga útil JSON:

{
  "status": "not verified",
  "reason": "the email address has not been verified",
  "solution": "please verify your email address"
}

Con este contenido, el agente puede completar su tarea y sugerir la solución correcta para este cliente.

Captura de pantalla de la consola.

Estoy satisfecho con el resultado, pero quiero saber más sobre lo que pasó bajo el capó. yo elijo Mostrar rastro donde puedo ver los detalles de cada paso de la orquestación del agente. Esto me ayuda a comprender las decisiones de los agentes y corregir las configuraciones de los grupos de agentes si no se utilizan como espero.

Captura de pantalla de la consola.

Cosas que saber
Puede utilizar la nueva experiencia simplificada para crear y administrar agentes para Amazon Bedrock en las regiones de AWS Este de EE. UU. (Norte de Virginia) y Oeste de EE. UU. (Oregón).

Ahora puede crear un agente sin tener que especificar un esquema de API ni proporcionar una función Lambda para los grupos de acciones. Solo necesita enumerar los parámetros que necesita el grupo de acciones. Al invocar al agente, puede optar por devolver el control con los detalles de la operación a realizar para que pueda manejar la operación en sus aplicaciones existentes o si la duración es mayor que el tiempo de espera máximo de la función Lambda.

El soporte de CloudFormation para Agents for Amazon Bedrock se lanzó recientemente y ahora se está actualizando para admitir la nueva sintaxis simplificada.

Aprender más:

Danilo



Fuente

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

GIPHY App Key not set. Please check settings

El accesorio de Apple que toda MacBook necesita cuesta ahora solo $18

la seguridad cibernética

Los investigadores dicen que la educación en ciberseguridad varía ampliamente en EE. UU.