No English page yet. Showing the Japanese source.
Saga/Compensating Action × Agent
記事状態: 公開 · 最終確認: 2026-10-05
要点
Agentの複数副作用を「失敗したら逆操作する」だけでSagaとみなしません。各stepを事前にcompensable/pivot/retriableへ分類し、forward resultとdownstream operation IDをdurableに記録します。UNKNOWNは照会/reconciliationしてから回復方向を決め、compensation自体もidempotent・再試行可能・監査可能にします。補償はACID rollbackでも完全な原状回復保証でもありません。
現在の判断
Agentの複数副作用を「失敗したら逆操作する」だけでSagaとみなしません。各stepを事前にcompensable/pivot/retriableへ分類し、forward resultとdownstream operation IDをdurableに記録します。UNKNOWNは照会/reconciliationしてから回復方向を決め、compensation自体もidempotent・再試行可能・監査可能にします。補償はACID rollbackでも完全な原状回復保証でもありません。
どこまで当てはまるか
Saga/Compensating Action × Agent
詳しく理解する
要点と前提
Agentが複数の外部システムへ副作用を出す処理では、途中失敗時に「逆のtoolを呼ぶ」だけでは安全なrollbackになりません。既にcommitされた外部操作はACID transactionのように自動取消されず、回復はdomain-specificなcompensating actionまたはforward recoveryとして設計します。
STEP CLASSIFICATION
実行前に各stepを COMPENSABLE、PIVOT、RETRIABLE/FORWARD_ONLY に分類します。失敗後にLLMが即興で分類・取消方法を決める設計は避けます。pivotを越えた後は、原則として後続をretriable/forward recoveryとして設計します。
DURABLE JOURNAL
workflow ID、step ID、operation identity、request fingerprint、precondition、downstream operation ID、observed outcome、compensation definition/version、authorization/approval context、timestampをdurableに記録します。次stepへ進む前にreadback可能な状態を作ります。
COMPENSATION IS A BUSINESS ACTION
補償は元操作の数学的な逆関数ではありません。返金手数料、取消不能な通知、外部settlement、法的記録、物理作業などでは完全な原状回復が不可能です。補償後のbusiness invariantと残留影響を明示します。
COMPENSATION CAN FAIL
compensationにもtimeout、retry、idempotency、precondition、authorization、dead-letter/manual escalationが必要です。補償の進捗をdurableに記録し、同じ補償が再実行されても追加副作用を起こさない境界を設計します。
REGISTRATION ORDER
forward actionが「副作用を起こした後にtimeout/failureを返す」可能性がある場合、compensation intentをforward callより後だけに記録するとcrash windowができます。一方、forward actionが実行されなかった場合にも補償が誤作用しないよう、compensationはdownstream stateを照合して安全にno-opできる設計にします。
CONCURRENCY AND ISOLATION
SagaはACID isolationを自動提供しません。並行workflowが中間状態を観測・変更できるため、resource version/ETag、reservation、semantic lock、workflow-specific state等を利用し、stale compensationが新しい正当な変更を消さないようにします。
AGENT POLICY BOUNDARY
LLMは、事前定義された回復policyの選択や人間へのescalation理由生成には利用できます。しかし、refund、delete、cancel、permission変更等の高影響compensationを、失敗時に未承認で新規生成させません。compensation実行時も現在のprincipal/tenant/target/policyを独立検証します。
OPERATING TEST
forward call前、remote commit後response前、response後journal前、compensation途中、compensation commit後response前、pivot後、並行saga、credential失効、stale versionでfault injectionします。workflow成功率だけでなく、duplicate forward/compensation、UNKNOWN滞留、reconciliation成功、manual escalation、business invariant restorationを測定します。
まだ確認できていないこと
- EA-242-UNKNOWN-01
timeout、disconnect、worker crashでは、remote side effectがcommit済みでもresponseだけ失われる場合があります。
UNKNOWNをFAILEDと同一視せず、status/query endpointやdownstream operation IDでreconcileしてから、forward retryかcompensationかを決定します。 - EA-242-UNKNOWN-02
対象workflow engine、tool graph、downstream idempotency/status API、compensation定義、pivot rule、authorization/approval lifetime、workflow versioning、outbox/inbox、retention、concurrency policy、irreversible-action policy、human escalation SLAは未確認です。
根拠資料
- 研究資料研究資料
E1 Microsoft Azure Architecture Center, Saga distributed transactions pattern, accessed 2026-10-05,
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 研究資料研究資料
E2 Microsoft Azure Architecture Center, Compensating Transaction pattern, accessed 2026-10-05,
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 研究資料研究資料
E3 AWS Prescriptive Guidance, Saga orchestration pattern, accessed 2026-10-05,
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 研究資料研究資料
E4 AWS Prescriptive Guidance, Saga patterns, accessed 2026-10-05,
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 研究資料研究資料
E5 Chris Richardson, microservices.io Pattern: Saga, accessed 2026-10-05,
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 研究資料研究資料
E6 Temporal Community, Saga compensation failure/retry discussion, 2021, accessed 2026-10-05,
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 研究資料研究資料
E7 Temporal Community, saga compensation registration ordering, 2026-06-10, accessed 2026-10-05,
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
更新履歴
EA-242-FIRST-20261005: canonical audit/publication binding
出典ID・検証情報・機械可読データ
根拠の種類と情報の鮮度は、ラベルとアイコンで確認できます。
- 記事ID
- EA-242
- 最終確認日
- 2026-10-05
- 提供元・モデル・プラン・利用環境
- —
- 対象地域
- —
元資料の全文と収録照合記録
要点と前提
Agentが複数の外部システムへ副作用を出す処理では、途中失敗時に「逆のtoolを呼ぶ」だけでは安全なrollbackになりません。既にcommitされた外部操作はACID transactionのように自動取消されず、回復はdomain-specificなcompensating actionまたはforward recoveryとして設計します。
STEP CLASSIFICATION
実行前に各stepを COMPENSABLE、PIVOT、RETRIABLE/FORWARD_ONLY に分類します。失敗後にLLMが即興で分類・取消方法を決める設計は避けます。pivotを越えた後は、原則として後続をretriable/forward recoveryとして設計します。
DURABLE JOURNAL
workflow ID、step ID、operation identity、request fingerprint、precondition、downstream operation ID、observed outcome、compensation definition/version、authorization/approval context、timestampをdurableに記録します。次stepへ進む前にreadback可能な状態を作ります。
UNKNOWN IS NOT FAILED
timeout、disconnect、worker crashでは、remote side effectがcommit済みでもresponseだけ失われる場合があります。UNKNOWN を FAILED と同一視せず、status/query endpointやdownstream operation IDでreconcileしてから、forward retryかcompensationかを決定します。
COMPENSATION IS A BUSINESS ACTION
補償は元操作の数学的な逆関数ではありません。返金手数料、取消不能な通知、外部settlement、法的記録、物理作業などでは完全な原状回復が不可能です。補償後のbusiness invariantと残留影響を明示します。
COMPENSATION CAN FAIL
compensationにもtimeout、retry、idempotency、precondition、authorization、dead-letter/manual escalationが必要です。補償の進捗をdurableに記録し、同じ補償が再実行されても追加副作用を起こさない境界を設計します。
REGISTRATION ORDER
forward actionが「副作用を起こした後にtimeout/failureを返す」可能性がある場合、compensation intentをforward callより後だけに記録するとcrash windowができます。一方、forward actionが実行されなかった場合にも補償が誤作用しないよう、compensationはdownstream stateを照合して安全にno-opできる設計にします。
CONCURRENCY AND ISOLATION
SagaはACID isolationを自動提供しません。並行workflowが中間状態を観測・変更できるため、resource version/ETag、reservation、semantic lock、workflow-specific state等を利用し、stale compensationが新しい正当な変更を消さないようにします。
AGENT POLICY BOUNDARY
LLMは、事前定義された回復policyの選択や人間へのescalation理由生成には利用できます。しかし、refund、delete、cancel、permission変更等の高影響compensationを、失敗時に未承認で新規生成させません。compensation実行時も現在のprincipal/tenant/target/policyを独立検証します。
OPERATING TEST
forward call前、remote commit後response前、response後journal前、compensation途中、compensation commit後response前、pivot後、並行saga、credential失効、stale versionでfault injectionします。workflow成功率だけでなく、duplicate forward/compensation、UNKNOWN滞留、reconciliation成功、manual escalation、business invariant restorationを測定します。
SAFE WORDING
Agentの複数副作用を「失敗したら逆操作する」だけでSagaとみなしません。各stepを事前にcompensable/pivot/retriableへ分類し、forward resultとdownstream operation IDをdurableに記録します。UNKNOWNは照会/reconciliationしてから回復方向を決め、compensation自体もidempotent・再試行可能・監査可能にします。補償はACID rollbackでも完全な原状回復保証でもありません。
OPEN UNKNOWN
対象workflow engine、tool graph、downstream idempotency/status API、compensation定義、pivot rule、authorization/approval lifetime、workflow versioning、outbox/inbox、retention、concurrency policy、irreversible-action policy、human escalation SLAは未確認です。
EA-242-CURRENT-APPROVAL研究資料研究資料根拠の出所: AUDITED_CANONICAL_RESEARCH_PACKET現行本文の監査・revision対応
- 裏付ける内容
- 現行台帳のAUDIT_PASSと候補・revision・本文ハッシュの対応を確認しています。
- 確認日
- —
- 出典・実験ID
- CANDIDATE-EA242-FIRST-20261005-C1
- 検証箇所
- 1KqhJtiSb2S84rWmeYVwKcT_76dBwZ_B0ZZuAWQqH0rQ · EA_REVISION_LEDGER!A45:U45 · EA-242-FIRST-20261005
- 適用範囲
- —
- 出典・来歴
- CURRENT_CANONICAL_APPROVAL_READBACK
- 限界
- 監査状態と来歴の記録です。外部根拠の最新性や本文の全主張を追加保証しません。
EA-242-CURRENT-BODY-READBACK実装資料実装資料根拠の出所: IMPLEMENTATION_READBACK現行本文の収録照合
- 裏付ける内容
- 公開生成入力の本文SHA-256が、監査済み候補に結び付いたハッシュと一致しています。
- 確認日
- 2026-10-12
- 出典・実験ID
- BODY-SHA256:c0f1d29586c302301d41cce938b54eb49fd4f5185992f54357ab83e646b30276
- 検証箇所
- content/staging/EA-242.md · c0f1d29586c302301d41cce938b54eb49fd4f5185992f54357ab83e646b30276 · EA-242-FIRST-20261005
- 適用範囲
- —
- 出典・来歴
- CURRENT_APPROVED_BODY_HASH_MATCH
- 限界
- 本文の同一性の検査です。外部システムの挙動や全主張の真偽を実証したものではありません。
EVD-EA-242-URL-213C84BC0FEA研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCEE1 Microsoft Azure Architecture Center, Saga distributed transactions pattern, accessed 2026-10-05,
- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-242-URL-213C84BC0FEA
- 検証箇所
- EVIDENCE TABLE · E1 Microsoft Azure Architecture Center, Saga distributed transactions pattern, accessed 2026-10-05, https://learn.microsoft.com/en-us/azure/architecture/patterns/saga
- 適用範囲
- EVIDENCE TABLE
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EVD-EA-242-URL-2384C86AB18F研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCEE2 Microsoft Azure Architecture Center, Compensating Transaction pattern, accessed 2026-10-05,
- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-242-URL-2384C86AB18F
- 検証箇所
- EVIDENCE TABLE · E2 Microsoft Azure Architecture Center, Compensating Transaction pattern, accessed 2026-10-05, https://learn.microsoft.com/ja-jp/azure/architecture/patterns/compensating-transaction
- 適用範囲
- EVIDENCE TABLE
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EVD-EA-242-URL-653F8C3CC5A9研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCEE3 AWS Prescriptive Guidance, Saga orchestration pattern, accessed 2026-10-05,
- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-242-URL-653F8C3CC5A9
- 検証箇所
- EVIDENCE TABLE · E3 AWS Prescriptive Guidance, Saga orchestration pattern, accessed 2026-10-05, https://docs.aws.amazon.com/prescriptive-guidance/latest/cloud-design-patterns/saga-orchestration.html
- 適用範囲
- EVIDENCE TABLE
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EVD-EA-242-URL-ACED6E3D09AD研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCEE4 AWS Prescriptive Guidance, Saga patterns, accessed 2026-10-05,
- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-242-URL-ACED6E3D09AD
- 検証箇所
- EVIDENCE TABLE · E4 AWS Prescriptive Guidance, Saga patterns, accessed 2026-10-05, https://docs.aws.amazon.com/prescriptive-guidance/latest/cloud-design-patterns/saga-patterns.html
- 適用範囲
- EVIDENCE TABLE
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EVD-EA-242-URL-78BD767B100B研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCEE5 Chris Richardson, microservices.io Pattern: Saga, accessed 2026-10-05,
- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-242-URL-78BD767B100B
- 検証箇所
- EVIDENCE TABLE · E5 Chris Richardson, microservices.io Pattern: Saga, accessed 2026-10-05, https://microservices.io/patterns/data/saga.html
- 適用範囲
- EVIDENCE TABLE
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EVD-EA-242-URL-A8538CCBCB1A研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCEE6 Temporal Community, Saga compensation failure/retry discussion, 2021, accessed 2026-10-05,
- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-242-URL-A8538CCBCB1A
- 検証箇所
- EVIDENCE TABLE · E6 Temporal Community, Saga compensation failure/retry discussion, 2021, accessed 2026-10-05, https://community.temporal.io/t/exception-in-saga-compensation-and-multiple-retries-even-though-retry-count-is-1/3562
- 適用範囲
- EVIDENCE TABLE
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EVD-EA-242-URL-FF4E5883526D研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCEE7 Temporal Community, saga compensation registration ordering, 2026-06-10, accessed 2026-10-05,
- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-242-URL-FF4E5883526D
- 検証箇所
- EVIDENCE TABLE · E7 Temporal Community, saga compensation registration ordering, 2026-06-10, accessed 2026-10-05, https://community.temporal.io/t/saga-pattern-in-typescript/19615
- 適用範囲
- EVIDENCE TABLE
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 出典ID
- CANDIDATE-EA242-FIRST-20261005-C1, BODY-SHA256:c0f1d29586c302301d41cce938b54eb49fd4f5185992f54357ab83e646b30276, SRC-EA-242-URL-213C84BC0FEA, SRC-EA-242-URL-2384C86AB18F, SRC-EA-242-URL-653F8C3CC5A9, SRC-EA-242-URL-ACED6E3D09AD, SRC-EA-242-URL-78BD767B100B, SRC-EA-242-URL-A8538CCBCB1A, SRC-EA-242-URL-FF4E5883526D
- 追跡中のUNKNOWN ID
- EA-242-UNKNOWN-01, EA-242-UNKNOWN-02
- 再確認のきっかけ
- canonical revision/publication state change · body artifact hash change · source currentness change · new contradiction or implementation readback
機械検査: 通過 — Automated validation does not guarantee accuracy or authorize execution.
同じ記事IDの機械可読データです。