Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

Ejecución de agente con intervención humana

La ejecución con intervención humana (HITL, por sus siglas en inglés) permite que un agente se detenga a mitad de la ejecución y espere a que un humano revise su trabajo antes de continuar. Cuando un agente llama a una herramienta de revisión humana definida en su código, suspende la ejecución, muestra el contexto al revisor y solo se reanuda después de que este emita su decisión.

En el motor de agentes de MongoDB Atlas, HITL está integrado en la canalización de ejecución. El ciclo de vida de la canalización de ejecución (suspender, revisar y reanudar) se aplica tanto si se invoca el agente desde la API del motor de agentes de Atlas, la CLI agentengine o la interfaz de usuario del motor de agentes de Atlas. Esta guía explica las etapas del ciclo de vida de HITL y cómo enviar decisiones sobre la ejecución suspendida.

Un agente entra en revisión humana cuando llama a una herramienta de revisión humana durante su ejecución. Para habilitar la revisión humana, agregue esta herramienta al código del agente mediante la función interrupt() del adaptador LangGraph.

Tip

Para obtener más información sobre la función interrupt(), consulte la documentación de LangGraph.

A continuación, el motor de agentes de Atlas hace que la ejecución pase por el siguiente ciclo de vida:

  1. Suspender: El agente llama a una herramienta de revisión humana, que pausa la ejecución. El entorno aislado del agente guarda un punto de control del estado del agente e informa del estado suspended al Motor de Orquestación (OE).

  2. Notificar: La interfaz de usuario muestra la ejecución pausada y notifica a un revisor humano. La ejecución suspendida conserva el contexto que el agente proporcionó en el punto de interrupción.

  3. Revisión: Un revisor examina el contexto expuesto y emite una decisión, como una aprobación o un rechazo. La decisión se transmite a través de la puerta de enlace API al OE.

  4. Resumen: El OE devuelve la ejecución al entorno aislado del agente con la decisión del revisor. El resultado de la decisión depende del código del agente. En cualquier caso, el entorno aislado del agente restaura el agente desde su punto de control y vuelve a ejecutar el gráfico.

  5. Completado: Una vez que el agente finaliza cualquier trabajo restante, el OE marca la ejecución como completed. Una ejecución puede suspenderse y reanudarse varias veces antes de alcanzar un estado terminal.

El motor del agente Atlas informa el estado actual en el campo status de cada respuesta de la API de ejecución. Una ejecución que no requiere revisión humana pasa por los siguientes estados:

  • pending

  • running

  • completed or error

Cuando una ejecución se suspende para revisión humana, pasa por los siguientes estados:

  • pending

  • running

  • suspended

  • resuming

  • completed or error

Cuando el OE reanuda la ejecución, devuelve los resultados almacenados en caché de cada paso que se completó antes de la suspensión. El agente vuelve a ejecutar la misma ruta de código, pero el OE sirve los resultados almacenados en lugar de volver a ejecutar los pasos anteriores. Solo los pasos posteriores al punto de revisión se ejecutan por primera vez.

Esta garantía de repetición evita acciones duplicadas. Por ejemplo, si un agente envía un correo electrónico antes de suspenderse para su revisión, la ejecución reanudada no envía ese correo electrónico por segunda vez.

Cuando un agente se suspende, proporciona un objeto suspend_context que describe qué revisar. El agente define los campos de este objeto en el momento de la interrupción, por lo que el contenido exacto varía según el agente. Por ejemplo, un agente de aprobación de reembolsos podría mostrar un ID de reclamación y una descripción de la acción solicitada.

El objeto suspend_context también puede incluir una lista allowed_decisions que restringe las decisiones que un revisor puede enviar. Si esta lista está presente y no está vacía, el OE rechaza cualquier decisión que no se encuentre en ella.

Una vez que el agente suspende la ejecución, un revisor envía una decisión al respecto. Para enviar esta decisión, proporcione la siguiente información:

Entrada
Requerido
Descripción

Decisión

Sí

Decisión del revisor para la ejecución suspendida, como approve o reject. Los valores válidos no son un conjunto fijo. El agente los declara en la lista allowed_decisions cuando se suspende, y el OE valida su decisión con respecto a esa lista sin tener en cuenta las mayúsculas y minúsculas.

Notas del revisor

No

Contexto de formato libre que acompaña a la decisión.

La siguiente sección describe las diferentes maneras en que puede proporcionar estos datos.

Puede reanudar una ejecución suspendida desde la API de Atlas Agent Engine, la CLI agentengine o la interfaz de usuario de Atlas Agent Engine.

Importante

Para reanudar una ejecución suspendida, debe tener el rol PROJECT_OWNER.

Para reanudar una ejecución suspendida mediante la API, envíe una solicitud POST al punto final /api/v1/projects/{project_id}/executions/{execution_id}/resume?workspace_id={workspace_id} de la API. El cuerpo de la solicitud incluye la decisión del revisor, como se muestra en el cuerpo de la solicitud de reanudación. Los puntos finales de ejecución están limitados a un proyecto. Reemplace los marcadores de posición del ID del proyecto, el ID de ejecución y el ID del espacio de trabajo con sus propios valores.

