Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Menu Docs

Execução do agente humano-in-the-loop

A execução do ser humano no loop (HITL) permite que um agente faça uma pausa no meio da execução e espere que um ser humano revise seu trabalho antes de continuar. Quando um agente chama uma ferramenta de revisão humana definida no código do agente , ele suspende a execução, apresenta o contexto para um revisor e retoma somente após o revisor enviar uma decisão.

No MongoDB Atlas Agent Engine, o HITL está embutido no pipeline de execução. O ciclo de vida do pipeline de suspensão, revisão e retomada da execução se aplica se você invoca o agente a partir da API do Atlas Agent Engine, da CLI agentengine ou da interface do usuário do Atlas Agent Engine. Este guia explica as etapas do ciclo de vida do HITL e como enviar decisões sobre a execução suspensa.

Um agente entra na revisão humana quando chama uma ferramenta de revisão humana durante uma execução. Para habilitar a revisão humana, adicione essa ferramenta ao código do agente usando a função interrupt() do adaptador LangGraph.

Dica

Para saber mais sobre a função interrupt(), consulte a documentação LangGraph.

Em seguida, o Mecanismo do Agente do Atlas move a execução através do seguinte ciclo de vida:

  1. Suspender: o agente chama uma ferramenta de revisão por humanos, que pausa a execução. A sandbox do agente salva um checkpoint do estado do agente e relata o status suspended ao Mecanismo de Orquestração (OE).

  2. Notificar: a interface do usuário apresenta a execução pausada e notifica um revisor humano. A execução suspensa carrega o contexto que o agente forneceu no ponto de interrupção.

  3. Revise: um revisor inspeciona o contexto exibido e envia uma decisão, como uma aprovação ou uma rejeitação. A decisão passa pelo API Gateway até o OE.

  4. Retomar: a OE envia a execução de volta para a sandbox do agente com a decisão do revisor. O resultado da decisão depende do código do agente . De qualquer forma, a sandbox do agente restaura o agente de seu checkpoint e executa novamente o gráfico.

  5. Concluído: depois que o agente termina qualquer trabalho restante, o OE marca a execução como completed. Uma execução pode ser suspensa e retomada várias vezes antes de atingir um status terminal.

O Atlas Agent Engine relata o status atual no campo status de cada resposta da API de execução. Uma execução que não exige que a revisão humana passe pelos seguintes status:

  • pending

  • running

  • completed ou error

Quando uma execução é suspensa para revisão humana, ela passa pelos seguintes status:

  • pending

  • running

  • suspended

  • resuming

  • completed ou error

Quando o OE retoma uma execução, ele retorna resultados em cache para cada etapa concluída antes da suspensão. O agente executa novamente o mesmo caminho de código, mas o OE atende aos resultados armazenados em vez de executar as etapas anteriores novamente. Somente as etapas que ocorrem após o ponto de revisão são executadas pela primeira vez.

Essa garantia de repetição evita ações duplicadas. Por exemplo, se um agente enviar um e-mail antes de suspender para revisão, a execução retomada não enviará esse e-mail uma segunda vez.

Quando um agente suspende, ele fornece um objeto suspend_context que descreve o que deve ser analisado. O agente define os campos nesse objeto no ponto de interrupção , portanto o conteúdo exato varia de acordo com o agente. Por exemplo, um agente de aprovação de reembolsos pode exibir um ID de reivindicação e uma descrição da ação solicitada .

O objeto suspend_context também pode incluir uma lista allowed_decisions que restringe quais decisões um revisor pode enviar. Se esta lista estiver presente e não vazia, a OE rejeita qualquer decisão que não esteja na lista.

Após a suspensão do agente , um revisor envia uma decisão sobre a execução suspensa. Para enviar esta decisão, forneça as seguintes entradas:

Entrada
Obrigatório
Descrição

Decisão

Sim

Decisão do revisor para a execução suspensa, como approve ou reject. Os valores válidos não são um conjunto fixo. O agente os declara na lista allowed_decisions quando suspende, e o OE valida sua decisão nessa lista sem considerar o caso.

Notas do revisor

No

Contexto de forma livre que acompanha a decisão.

A seção a seguir descreve as diferentes maneiras de fornecer essas entradas.

