Overview
人間がそのループを実行する前に、人間がその作業を検討するまでエージェントすることができます。エージェントがエージェントコードで定義された人間によるレビュー ツールを呼び出すと、実行が一時停止され、レビューアにコンテキストが表示され、レビューアが決定を送信した後にのみ再開されます。
MongoDB Atlas Agent Engine では、 実行パイプラインに HITL が組み込まれています。一時停止、レビュー、再開の実行パイプラインライフサイクルは、 Atlas Agent Engine API、 agentengine CLI 、または Atlas Agent Engine UIからエージェントを呼び出すかにかかわらず適用されます。このガイドでは、HITL ライフサイクルの段階と、中断された実行に関する決定を送信する方法について説明します。
ライフサイクルを一時停止、確認、再開する
エージェントは、実行中に人間によるレビュー ツールを呼び出すと、人間によるレビューを入力します。人間によるレビューを有効にするには、LingGraph アダプターの interrupt() 関数を使用して、このツールをエージェントコードに追加します。
Tip
interrupt()関数の詳細については、 LingGraph のドキュメントを参照してください。
その後、Atlas Agent Engine は実行を次のライフサイクルに移動します。
一時停止:エージェントが人間によるレビュー ツールを呼び出し、実行を一時停止します。エージェントサンドボックスはエージェントの状態のチェックポイントを保存し、
suspendedステータスをオーケストレーション エンジン(UE)に報告します。通知: UIは一時停止された実行を表示し、人間のレプリカに通知します。中断された実行には、 割り込み点でエージェントが提供したコンテキストが含まれます。
レビュー: レビューアは表示されたコンテキストを検査し、承認や拒否などの決定を送信します。決定はAPI Gateway を介して OA に送信されます。
再開: OA は、レプリカの決定に従ってエージェントサンドボックスに実行を返します。決定の結果は、エージェントのコードによって異なります。どちらの場合も、エージェントサンドボックスはエージェントをチェックポイントから復元し、グラフを再実行します。
完了:エージェントが残りの作業を完了すると、UE は実行を
completedとしてマークします。実行は、ターミナル状態に達する前に複数回一時停止および再開することができます。
実行ステータスのライフサイクル
Atlas Agent Engine は、各実行APIレスポンスの statusフィールドに現在のステータスを報告します。人間によるレビューを必要としない実行は、次のステータスを通過します。
pendingrunningcompletedorerror
人間のレビューのために実行が一時停止されると、次のステータスを通過します。
pendingrunningsuspendedresumingcompletedorerror
再生保証
OA が実行を再開すると、一時停止の前に完了したすべてのステップのキャッシュされた結果が返されます。エージェントは同じコードパスを再実行しますが、OA は前の手順を再度実行中のではなく、保存された結果を提供します。レビュー点の後のステップのみが初めて実行されます。
このリプレイ保証により、重複するアクションを防止できます。例、エージェントがレビューのために一時停止する前にメールを送信した場合、再開された実行によってそのメールが2 回目に送信されることはありません。
一時停止コンテキストを確認する
エージェントが一時停止すると、確認対象を記述する suspend_contextオブジェクトが提供されます。エージェントは中断点でこのオブジェクトのフィールドを定義するため、正確な内容はエージェントによって異なります。例、返金承認エージェントは、クレームIDと要求されたアクションの説明を表示できます。
suspend_contextオブジェクトには、レプリカが送信できる決定を制限する allowed_decisions リストも含まれる場合があります。このリストが存在し、空でない場合、OE はリストにない決定を拒否します。
レビューの決定
エージェントが一時停止すると、レプリカは一時停止された実行に関する決定を送信します。この決定を送信するには、次の入力を提供してください。
入力 | 必須 | 説明 |
|---|---|---|
決定 | はい | 一時停止された実行の確認応答( |
レプリカ ノート | No | 決定に付属する無料形式のコンテキスト。 |
一時停止された実行の再開
中断された実行は、 Atlas Agent API、agentengine CLI、または Atlas Agent Engine UIから再開できます。
重要
一時停止した実行を再開するには、PROJECT_OWNER ロールが必要です。
APIの使用
APIを使用して一時停止した実行を再開するには、POST /api/v1/projects/{project_id}/executions/{execution_id}/resume?workspace_id={workspace_id}APIエンドポイントに リクエストを送信します。リクエスト本文には、「再開リクエスト本文」に示されているように、レビューの決定が含まれます。実行エンドポイントのスコープはプロジェクトに限定されます。プロジェクトID、 実行ID、 ワークスペースIDのプレースホルダーを独自の値に置き換えます。
注意
Atlas Agent Engine は、中断された実行全体でカスタム ヘッダーを保持しません。再開リクエストでX-Mdb-Agent-Engine-Custom- ヘッダーを再送信します。そうでない場合、エージェントはそれらを受信しません。詳細については、「 カスタム ヘッダーの転送 」を参照してください。
お好みのツールのタブを選択して、中断された実行を再開する POSTリクエストの例を確認してください。各例の X-Mdb-Agent-Engine-Custom-Authorization ヘッダーは、カスタム ヘッダーを再送信する方法を示しています。
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"}, )
再開リクエスト本文
再開リクエストの本文は、decisionフィールドと任意の reviewer_notesフィールドを含むJSONオブジェクトです。リクエスト本文は、次の例のようになります。
{"decision": "approve", "reviewer_notes": "approved after verifying customer identity"}
有効な decision 値は、固定セットではなく、エージェントが一時停止するときに宣言する allowed_decisions リストから取得されます。送信した決定がそのリストにない場合、OE は許可された値を含む 400 エラー メッセージを返します。
重要
API Gateway は、前述の例に示す平面リクエスト本文のみを受け入れます。 human_reviewオブジェクト内に決定をネストすると、 API Gateway は 400 エラー メッセージを返してリクエストを拒否します。
CLI の使用
インタラクティブターミナルでメッセージなしで agentengine invoke コマンドを実行すると、CLI によってストリーミングチャット セッションが開始されます。この 対話モードでは、エージェントが人間によるレビューの呼び出しを一時停止するときに、CLI はインライン レビューのプロンプトを自動的に表示します。
CLI は、エージェントが提供した一時停止コンテキストと、許可された決定の番号付きリストを出力します。 CLI 出力は、次の例のようになります。
--- 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]:
決定を選択すると、次の例に示すように、CLI によって任意のレビューア ノートの入力を求められます。
Reviewer notes (optional): [default: ]
その後、CLI は実行を再開し、Execution resumed. セッションは開いたままなので、エージェントの再開後の出力を取得するために追跡メッセージを送信できます。
注意
インタラクティブ HITL レビューは、 インタラクティブモードでのみ利用可能です。 --json フラグ、パイプラインされた stdin 演算子、または --file フラグを使用しても機能しません。
コマンドの詳細については、「agentengine invoke CLI からエージェントを呼び出す 」を参照してください。
UI の使用
Atlas Agent Engine UI には、Pending Reviews ページに一時停止された実行が表示されます。ここでは、一時停止された実行を検査して決定を送信できます。 UIから中断された実行を再開するには、次の手順を実行します。
詳細
実行の再開の詳細については、 APIドキュメント を参照してください。
エージェントの呼び出しの詳細については、「 エージェントの呼び出し 」ガイドを参照してください。