Nota

El motor del agente Atlas no conserva los encabezados personalizados durante una ejecución suspendida. Reenvíe los encabezados X-Mdb-Agent-Engine-Custom- en la solicitud de reanudación; de lo contrario, el agente no los recibirá. Para obtener más información, consulte Reenvío de encabezados personalizados.

Seleccione la pestaña de su herramienta preferida para ver un ejemplo de solicitud POST que reanuda una ejecución suspendida. El encabezado X-Mdb-Agent-Engine-Custom-Authorization en cada ejemplo muestra cómo reenviar un encabezado personalizado:

curl -X POST "https://agentengine.mongodb.com/api/v1/projects/$PROJECT_ID/executions/$EXECUTION_ID/resume?workspace_id=$WORKSPACE_ID" \
-H "Authorization: Bearer $API_KEY" \
-H "X-Mdb-Agent-Engine-Custom-Authorization: my-user-id" \
-H "Content-Type: application/json" \
-d '{"decision": "approve", "reviewer_notes": "optional context"}'
import httpx
response = httpx.post(
f"https://agentengine.mongodb.com/api/v1/projects/{project_id}/executions/{execution_id}/resume",
params={"workspace_id": workspace_id},
headers={
"Authorization": f"Bearer {api_key}",
"X-Mdb-Agent-Engine-Custom-Authorization": "my-user-id",
"Content-Type": "application/json",
},
json={"decision": "approve", "reviewer_notes": "optional context"},
)

El cuerpo de la solicitud de currículum es un objeto JSON que incluye el campo decision y un campo opcional reviewer_notes. El cuerpo de la solicitud se asemeja al siguiente ejemplo:

{"decision": "approve", "reviewer_notes": "approved after verifying customer identity"}

Los valores válidos de decision provienen de la lista allowed_decisions que el agente declara al suspenderse, no de un conjunto fijo. Si la decisión que envía no está en esa lista, el OE devuelve un mensaje de error 400 que incluye los valores permitidos.

Importante

La puerta de enlace API solo acepta el cuerpo de solicitud plano que se muestra en el ejemplo anterior. Si se incluye la decisión dentro de un objeto human_review, la puerta de enlace API rechaza la solicitud devolviendo un mensaje de error 400.

Al ejecutar el comando agentengine invoke sin mensaje en una terminal interactiva, la interfaz de línea de comandos (CLI) inicia una sesión de chat en tiempo real. En este modo interactivo, la CLI muestra automáticamente una solicitud de revisión en línea cuando el agente suspende una invocación para revisión humana.

La interfaz de línea de comandos (CLI) imprime el contexto de suspensión que proporcionó el agente y una lista numerada de decisiones permitidas. La salida de la CLI se asemeja al siguiente ejemplo:

--- Execution suspended for human review ---
claim_id: CLM-4821
task_description: Approve refund of $240 for order #98765
Select a decision:
1) approve
2) reject
Select [1-2]:

Después de seleccionar una decisión, la interfaz de línea de comandos (CLI) solicita notas opcionales del revisor, como se muestra en el siguiente ejemplo:

Reviewer notes (optional): [default: ]

Luego, la CLI reanuda la ejecución e imprime Execution resumed.. La sesión permanece abierta y puede enviar un mensaje de seguimiento para recuperar la salida del agente posterior a la reanudación.

Nota

La revisión interactiva HITL solo está disponible en modo interactivo. No funciona si se utiliza el indicador --json, el operador stdin con tubería o el indicador --file.

Para obtener más información sobre el comando agentengine invoke, consulte Invocar un agente desde la CLI.

La interfaz de usuario de Atlas Agent Engine muestra las ejecuciones suspendidas en la página Pending Reviews, donde puede inspeccionar una ejecución pausada y enviar una decisión. Para reanudar una ejecución suspendida desde la interfaz de usuario, siga los siguientes pasos:

1

La página Pending Reviews muestra las ejecuciones pendientes de revisión. Si no hay ejecuciones suspendidas, la página muestra un mensaje indicando que no existen revisiones pendientes.

2

La ventana Review Request muestra detalles sobre la ejecución suspendida, incluyendo el ID de ejecución, la hora en que se envió, el mensaje original, el motivo de la suspensión y el contexto que el agente proporcionó para su revisión.

3

De la lista Decision, seleccione una decisión. Las decisiones disponibles provienen de los valores allowed_decisions que el agente proporcionó para la ejecución suspendida.

4

En el campo Reviewer Notes, agregue cualquier contexto sobre su decisión. Este paso es opcional.

5

Haz clic en Submit Decision para reanudar la ejecución con tu decisión.

Para obtener más información sobre cómo reanudar una ejecución, consulte la documentación de la API.

Para obtener más información sobre cómo invocar agentes, consulte la guía "Invocar un agente".