Saltar a contenido

Aprobar las acciones de un agente de IA

Esta guía explica cómo hacer que un escaneo agéntico le pida su aprobación antes de realizar una acción de riesgo, y cómo responder desde la página del escaneo.

Un agente de IA decide qué probar, y algunas de sus acciones alcanzan a personas reales o modifican datos reales. Con Approval of actions, usted elige si el agente le pregunta primero. Una solicitud espera en la pestaña Approvals del escaneo, y usted la aprueba, la rechaza o responde con sus propias instrucciones.

El vídeo muestra el ajuste en el formulario del escaneo y después responde a tres solicitudes.

Approval of actions es un ajuste del paso Guardrails de los perfiles de escaneo agénticos: los Deep Agentic Scans, el Mobile Shielding Scan y los Single Vulnerability Assessments. Es opcional. De forma predeterminada, el agente ejecuta por sí solo las acciones de riesgo.

Vaya a report.ostorlab.co

1. Elegir qué hace el agente con una acción de riesgo

Haga clic en New Scan y complete el escaneo como de costumbre: el activo y un perfil de escaneo agéntico. En el paso Guardrails, en Approval of actions, elija una de las tres opciones.

Approval of actions

Opción Qué ocurre
Run without asking El agente ejecuta por sí solo las acciones de riesgo. No se pregunta a nadie. Es la opción predeterminada.
Ask me, block if no answer El agente espera su respuesta. Si nadie responde, la acción no se ejecuta.
Ask me, run if no answer El agente espera su respuesta. Si nadie responde, continúa según su propio criterio.

Complete los demás pasos y haga clic en Submit. La opción se aplica a todo el escaneo, y Dig Deeper la lleva a la evaluación de seguimiento.

2. Saber cuándo pregunta el agente

El agente decide cuándo preguntar. El ajuste no pausa cada llamada a una herramienta. El agente pregunta:

  • antes de una acción que alcanza a personas reales, como enviar un SMS o publicar contenido,
  • antes de una acción destructiva o que no se puede deshacer,
  • antes de una acción que sale del alcance del escaneo,
  • cuando está bloqueado y no puede elegir con seguridad, por ejemplo cuando no puede saber si un objetivo está dentro del alcance, o necesita una credencial o un código que solo usted tiene.

Mientras una solicitud espera, las demás pruebas del escaneo siguen ejecutándose. Solo se bloquea la acción que espera su decisión.

3. Abrir la pestaña Approvals

Abra el escaneo. Cuando su modo de aprobación no es Run without asking, el menú de resultados muestra una pestaña Approvals debajo de Risks. Un punto naranja y un contador aparecen en la pestaña mientras un agente le espera. La pestaña lista primero las solicitudes que esperan su respuesta.

La pestaña Approvals

Ostorlab también le avisa cuando llega una solicitud. Envía un correo con un enlace a esta pestaña, y añade una notificación, a los administradores y usuarios de su organización que pueden ver el escaneo. Los lectores no reciben aviso. A una persona se le avisa de un escaneo como máximo una vez cada 10 minutos.

4. Leer la solicitud

Cada tarjeta de Waiting for your answer es un mensaje que escribió el agente: qué quiere hacer y por qué. Léalo antes de responder. Un mensaje largo se acorta: haga clic en Show details para leerlo completo.

5. Responder a la solicitud

Cada tarjeta ofrece tres formas de responder.

  • Approve: el agente continúa con lo que describió en su mensaje, y solo con eso. Una solicitud posterior necesita una nueva aprobación.
  • Deny: el agente no continúa, y no reintenta ni evita el rechazo. Para dar un motivo, haga clic primero en Add a message: Deny envía su mensaje como motivo.
  • Add a message y después Send reply: su mensaje llega al agente como respuesta. Para una pregunta, es la respuesta. Para una acción, es una orientación y no una aprobación: el agente reconsidera, y vuelve a preguntar si todavía quiere continuar.

Responder con un mensaje

Mientras escribe un mensaje, Approve está desactivado: una aprobación no lleva mensaje.

Para aprobar de una vez todas las solicitudes en espera, haga clic en Approve all en la parte superior de la pestaña y confirme. El agente continúa entonces con todo lo que pidió, sin volver a preguntar, y esta acción no se puede deshacer.

Approve all

6. Consultar el historial

Las solicitudes respondidas pasan a History, con la respuesta que dio.

Historial

Estado Significado
Approved Aprobó la solicitud.
Denied Rechazó la solicitud. Su motivo, si lo hay, aparece como Reason.
Replied Respondió con un mensaje, que aparece como Reply.
Timed out La solicitud agotó el tiempo de espera y fue cancelada; aparece en History.

Una solicitud todavía pendiente cuando termina el escaneo o el agente deja de comprobar si hay una respuesta aparece en No longer waiting, con el mensaje "The agent is no longer waiting". Ya no se puede responder, porque la respuesta no llegaría al agente. Es distinta de una solicitud cancelada, que aparece en History como Timed out.

El agente ya no espera

Qué ocurre cuando nadie responde

De forma predeterminada, el agente espera hasta 24 horas la respuesta a una solicitud. Después, el modo de aprobación decide:

  • Ask me, block if no answer: la acción no se ejecuta, y el agente continúa con sus demás pruebas.
  • Ask me, run if no answer: el agente continúa con la acción según su propio criterio.

Una pregunta sobre si un objetivo está dentro del alcance es la excepción. Si nadie la responde, el agente considera el objetivo fuera del alcance y lo deja en paz, en ambos modos.

Un rechazo o una respuesta nunca permite que la acción se ejecute, en ambos modos.

Quién puede responder

Los usuarios con el rol admin o user pueden responder. Los lectores pueden abrir la pestaña Approvals y leer las solicitudes, pero no pueden responderlas.

Usar la API

Las mutaciones de creación de escaneos de la API GraphQL aceptan un argumento approvalMode, y un escaneo lo devuelve en su campo approvalMode:

approvalMode: FAIL_CLOSED
  • AUTO_APPROVE: Run without asking.
  • FAIL_CLOSED: Ask me, block if no answer.
  • FAIL_OPEN: Ask me, run if no answer.

Liste y responda las solicitudes de un escaneo con un usuario que haya iniciado sesión. Las claves de API no pueden responderlas.

query {
  humanInputRequests(scanId: 42, status: PENDING) {
    id
    message
    status
    createdAt
  }
}
mutation {
  answerHumanInputRequest(
    humanInputRequestId: 7
    decision: DENIED
    responseText: "Do not touch /admin. It is out of scope."
  ) {
    humanInputRequest {
      id
      status
      responseText
    }
  }
}
  • status es PENDING, APPROVED, DENIED, REPLIED o CANCELLED. CANCELLED aparece en History como Timed out. Una solicitud PENDING cuyo agente ya no espera aparece en No longer waiting.
  • decision es APPROVED, DENIED o REPLIED. REPLIED necesita un responseText, DENIED admite un responseText opcional como motivo, y APPROVED no admite ninguno.

Siguientes pasos