Skip to content

Evidence for AI operations

No English page yet. Showing the Japanese source.

Back to the entrance

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は未確認です。

根拠資料

更新履歴

  1. 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_REFERENCE

    E1 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_REFERENCE

    E2 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_REFERENCE

    E3 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_REFERENCE

    E4 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_REFERENCE

    E5 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_REFERENCE

    E6 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_REFERENCE

    E7 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の機械可読データです。