AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

人間が実行するエージェントの実行

人間がそのループを実行する前に、人間がその作業を検討するまでエージェントすることができます。エージェントがエージェントコードで定義された人間によるレビュー ツールを呼び出すと、実行が一時停止され、レビューアにコンテキストが表示され、レビューアが決定を送信した後にのみ再開されます。

MongoDB Atlas Agent Engine では、 実行パイプラインに HITL が組み込まれています。一時停止、レビュー、再開の実行パイプラインライフサイクルは、 Atlas Agent Engine API、 agentengine CLI 、または Atlas Agent Engine UIからエージェントを呼び出すかにかかわらず適用されます。このガイドでは、HITL ライフサイクルの段階と、中断された実行に関する決定を送信する方法について説明します。

エージェントは、実行中に人間によるレビュー ツールを呼び出すと、人間によるレビューを入力します。人間によるレビューを有効にするには、LingGraph アダプターの interrupt() 関数を使用して、このツールをエージェントコードに追加します。

Tip

interrupt()関数の詳細については、 LingGraph のドキュメントを参照してください。

その後、Atlas Agent Engine は実行を次のライフサイクルに移動します。

  1. 一時停止:エージェントが人間によるレビュー ツールを呼び出し、実行を一時停止します。エージェントサンドボックスはエージェントの状態のチェックポイントを保存し、suspended ステータスをオーケストレーション エンジン(UE)に報告します。

  2. 通知: UIは一時停止された実行を表示し、人間のレプリカに通知します。中断された実行には、 割り込み点でエージェントが提供したコンテキストが含まれます。

  3. レビュー: レビューアは表示されたコンテキストを検査し、承認や拒否などの決定を送信します。決定はAPI Gateway を介して OA に送信されます。

  4. 再開: OA は、レプリカの決定に従ってエージェントサンドボックスに実行を返します。決定の結果は、エージェントのコードによって異なります。どちらの場合も、エージェントサンドボックスはエージェントをチェックポイントから復元し、グラフを再実行します。

  5. 完了:エージェントが残りの作業を完了すると、UE は実行をcompleted としてマークします。実行は、ターミナル状態に達する前に複数回一時停止および再開することができます。

Atlas Agent Engine は、各実行APIレスポンスの statusフィールドに現在のステータスを報告します。人間によるレビューを必要としない実行は、次のステータスを通過します。

  • pending

  • running

  • completed or error

人間のレビューのために実行が一時停止されると、次のステータスを通過します。

  • pending

  • running

  • suspended

  • resuming

  • completed or error

OA が実行を再開すると、一時停止の前に完了したすべてのステップのキャッシュされた結果が返されます。エージェントは同じコードパスを再実行しますが、OA は前の手順を再度実行中のではなく、保存された結果を提供します。レビュー点の後のステップのみが初めて実行されます。

このリプレイ保証により、重複するアクションを防止できます。例、エージェントがレビューのために一時停止する前にメールを送信した場合、再開された実行によってそのメールが2 回目に送信されることはありません。

エージェントが一時停止すると、確認対象を記述する suspend_contextオブジェクトが提供されます。エージェントは中断点でこのオブジェクトのフィールドを定義するため、正確な内容はエージェントによって異なります。例、返金承認エージェントは、クレームIDと要求されたアクションの説明を表示できます。

suspend_contextオブジェクトには、レプリカが送信できる決定を制限する allowed_decisions リストも含まれる場合があります。このリストが存在し、空でない場合、OE はリストにない決定を拒否します。

エージェントが一時停止すると、レプリカは一時停止された実行に関する決定を送信します。この決定を送信するには、次の入力を提供してください。

入力
必須
説明

決定

はい

一時停止された実行の確認応答(approve や reject など)。有効な値は固定セットではありません。エージェントは一時停止時に allowed_decisions リストでそれらを宣言し、OE は大文字と小文字を区別せずにそのリストに対して決定を検証します。

レプリカ ノート

No

決定に付属する無料形式のコンテキスト。

次のセクションでは、これらを入力するさまざまな方法について説明します。

中断された実行は、 Atlas Agent API、agentengine CLI、または Atlas Agent Engine UIから再開できます。

重要

一時停止した実行を再開するには、PROJECT_OWNER ロールが必要です。

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 エラー メッセージを返してリクエストを拒否します。

インタラクティブターミナルでメッセージなしで 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 からエージェントを呼び出す 」を参照してください。

Atlas Agent Engine UI には、Pending Reviews ページに一時停止された実行が表示されます。ここでは、一時停止された実行を検査して決定を送信できます。 UIから中断された実行を再開するには、次の手順を実行します。

1

Pending Reviews ページには、レビューを待機している実行が一覧表示されます。実行が中断されていない場合、 ページには保留中のレビューが存在しないというメッセージが表示されます。

2

Review Requestウィンドウには、実行ID、実行が送信された時間、元のメッセージ、一時停止の理由、エージェントが確認用に提供したコンテキストなど、中断された実行に関する詳細が表示されます。

3

Decision リストから決定を選択します。利用可能な決定は、一時停止された実行に対してエージェントが提供した allowed_decisions 値に基づきます。

4

Reviewer Notesフィールドに、決定に関するコンテキストを追加します。この手順は任意です。

5

ユーザーの決定に従って実行を再開するには、Submit Decision をクリックします。

実行の再開の詳細については、 APIドキュメント を参照してください。

エージェントの呼び出しの詳細については、「 エージェントの呼び出し 」ガイドを参照してください。