As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Definir OpenAPI esquemas para os grupos de ação do seu agente no Amazon Bedrock
Ao criar um grupo de ação no Amazon Bedrock, defina os parâmetros que o agente precisa invocar do usuário. Também é possível definir operações de API que o agente pode invocar usando esses parâmetros. Para definir as operações da API, crie um OpenAPI esquema no formato JSON ou YAML. Você pode criar OpenAPI esquema arquivos e faça o upload deles para o Amazon Simple Storage Service (Amazon S3). Como alternativa, você pode usar o OpenAPI editor de texto no console, que validará seu esquema. Após a criação de um agente, é possível usar o editor de texto ao adicionar um grupo de ação ao agente ou ao editar um grupo de ação existente. Para obter mais informações, consulte Modificar um agente.
O agente usa o esquema para determinar a operação de API que ele precisa invocar e os parâmetros necessários para fazer a solicitação de API. Esses detalhes são enviados por meio de uma função do Lambda que você define para executar a ação ou são exibidos na resposta da invocação do agente.
Para obter mais informações sobre os esquemas da API, consulte os seguintes recursos:
-
Para obter mais detalhes sobre OpenAPI esquemas, consulte OpenAPI especificação
no Swagger site. -
Para ver as melhores práticas na criação de esquemas de API, consulte Melhores práticas em design de API
no Swagger site.
A seguir está o formato geral de um OpenAPI esquema para um grupo de ação.
{ "openapi": "3.0.0", "paths": { "/
path
": { "method
": { "description": "string
", "operationId": "string
", "parameters": [ ... ], "requestBody": { ... }, "responses": { ... }, "x-requireConfirmation": ENABLED | DISABLED } } } }
A lista a seguir descreve os campos no OpenAPI esquema
-
openapi
— (Obrigatório) A versão do OpenAPI que está sendo usado. Esse valor deve ser"3.0.0"
para que o grupo de ação funcione. -
paths
: (obrigatório) contém os caminhos relativos para endpoints individuais. Cada caminho deve começar com uma barra (/
). -
method
: (obrigatório) define o método a ser usado. -
x-requireConfirmation
: (opcional) especifica se a confirmação do usuário é necessária antes de invocar a ação. Ative esse campo para solicitar a confirmação do usuário antes que a ação seja invocada. Solicitar a confirmação do usuário antes de invocar a ação pode impedir que a aplicação execute ações devido a injeções de prompt maliciosas. Por padrão, a confirmação do usuário seráDISABLED
se esse campo não for especificado.
Cada método exige pelo menos os seguintes campos:
-
description
: uma descrição da operação de API. Use esse campo para informar ao agente quando chamar essa operação de API e o que ela faz. -
operationId
: uma string exclusiva que identifica uma operação em uma API, como o nome de uma função. Esse é um campo obrigatório para todos os novos modelos habilitados para ToolUse, como Anthropic Claude 3.5 Sonnet, Meta Llama, etc. Verifique se o identificador (ID) fornecido é exclusivo em todas as operações e siga um padrão alfanumérico simples com apenas hifens ou sublinhados como separadores. -
responses
: contém as propriedades que o agente exibe na resposta da API. O agente usa as propriedades de resposta para construir prompts, processar com precisão os resultados de uma chamada de API e determinar um conjunto correto de etapas para a execução de uma tarefa. O agente pode usar os valores de resposta de uma operação como entradas para as etapas subsequentes da orquestração.
Os campos nos dois objetos a seguir fornecem mais informações para que o agente aproveite o grupo de ação de forma eficaz. Para cada campo, defina o valor do campo required
como true
se necessário e false
se opcional.
-
parameters
: contém informações sobre os parâmetros que podem ser incluídos na solicitação. -
requestBody
: contém os campos no corpo da solicitação para a operação. Não inclua esse campo para os métodosGET
eDELETE
.
Para saber mais sobre uma estrutura, selecione nas guias a seguir.
Para saber como adicionar o OpenAPI esquema que você criou ao criar o grupo de ação, consulteAdicionar um grupo de ação ao agente no Amazon Bedrock.
Exemplo de esquemas de API
O exemplo a seguir fornece uma simples OpenAPI esquema no formato YAML que obtém o clima de um determinado local em Celsius.
openapi: 3.0.0 info: title: GetWeather API version: 1.0.0 description: gets weather paths: /getWeather/{location}/: get: summary: gets weather in Celsius description: gets weather in Celsius operationId: getWeather parameters: - name: location in: path description: location name required: true schema: type: string responses: "200": description: weather in Celsius content: application/json: schema: type: string
O exemplo do esquema de API a seguir define um grupo de operações de API que ajudam a tratar reivindicações de seguro. Três APIs são definidos da seguinte forma:
-
getAllOpenClaims
: o agente pode usar o campodescription
para determinar se deve chamar essa operação de API se uma lista das reivindicações em aberto for necessária. Asproperties
emresponses
estabelecem a devolução do ID e do titular da apólice e o status do pedido. O agente retorna essas informações ao usuário do agente ou usa parte ou toda a resposta como entrada para chamadas de API subsequentes. -
identifyMissingDocuments
: o agente pode usar o campodescription
para determinar se deve chamar essa operação de API se os documentos ausentes precisarem ser identificados para uma reivindicação de seguro. Os camposname
,description
erequired
informam ao agente que ele deve obter o identificador exclusivo de reivindicação em aberto do cliente.properties
Em seguida,responses
especifique para devolver os pedidos IDs de seguro abertos. O agente apresenta essas informações ao usuário final ou usa parte ou toda a resposta como entrada para chamadas de API subsequentes. -
sendReminders
: o agente pode usar o campodescription
para determinar se deve chamar essa operação de API se houver necessidade de enviar lembretes ao cliente. Por exemplo, um lembrete sobre documentos pendentes que têm para reivindicações abertas.properties
Em seguida,requestBody
informe ao agente que ele deve encontrar a reclamação IDs e os documentos pendentes.properties
emresponses
especifica que um ID do lembrete e seu status devem ser apresentados. O agente apresenta essas informações ao usuário final ou usa parte ou toda a resposta como entrada para chamadas de API subsequentes.
{ "openapi": "3.0.0", "info": { "title": "Insurance Claims Automation API", "version": "1.0.0", "description": "APIs for managing insurance claims by pulling a list of open claims, identifying outstanding paperwork for each claim, and sending reminders to policy holders." }, "paths": { "/claims": { "get": { "summary": "Get a list of all open claims", "description": "Get the list of all open insurance claims. Return all the open claimIds.", "operationId": "getAllOpenClaims", "responses": { "200": { "description": "Gets the list of all open insurance claims for policy holders", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "claimId": { "type": "string", "description": "Unique ID of the claim." }, "policyHolderId": { "type": "string", "description": "Unique ID of the policy holder who has filed the claim." }, "claimStatus": { "type": "string", "description": "The status of the claim. Claim can be in Open or Closed state" } } } } } } } } } }, "/claims/{claimId}/identify-missing-documents": { "get": { "summary": "Identify missing documents for a specific claim", "description": "Get the list of pending documents that need to be uploaded by policy holder before the claim can be processed. The API takes in only one claim id and returns the list of documents that are pending to be uploaded by policy holder for that claim. This API should be called for each claim id", "operationId": "identifyMissingDocuments", "parameters": [{ "name": "claimId", "in": "path", "description": "Unique ID of the open insurance claim", "required": true, "schema": { "type": "string" } }], "responses": { "200": { "description": "List of documents that are pending to be uploaded by policy holder for insurance claim", "content": { "application/json": { "schema": { "type": "object", "properties": { "pendingDocuments": { "type": "string", "description": "The list of pending documents for the claim." } } } } } } } } }, "/send-reminders": { "post": { "summary": "API to send reminder to the customer about pending documents for open claim", "description": "Send reminder to the customer about pending documents for open claim. The API takes in only one claim id and its pending documents at a time, sends the reminder and returns the tracking details for the reminder. This API should be called for each claim id you want to send reminders for.", "operationId": "sendReminders", "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "claimId": { "type": "string", "description": "Unique ID of open claims to send reminders for." }, "pendingDocuments": { "type": "string", "description": "The list of pending documents for the claim." } }, "required": [ "claimId", "pendingDocuments" ] } } } }, "responses": { "200": { "description": "Reminders sent successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "sendReminderTrackingId": { "type": "string", "description": "Unique Id to track the status of the send reminder Call" }, "sendReminderStatus": { "type": "string", "description": "Status of send reminder notifications" } } } } } }, "400": { "description": "Bad request. One or more required fields are missing or invalid." } } } } } }
Para mais exemplos de OpenAPI esquemas, consulte exemplos de descrições de API