Você pode retomar uma execução suspensa a partir da API do Atlas Agent Engine, da CLI agentengine ou da interface do usuário do Atlas Agent Engine.

Importante

Para retomar uma execução suspensa, você deve ter a função PROJECT_OWNER.

Para retomar uma execução suspensa usando a API, envie uma solicitação POST para o ponto de extremidade da API /api/v1/projects/{project_id}/executions/{execution_id}/resume?workspace_id={workspace_id}. O corpo da solicitação inclui a decisão do revisor, conforme mostrado em Retomar corpo da solicitação. Os endpoints de execução têm como escopo um projeto. Substitua os espaços reservados do ID do projeto, do ID de execução e do ID do workspace pelos seus próprios valores.

Observação

O Atlas Agent Engine não mantém cabeçalhos personalizados em uma execução suspensa. Reenvie quaisquer cabeçalhos X-Mdb-Agent-Engine-Custom- na solicitação de retomada ou o agente não os receberá. Para saber mais, consulte Encaminhar cabeçalhos personalizados.

Selecione a guia da ferramenta de sua preferência para ver um exemplo de solicitação POST que retoma uma execução suspensa. O cabeçalho X-Mdb-Agent-Engine-Custom-Authorization em cada exemplo mostra como reenviar um cabeçalho 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"},
)

O corpo da solicitação de retomada é um objeto JSON que inclui o campo decision e um campo opcional reviewer_notes. O corpo da solicitação é semelhante ao exemplo a seguir :

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

Os valores decision válidos vêm da lista allowed_decisions que o agente declara quando suspende, não de um conjunto fixo. Se a decisão enviada não estiver nessa lista, o OE retornará uma mensagem de erro 400 que inclui os valores permitidos.

Importante

O API Gateway aceita somente o corpo da solicitação simples mostrado no exemplo anterior. Se você aninhar a decisão dentro de um objetohuman_review , o API Gateway rejeitará a solicitação retornando uma mensagem de erro 400.

Quando você executa o comando agentengine invoke sem uma mensagem em um terminal interativo, a CLI inicia uma sessão de chat de streaming. Nesse modo interativo, a CLI apresenta automaticamente um prompt de revisão in-line quando o agente suspende uma invocação para revisão humana.

A CLI imprime o contexto de suspensão fornecido pelo agente e uma lista numerada de decisões permitidas. A saída CLI é semelhante ao exemplo a seguir:

--- 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]:

Depois de selecionar uma decisão, a CLI solicita notas opcionais do revisor, conforme mostrado no exemplo a seguir:

Reviewer notes (optional): [default: ]

Em seguida, a CLI retoma a execução e imprime Execution resumed. A sessão permanece aberta e você pode enviar uma mensagem de acompanhamento para recuperar a saída pós-retomada do agente.

Observação

A revisão interativa HITL está disponível apenas no modo interativo . Ele não funciona se você usar o sinalizador --json, o operador piped stdin ou o sinalizador --file.

Para saber mais sobre o comando agentengine invoke, consulte Invocar um agente a partir da CLI.

A interface do usuário do Atlas Agent Engine exibe execuções suspensas na página Pending Reviews, onde você pode inspecionar uma execução pausada e enviar uma decisão. Para retomar uma execução suspensa da UI, complete as seguintes etapas:

1

A página Pending Reviews lista as execuções que estão aguardando revisão. Se nenhuma execução for suspensa, a página mostrará uma mensagem informando que não existem revisões pendentes.

2

A janela Review Request exibe detalhes sobre a execução suspensa, incluindo a ID de execução, a hora em que foi enviada, a mensagem original, o motivo da suspensão e o contexto que o agente forneceu para revisão.

3

Na lista Decision, selecione uma decisão. As decisões disponíveis vêm dos valores allowed_decisions que o agente forneceu para a execução suspensa.

4

No campoReviewer Notes , adicione qualquer contexto sobre sua decisão. Esta etapa é opcional.

5

Clique em Submit Decision para retomar a execução com sua decisão.

Para saber mais sobre como retomar uma execução, consulte a documentação da API.

Para saber mais sobre como invocar agentes, consulte o guia Invoke an Agent .