複数のクライアント、ワークフローレイヤー、キューに入った操作が同じ障害を再試行の許可と解釈すると、再接続後にエージェントの再試行が増幅します。
ホームエージェントは、1つのプラン中にNAS API、スマートホームブリッジ、ブラウザーツール、メッセージキューを呼び出すことがあります。Wi-Fiやルーターが復旧すると、クライアントライブラリ、ツールラッパー、ワークフローエンジン、ユーザーインターフェースがそれぞれ再試行を開始することがあります。完了状態の不確実性、同期したタイマー、バッファーされたイベント、欠落した冪等性キーにより、1つの中断されたステップが、見かけ上は有効な複数の試行へと変わります。
独立した再試行レイヤーが1つの失敗した操作を増幅する
エージェントのリクエストは、ゲートウェイ、プランナー、ツールアダプター、HTTPライブラリ、デバイスサービスを通過することがあります。3つのレイヤーがそれぞれ3回の試行を許可すると、再試行の予算は加算ではなく乗算で組み合わされるため、下流の操作には3回をはるかに超える呼び出しが届く可能性があります。
レイヤー化された再試行の増幅では、すでに苦境にある依存先へ再試行が負荷を加える仕組みと、指数バックオフ、ジッター、タイムアウト、単一の再試行ポイントによって増幅を抑える方法を説明しています。この指針は、内部に隠れたクライアントライブラリの再試行を含むエージェントスタックにも直接当てはまります。
再接続によってトランスポートエラーが解消されても、保留中のタイマーやキューの配信まで解消されるとは限りません。各レイヤーは他のレイヤーの状態を十分に把握しないまま動き出すため、同様のポリシーを個別に設定するよりも、中央で管理するリクエストIDと、1つの主体が管理する再試行予算の方が信頼性に優れています。
中断された接続によって、ツールが成功したかどうかが分からなくなる
サーバーがアクションを完了した後、エージェントが確認を受け取る前にレスポンスが失われることがあります。読み取りの再試行は通常無害ですが、ドアの解錠、通知、ファイル移動、購入に類するアクションの再試行は、実際の副作用を繰り返す可能性があります。
冪等性リクエスト識別子では、呼び出し元が提供する冪等性識別子を使用します。これによりサービスは重複したリクエストを認識し、アクションを2回実行する代わりに元の結果を返せます。これは、安全な復旧と、同じペイロードを再送信するだけの処理を区別します。
ワークフローは、ネットワークの切断をまたいで、操作ID、対象、引数、試行状態、確認済みの結果を永続化する必要があります。再接続後に新しいツール呼び出しIDを生成すると、重複排除が機能しません。下流のサービスには継続中の操作ではなく、新しい操作として認識されるためです。
同期した復旧が再試行ストームになることがある
多くのデバイスが同じネットワーク境界の復旧を検知し、数秒以内に再接続します。ランダム化された遅延とアドミッション制御がなければ、キューに入ったエージェントのリクエスト、サブスクリプション、ヘルスチェックが、サービスが状態を再構築しているまさにそのタイミングで負荷急増を引き起こします。
復旧時の負荷遮断の章では、再試行、リソース枯渇、復旧トラフィックが互いに作用して連鎖障害を引き起こす仕組みを説明しています。復旧した依存先がバックログをすべて直ちに受け入れられると想定するのではなく、処理量を制限し、過剰な負荷を遮断し、過負荷時の動作をテストすることを推奨しています。
障害の境界は、操作の安全性の代わりにバックオフを使うことです。ジッターは呼び出しを分散させますが、重複した副作用を防ぐことはできません。また、冪等性によって、古くなったアクションが望ましいものになるわけでもありません。再生する前に、期限切れの意図、現在の認可、対象の状態を再検証する必要があります。
再接続後の再生チャレンジを実行する
読み取り、冪等性のある書き込み、そして1つの再実行不可能なアクションを含む、10ステップのエージェントワークフローから始めます。送信前、送信後、実行中、完了後で確認前のそれぞれのタイミングでネットワークを切断し、その後、複数のクライアントを同時に再接続します。この区別は、後の家庭内テストでも確認できる状態にしておきます。
再実行不可能なエージェントアクションで示されている副作用の境界を適用します。すべてのレイヤーでの試行回数、一意の操作ID、重複した効果、キューの経過時間、バックオフの分布、拒否された古いアクション、サービスが通常の負荷に戻るまでの時間を数えます。自動化が後続処理を行う前に、中間結果を検査できる状態にしておく必要があります。
1つの論理操作がコミット済みの副作用を最大1つだけ生成し、再試行処理がグローバルな予算内に収まる場合にのみ合格とします。エージェントが以前の結果を判断できない場合は、別の試行が安全だと推測せず、照合または人間による承認を必須にします。
テック&AIハブ
もっと読む

ローカル推論リクエストの開始時にGPUの消費電力が急増するのはなぜですか?
推論開始時に、GPUクロックの上昇、モデルのプレフィル、カーネルの初期化、メモリの割り当て、サンプリング間隔によって電力スパイクがどのように発生するかをご覧ください。

複数のインデックスセグメントを同時にクエリすると、ベクトル検索のランキングが変わるのはなぜですか?
セグメントごとの候補数制限、近似グラフ、スコアのキャリブレーション、更新、統合によって、プライベートなベクトル検索のランキングがどのように変わるかを学びます。

メタデータを編集すると写真の重複排除グループが分割されるのはなぜですか?
完全一致ハッシュ、知覚ハッシュ、EXIFの向き、タイムスタンプ、しきい値、パイプラインのバージョンによって、プライベートな写真の重複グループが分割される仕組みをご覧ください。

