{
  "format": "agent-article-v0",
  "article_id": "EA-270",
  "canonical_url": "/tools/ea-270-explicit-state-machine-vs-free-form-agent-loop",
  "page_type": "decision",
  "claim_ids": [],
  "evidence_ids": [
    "EA-270-CURRENT-APPROVAL",
    "EA-270-CURRENT-BODY-READBACK"
  ],
  "unknown_ids": [
    "EA-270-UNKNOWN-01"
  ],
  "operational_object_ids": [],
  "provider": [],
  "models": [],
  "plans": [],
  "surfaces": [],
  "regions": [],
  "current_status": "CURRENT",
  "observation_status": "SPEC_ONLY",
  "freshness": "CURRENT",
  "last_verified": "2026-10-06",
  "supersedes": [],
  "superseded_by": [],
  "provenance": [
    "CANDIDATE-EA270-FIRST-20261015-C5",
    "BODY-SHA256:7c72b4a71cd0bc88b066d5784505e6d522b67020da9351f34358e7e6f19e44da"
  ],
  "article_sources": [
    {
      "id": "EA-270-CURRENT-APPROVAL",
      "evidence_class": "RESEARCH",
      "title": "現行本文の監査・revision対応",
      "supports": [
        "現行台帳のAUDIT_PASSと候補・revision・本文ハッシュの対応を確認しています。"
      ],
      "limit": "監査状態と来歴の記録です。外部根拠の最新性や本文の全主張を追加保証しません。",
      "origin_class": "AUDITED_CANONICAL_RESEARCH_PACKET",
      "source_or_experiment_ids": [
        "CANDIDATE-EA270-FIRST-20261015-C5"
      ],
      "supporting_locators": [
        "1KqhJtiSb2S84rWmeYVwKcT_76dBwZ_B0ZZuAWQqH0rQ/EA_REVISION_LEDGER!A67:U67",
        "EA_REVISION_LEDGER!A67:U67",
        "EA-270-FIRST-20261006"
      ],
      "provenance_status": "CURRENT_CANONICAL_APPROVAL_READBACK"
    },
    {
      "id": "EA-270-CURRENT-BODY-READBACK",
      "evidence_class": "IMPL",
      "title": "現行本文の収録照合",
      "supports": [
        "公開生成入力の本文SHA-256が、監査済み候補に結び付いたハッシュと一致しています。"
      ],
      "limit": "本文の同一性の検査です。外部システムの挙動や全主張の真偽を実証したものではありません。",
      "checked_at": "2026-10-17",
      "origin_class": "IMPLEMENTATION_READBACK",
      "source_or_experiment_ids": [
        "BODY-SHA256:7c72b4a71cd0bc88b066d5784505e6d522b67020da9351f34358e7e6f19e44da"
      ],
      "supporting_locators": [
        "content/staging/EA-270.md",
        "7c72b4a71cd0bc88b066d5784505e6d522b67020da9351f34358e7e6f19e44da",
        "EA-270-FIRST-20261006"
      ],
      "provenance_status": "CURRENT_APPROVED_BODY_HASH_MATCH"
    }
  ],
  "research_sections": [
    {
      "heading": "要点と前提",
      "text": "Agent制御はstate machineとfree-form loopの二択ではない。明示state machineは遷移、retry/catch、pause/resume、履歴、再開位置を外部制御面へ出しやすい。free-form loopもmax turns、termination、handoff、tool permission等を外部化できる。\n\n企業運用では、探索の自由度と業務状態確定を分離する。承認、外部副作用、再試行、停止、再開、authoritative readbackはstate contractへ置き、その境界内でLLMに探索やtool選択を委ねる構成を基本候補とする。ただしhybrid構成を普遍的最適解とはしない。\n\nAWS Step Functions Standardのredriveは失敗stepから同じinput・definitionで再開し成功済みstepの結果/historyを保持するが、eligibility、history、workflow mode等の制約がある。LangGraphのinterrupt/pause/resume、OpenAI Agents SDKのmax_turns、AutoGenのtermination conditionsも各framework固有の機能であり横断保証へ一般化しない。\n\ncheckpointやworkflow historyはexternal side-effectのexactly-once保証ではない。再実行され得るtool/APIにはidempotency key、precondition、deduplication、compensation、authoritative readbackを別途設計する。\n\nFailure envelope: non-termination、transition drift、stale checkpoint、definition/version drift、duplicate side effect、wrong resume point、hidden tool state、partial update、handoff cycle、termination error、context loss、approval bypass、schema migration failure、quota/retention exhaustion、cancellation inconsistency。"
    },
    {
      "heading": "OPEN_UNKNOWN",
      "text": "organization workflow engine/version、checkpoint store、schema migration、tool idempotency、approval/IAM、turn/time/cost limits、retention、replay/cancellation semantics、external side-effect contract、incident recovery、tenant realized behavior。"
    },
    {
      "heading": "SAFE_WORDING",
      "text": "state machine採用だけでexactly-onceや正当性は保証されず、free-form loopもtermination・権限・checkpoint・readbackを明示すれば統制できる。"
    }
  ],
  "human_url": "/tools/ea-270-explicit-state-machine-vs-free-form-agent-loop",
  "markdown_url": "/agent/article.md?path=%2Ftools%2Fea-270-explicit-state-machine-vs-free-form-agent-loop",
  "json_url": "/agent/article.json?path=%2Ftools%2Fea-270-explicit-state-machine-vs-free-form-agent-loop"
}