{
  "format": "agent-article-v0",
  "article_id": "EA-059",
  "canonical_url": "/tools/ea-059-canary-a-b-feature-flag-for-ai",
  "page_type": "reference",
  "claim_ids": [],
  "evidence_ids": [
    "EVD-EA-059-URL-A64FAE367151",
    "EVD-EA-059-URL-EB83869FF089",
    "EVD-EA-059-URL-8721C909D2AB",
    "EVD-EA-059-URL-4C12FA76FA7E",
    "EVD-EA-059-URL-76B5661A61AF",
    "EVD-EA-059-URL-EB96A3B9669C",
    "EVD-EA-059-URL-F5182A96BF1B",
    "EVD-EA-059-URL-3542BDC00F05",
    "EVD-EA-059-URL-0E681667EFBA",
    "EVD-EA-059-URL-F5C195EFB489",
    "EA-059-R11-RESEARCH",
    "EA-059-R11-WEB-READBACK"
  ],
  "unknown_ids": [
    "EA-059-UNKNOWN-01",
    "EA-059-UNKNOWN-CURRENTNESS"
  ],
  "operational_object_ids": [],
  "provider": [],
  "models": [],
  "plans": [],
  "surfaces": [],
  "regions": [],
  "current_status": "UNKNOWN",
  "observation_status": "SPEC_ONLY",
  "freshness": "UNKNOWN",
  "last_verified": null,
  "supersedes": [],
  "superseded_by": [],
  "provenance": [
    "COMM-056-EA0059",
    "SRC-EA-059-URL-A64FAE367151",
    "SRC-EA-059-URL-EB83869FF089",
    "SRC-EA-059-URL-8721C909D2AB",
    "SRC-EA-059-URL-4C12FA76FA7E",
    "SRC-EA-059-URL-76B5661A61AF",
    "SRC-EA-059-URL-EB96A3B9669C",
    "SRC-EA-059-URL-F5182A96BF1B",
    "SRC-EA-059-URL-3542BDC00F05",
    "SRC-EA-059-URL-0E681667EFBA",
    "SRC-EA-059-URL-F5C195EFB489",
    "WEBBODY-EA0059-R8-15AAA47F"
  ],
  "article_sources": [
    {
      "id": "EVD-EA-059-URL-A64FAE367151",
      "evidence_class": "RESEARCH",
      "title": "E1 | class: official specification | title: Flag Evaluation API | author/org: OpenFeature | canonical URL:",
      "href": "https://openfeature.dev/specification/sections/flag-evaluation/",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-059-URL-A64FAE367151"
      ],
      "supporting_locators": [
        "EVIDENCE TABLE",
        "E1 | class: official specification | title: Flag Evaluation API | author/org: OpenFeature | canonical URL: https://openfeature.dev/specification/sections/flag-evaluation/"
      ],
      "scope": "EVIDENCE TABLE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EVD-EA-059-URL-EB83869FF089",
      "evidence_class": "RESEARCH",
      "title": "E2 | class: official specification | title: Evaluation Context | author/org: OpenFeature | canonical URL:",
      "href": "https://openfeature.dev/specification/sections/evaluation-context/",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-059-URL-EB83869FF089"
      ],
      "supporting_locators": [
        "EVIDENCE TABLE",
        "E2 | class: official specification | title: Evaluation Context | author/org: OpenFeature | canonical URL: https://openfeature.dev/specification/sections/evaluation-context/"
      ],
      "scope": "EVIDENCE TABLE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EVD-EA-059-URL-8721C909D2AB",
      "evidence_class": "RESEARCH",
      "title": "E3 | class: official specification | title: Hooks | author/org: OpenFeature | canonical URL:",
      "href": "https://openfeature.dev/specification/sections/hooks/",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-059-URL-8721C909D2AB"
      ],
      "supporting_locators": [
        "EVIDENCE TABLE",
        "E3 | class: official specification | title: Hooks | author/org: OpenFeature | canonical URL: https://openfeature.dev/specification/sections/hooks/"
      ],
      "scope": "EVIDENCE TABLE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EVD-EA-059-URL-4C12FA76FA7E",
      "evidence_class": "RESEARCH",
      "title": "E4 | class: project release/update | title: OpenFeature Mid-2026 Update: Platform-Native Feature Flags, a New TC Member, and Spec v0.9.0 | author/org: OpenFeature | canonical URL:",
      "href": "https://openfeature.dev/blog/openfeature-mid-2026-update/",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-059-URL-4C12FA76FA7E"
      ],
      "supporting_locators": [
        "EVIDENCE TABLE",
        "E4 | class: project release/update | title: OpenFeature Mid-2026 Update: Platform-Native Feature Flags, a New TC Member, and Spec v0.9.0 | author/org: OpenFeature | canonical URL: https://openfeature.dev/blog/openfeature-mid-2026-update/"
      ],
      "scope": "EVIDENCE TABLE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EVD-EA-059-URL-76B5661A61AF",
      "evidence_class": "RESEARCH",
      "title": "E5 | class: author-maintained OSS / release | title: Argo Rollouts — Progressive Delivery for Kubernetes; Releases | author/org: Argo Project | canonical URLs:",
      "href": "https://github.com/argoproj/argo-rollouts",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-059-URL-76B5661A61AF"
      ],
      "supporting_locators": [
        "EVIDENCE TABLE",
        "E5 | class: author-maintained OSS / release | title: Argo Rollouts — Progressive Delivery for Kubernetes; Releases | author/org: Argo Project | canonical URLs: https://github.com/argoproj/argo-rollouts"
      ],
      "scope": "EVIDENCE TABLE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EVD-EA-059-URL-EB96A3B9669C",
      "evidence_class": "RESEARCH",
      "title": "E5 | class: author-maintained OSS / release | title: Argo Rollouts — Progressive Delivery for Kubernetes; Releases | author/org: Argo Project | canonical URLs: https://github.com/a",
      "href": "https://github.com/argoproj/argo-rollouts/releases",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-059-URL-EB96A3B9669C"
      ],
      "supporting_locators": [
        "EVIDENCE TABLE",
        "E5 | class: author-maintained OSS / release | title: Argo Rollouts — Progressive Delivery for Kubernetes; Releases | author/org: Argo Project | canonical URLs: https://github.com/argoproj/argo-rollouts ; https://github.com/argoproj/argo-rollouts/releases"
      ],
      "scope": "EVIDENCE TABLE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EVD-EA-059-URL-F5182A96BF1B",
      "evidence_class": "RESEARCH",
      "title": "E6 | class: public security advisory | title: Argo Rollouts dashboard through 1.10.0 binds to all interfaces and exposes mutating Rollout operations without authentication | author",
      "href": "https://github.com/advisories/GHSA-366v-5xmx-36vh",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-059-URL-F5182A96BF1B"
      ],
      "supporting_locators": [
        "EVIDENCE TABLE",
        "E6 | class: public security advisory | title: Argo Rollouts dashboard through 1.10.0 binds to all interfaces and exposes mutating Rollout operations without authentication | author/org: GitHub Advisory Database / NVD reference | canonical URL: https://github.com/advisories/GHSA-366v-5xmx-36vh"
      ],
      "scope": "EVIDENCE TABLE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EVD-EA-059-URL-3542BDC00F05",
      "evidence_class": "RESEARCH",
      "title": "E7 | class: provider official documentation | title: Construct and store reusable prompts with Prompt management in Amazon Bedrock | author/org: AWS | canonical URL:",
      "href": "https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-management.html",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-059-URL-3542BDC00F05"
      ],
      "supporting_locators": [
        "EVIDENCE TABLE",
        "E7 | class: provider official documentation | title: Construct and store reusable prompts with Prompt management in Amazon Bedrock | author/org: AWS | canonical URL: https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-management.html"
      ],
      "scope": "EVIDENCE TABLE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EVD-EA-059-URL-0E681667EFBA",
      "evidence_class": "RESEARCH",
      "title": "E8 | class: provider official documentation | title: Deploy a prompt to your application using versions in Prompt management | author/org: AWS | canonical URL:",
      "href": "https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-management-deploy.html",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-059-URL-0E681667EFBA"
      ],
      "supporting_locators": [
        "EVIDENCE TABLE",
        "E8 | class: provider official documentation | title: Deploy a prompt to your application using versions in Prompt management | author/org: AWS | canonical URL: https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-management-deploy.html"
      ],
      "scope": "EVIDENCE TABLE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EVD-EA-059-URL-F5C195EFB489",
      "evidence_class": "RESEARCH",
      "title": "E9 | class: provider official documentation | title: Compare versions of a prompt in Prompt management | author/org: AWS | canonical URL:",
      "href": "https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-management-version-compare.html",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-059-URL-F5C195EFB489"
      ],
      "supporting_locators": [
        "EVIDENCE TABLE",
        "E9 | class: provider official documentation | title: Compare versions of a prompt in Prompt management | author/org: AWS | canonical URL: https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-management-version-compare.html"
      ],
      "scope": "EVIDENCE TABLE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EA-059-R11-RESEARCH",
      "evidence_class": "RESEARCH",
      "title": "EA-059 監査済みresearch / canonical revision binding",
      "supports": [
        "F1 [VERIFIED_SPEC / INFERENCE]: Feature flag, canary, and A/B must not be collapsed. Feature flag is a runtime selection primitive. Canary is staged exposure intended to bound blast radius and support promote/abort decisions. A/B is simultaneous assignment intended primarily for comparative inference/experimentation. One flag system may implement routing for either, but does not by itself supply an evaluation methodology.\nF2 [OSS_PRACTICE]: Progressive delivery is mature outside AI. Argo Rollouts implements weighted traffic shifting, metric-driven analysis, manual judgement, promotion and rollback. Therefore AI does not require inventing a wholly new rollout control plane; existing progressive-delivery mechanisms can carry AI-specific gates.\nF3 [INFERENCE / PROPOSAL]: AI rollout should separate two layers: (A) an immutable execution-configuration bundle identifying the exact model/prompt/tool/retrieval/policy/schema configuration and (B) a traffic/cohort selector deciding which requests use which bundle. This prevents a mutable alias or prompt draft from changing underneath an experiment.\nF4 [VERIFIED_SPEC]: OpenFeature evaluation context supports deterministic subject/cohort targeting and fractional rollout patterns via targeting keys and provider evaluation rules. Hooks provide appropriate attachment points for telemetry and validation.\nF5 [INFERENCE / PROPOSAL]: Promotion gates should include both conventional SRE signals (availability, errors, latency, saturation, unit cost) and AI-specific signals where applicable (task success/quality, policy violation/refusal rates, tool/retrieval failure, harmful side effects). Evaluator/judge version and sampling method must be recorded because the measurement instrument itself can drift.\nF6 [PRODUCT_VOLATILE]: Amazon Bedrock Prompt Management currently provides variants and version snapshots. This is useful as a provider-specific configuration primitive, but official docs cited here do not establish automatic percentage traffic splitting across prompt versions; do not describe it as a Bedrock canary controller without separate evidence.\nF7 [INFERENCE]: A rollout record needs at least resolved immutable configuration ID, flag/rule revision, cohort/target key derivation, exposure timestamp, metrics/eval revision, decision (continue/promote/abort), decision actor, and rollback target."
      ],
      "limit": "canonical監査・revision bindingの存在を示す。外部ソースcurrentnessが本文またはcontrol-planeで確定していない場合は、currentnessをUNKNOWNのまま保持する。",
      "origin_class": "AUDITED_CANONICAL_RESEARCH_PACKET",
      "source_or_experiment_ids": [
        "COMM-056-EA0059"
      ],
      "supporting_locators": [
        "COMM-056-EA0059",
        "EA-059-R5-LEGACY-MIGRATION-20261008-R1",
        "content/staging/EA-059.md"
      ],
      "scope": "監査済みEA本文・canonical revision・既存Source Graph relationの範囲。欠損currentnessは推測で閉じない。",
      "provenance_status": "AUDIT_PASS_CANONICAL_BINDING"
    },
    {
      "id": "EA-059-R11-WEB-READBACK",
      "evidence_class": "IMPL",
      "title": "EA-059 Web body identity / canonical readback",
      "supports": [
        "canonical staging bodyのSHA-256一致とR9 canonical ledger readbackをProduction projectionの入力として検証する。"
      ],
      "limit": "body identity/readbackは本文claim自体の真偽や外部ソースの最新性を追加保証しない。",
      "checked_at": null,
      "origin_class": "IMPLEMENTATION_READBACK",
      "source_or_experiment_ids": [
        "WEBBODY-EA0059-R8-15AAA47F"
      ],
      "supporting_locators": [
        "WEBBODY-EA0059-R8-15AAA47F",
        "content/staging/EA-059.md",
        "EA-059-R5-LEGACY-MIGRATION-20261008-R1"
      ],
      "scope": "R9/R10 canonical readback後のProduction生成時body identity。",
      "provenance_status": "CANONICAL_READBACK_BODY_HASH_MATCH"
    }
  ],
  "research_sections": [
    {
      "heading": "WHY_THIS_MATTERS_TO_UPDATE",
      "text": "AI変更は、通常ソフトウェアのbinary差分だけでなく、model ID/revision、prompt/instruction、generation parameters、tool schema、retrieval/index、policy/guardrail、response schema等の組合せで実行挙動が変わる。新構成を一括切替すると品質劣化・安全性低下・tool side effect・latency/cost増大のblast radiusが大きくなる。公開後アップデートでは、AI構成をversioned assetとして固定したうえで、誰に／何％に／いつまで新構成を露出するかを別のprogressive-delivery controlとして管理する設計を扱う価値が高い。"
    },
    {
      "heading": "SCOPE_ROUTING",
      "text": "Enterprise AI Core: progressive delivery / deployment governance / rollback gate\nInteroperability: OpenFeature vendor-neutral flag evaluation API\nImplementation: Argo Rollouts等のcanary/progressive delivery、provider prompt version/variant機能\nProvider mapping: Amazon Bedrock Prompt Management等\nGovernance: cohort definition、promotion/abort authority、change provenance\nBenchmark/Eval: offline eval + online canary/A-Bの分離"
    },
    {
      "heading": "CLAIM_OR_RESEARCH_QUESTION",
      "text": "1. AIのcanary/A-B/feature flagは同義ではなく、異なる目的を持つcontrolであるか。\n2. 新model／prompt／tool等を安全に限定投入するため、どの構成をimmutableに固定し、何をruntime routingで切り替えるべきか。\n3. promotion/abortの判定に通常SRE指標だけでなくAI固有指標をどこまで組み込めるか。\n4. feature flag control plane自体のsecurity/privacy/failure modeは何か。"
    },
    {
      "heading": "EVIDENCE TABLE",
      "text": "E1 | class: official specification | title: Flag Evaluation API | author/org: OpenFeature | canonical URL: https://openfeature.dev/specification/sections/flag-evaluation/ | publication/update: current specification, accessed 2026-09-14 | version: OpenFeature Specification v0.9.0 context | locator: Overview; abnormal/default evaluation requirements; shutdown | label: VERIFIED_SPEC | relation: support/context | Evidence: flag evaluation API is vendor-independent from the flag control plane; no-op/default behavior exists, establishing routing control and fallback as separate from the AI payload itself.\nE2 | class: official specification | title: Evaluation Context | author/org: OpenFeature | canonical URL: https://openfeature.dev/specification/sections/evaluation-context/ | accessed 2026-09-14 | version: v0.9.0 context | locator: §3 overview, Requirement 3.1.1, context merging | label: VERIFIED_SPEC | relation: support/limit | Evidence: targeting context can drive rule, subject override, and fractional evaluation; targeting key may be required for deterministic fractional rollout.\nE3 | class: official specification | title: Hooks | author/org: OpenFeature | canonical URL: https://openfeature.dev/specification/sections/hooks/ | accessed 2026-09-14 | version: v0.9.0 context | locator: Overview; before/after/error/finally; hook data | label: VERIFIED_SPEC | relation: support | Evidence: flag lifecycle exposes validation, telemetry, and error hooks, enabling rollout-decision observability without coupling it to model logic.\nE4 | class: project release/update | title: OpenFeature Mid-2026 Update: Platform-Native Feature Flags, a New TC Member, and Spec v0.9.0 | author/org: OpenFeature | canonical URL: https://openfeature.dev/blog/openfeature-mid-2026-update/ | publication: 2026-08-12 | version: Specification v0.9.0 | locator: Specification v0.9.0 section | label: SOURCE_REPORT / OSS_PRACTICE | relation: support/limit | Evidence: v0.9.0 is first spec release since v0.8.0 (2024-03) and stabilizes evaluation/provider sections while including accumulated changes; SDK/provider compliance can lag specification change.\nE5 | class: author-maintained OSS / release | title: Argo Rollouts — Progressive Delivery for Kubernetes; Releases | author/org: Argo Project | canonical URLs: https://github.com/argoproj/argo-rollouts ; https://github.com/argoproj/argo-rollouts/releases | release: v1.10.0 dated 2026-08-05, release assets updated 2026-08-27 | tag/version: v1.10.0, commit d90700a | locator: project README features; v1.10.0 release | label: OSS_PRACTICE / OBSERVED | relation: support/context | Evidence: canary, weighted traffic shifting, metric analysis, automated promotion/rollback are implemented progressive-delivery primitives.\nE6 | class: public security advisory | title: Argo Rollouts dashboard through 1.10.0 binds to all interfaces and exposes mutating Rollout operations without authentication | author/org: GitHub Advisory Database / NVD reference | canonical URL: https://github.com/advisories/GHSA-366v-5xmx-36vh | publication: 2026-08-28 | affected: through 1.10.0 per advisory | CVE: CVE-2026-82277 | locator: Description | label: SOURCE_REPORT | relation: counter/limit | Evidence: rollout control plane can itself become a critical attack surface; same-network attacker could invoke promote/abort/restart/image/undo/retry functions under described conditions.\nE7 | class: provider official documentation | title: Construct and store reusable prompts with Prompt management in Amazon Bedrock | author/org: AWS | canonical URL: https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-management.html | accessed: 2026-09-14 | service revision: current docs | locator: Key definitions / Prompt variant | label: PRODUCT_VOLATILE / SOURCE_REPORT | relation: support/context | Evidence: a prompt variant can vary message, model, or inference configuration and can be tested/compared.\nE8 | class: provider official documentation | title: Deploy a prompt to your application using versions in Prompt management | author/org: AWS | canonical URL: https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-management-deploy.html | accessed: 2026-09-14 | locator: version definition | label: PRODUCT_VOLATILE / SOURCE_REPORT | relation: support | Evidence: a prompt version is a point-in-time snapshot of prompt/configuration for production integration.\nE9 | class: provider official documentation | title: Compare versions of a prompt in Prompt management | author/org: AWS | canonical URL: https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-management-version-compare.html | accessed: 2026-09-14 | locator: compare JSON definitions and model responses | label: PRODUCT_VOLATILE / SOURCE_REPORT | relation: support/limit | Evidence: provider supports configuration/output comparison, but this feature alone is not a production traffic-splitting or statistical A/B system."
    },
    {
      "heading": "FINDINGS",
      "text": "F1 [VERIFIED_SPEC / INFERENCE]: Feature flag, canary, and A/B must not be collapsed. Feature flag is a runtime selection primitive. Canary is staged exposure intended to bound blast radius and support promote/abort decisions. A/B is simultaneous assignment intended primarily for comparative inference/experimentation. One flag system may implement routing for either, but does not by itself supply an evaluation methodology.\nF2 [OSS_PRACTICE]: Progressive delivery is mature outside AI. Argo Rollouts implements weighted traffic shifting, metric-driven analysis, manual judgement, promotion and rollback. Therefore AI does not require inventing a wholly new rollout control plane; existing progressive-delivery mechanisms can carry AI-specific gates.\nF3 [INFERENCE / PROPOSAL]: AI rollout should separate two layers: (A) an immutable execution-configuration bundle identifying the exact model/prompt/tool/retrieval/policy/schema configuration and (B) a traffic/cohort selector deciding which requests use which bundle. This prevents a mutable alias or prompt draft from changing underneath an experiment.\nF4 [VERIFIED_SPEC]: OpenFeature evaluation context supports deterministic subject/cohort targeting and fractional rollout patterns via targeting keys and provider evaluation rules. Hooks provide appropriate attachment points for telemetry and validation.\nF5 [INFERENCE / PROPOSAL]: Promotion gates should include both conventional SRE signals (availability, errors, latency, saturation, unit cost) and AI-specific signals where applicable (task success/quality, policy violation/refusal rates, tool/retrieval failure, harmful side effects). Evaluator/judge version and sampling method must be recorded because the measurement instrument itself can drift.\nF6 [PRODUCT_VOLATILE]: Amazon Bedrock Prompt Management currently provides variants and version snapshots. This is useful as a provider-specific configuration primitive, but official docs cited here do not establish automatic percentage traffic splitting across prompt versions; do not describe it as a Bedrock canary controller without separate evidence.\nF7 [INFERENCE]: A rollout record needs at least resolved immutable configuration ID, flag/rule revision, cohort/target key derivation, exposure timestamp, metrics/eval revision, decision (continue/promote/abort), decision actor, and rollback target."
    },
    {
      "heading": "LIMITS / COUNTEREVIDENCE / FAILURE ENVELOPE",
      "text": "- A canary reduces blast radius; it does not prove correctness or safety. Rare failures, long-tail workflows, delayed side effects, and population shifts can survive a small canary.\n- LLM stochasticity means a one-request comparison can be misleading. Repeated/sample-aware evaluation is required where variance matters.\n- A/B experimentation may be unethical or operationally unacceptable for high-risk decisions if one arm may cause material harm. Offline/synthetic evaluation and stricter approval gates can be required before any live exposure.\n- Feature flag service outage or mis-evaluation can route traffic incorrectly. Stable/fail-safe defaults must be deliberate rather than accidental.\n- The Argo CVE-2026-82277 advisory demonstrates that deployment-control interfaces can themselves permit high-impact mutating actions if insufficiently protected. This advisory is evidence about the described Argo dashboard versions, not proof that all progressive-delivery systems share the vulnerability.\n- OpenFeature v0.9.0 remains pre-1.0; spec evolution and SDK/provider conformance lag must be version-gated."
    },
    {
      "heading": "AVAILABILITY_GATES",
      "text": "- OpenFeature specifies an API abstraction; actual percentage rollout, persistence, targeting, audit, and control-plane functionality depend on the selected provider/product.\n- Argo Rollouts requires Kubernetes and integration assumptions; traffic routing/metrics support varies by ingress, service mesh and provider integration.\n- Amazon Bedrock Prompt Management availability depends on supported regions/models, IAM permissions and current service configuration. Public docs do not prove availability in a specific tenant.\n- Product/release claims above are as-of 2026-09-14 and require revalidation at book-update time."
    },
    {
      "heading": "IMPLEMENTATION_STATE",
      "text": "OpenFeature: implementable vendor-neutral evaluation abstraction; current spec context v0.9.0.\nArgo Rollouts: production OSS progressive-delivery implementation; current GitHub release observed v1.10.0.\nAmazon Bedrock Prompt Management: provider-managed prompt variants/version snapshots exist; use as configuration/version evidence, not as automatic canary proof.\nCore candidate implementation pattern: versioned configuration registry -> cohort/flag resolver -> execution -> telemetry/eval -> promotion/abort controller -> stable rollback target."
    },
    {
      "heading": "BENCHMARK_OR_EVAL",
      "text": "No universal AI canary threshold was established. Future Work should define organization- and use-case-specific guardrails. Recommended evaluation sequence is offline regression/contract evaluation -> shadow or replay where feasible -> bounded canary -> staged increase -> broad rollout. This sequence is PROPOSAL/INFERENCE, not an industry standard established by the cited sources. For A/B, statistical design, power, interference, repeat exposure, and stochastic output variance must be handled separately from deployment safety."
    },
    {
      "heading": "SECURITY / PRIVACY / AUDIT / COST / OPERABILITY",
      "text": "Security: rollout promotion/abort and flag administration are privileged control-plane actions; enforce strong authn/authz, network restriction and audit. Do not expose unauthenticated mutation endpoints.\nPrivacy: evaluation context may contain user attributes. OpenFeature documentation itself warns that providers may handle/persist context; minimize, pseudonymize/hash where suitable, and avoid unnecessary sensitive content.\nAudit: preserve resolved config revision and flag/rule revision, not only mutable alias/flag name.\nCost: canary/A-B duplicates evaluation and may temporarily increase model/tool spend; cost per successful task should be a rollout signal where material.\nOperability: default/fallback route should be tested. A fail-open default to an unsafe/new AI configuration is an avoidable control error."
    },
    {
      "heading": "SAFE_WORDING_FOR_FUTURE_BOOK",
      "text": "「AIの段階投入では、modelやprompt等の構成をversionで固定する層と、その構成へtrafficを割り当てるflag/canary層を分ける。Feature flagはroutingの仕組み、canaryはblast radiusを制限して段階的に昇格・中止する運用、A/Bは比較実験であり、同じものではない。既存のprogressive-delivery基盤はAIにも利用できるが、昇格判定には通常の可用性・遅延・costだけでなく、task品質・policy違反・tool失敗等のAI固有指標を追加し、評価器自体のversionも記録する。限定投入は安全性の証明ではなく、被害範囲を限定して検出可能性を上げるcontrolである。」"
    },
    {
      "heading": "UPDATE_WORK_HANDOFF",
      "text": "- 本編アップデート時はEA-058のexecution-configuration bundleと直接接続する。\n- provider別mappingでは、prompt/model versioning機能とtraffic splitting機能を必ず別claimとして採集する。\n- 代表的なOpenFeature provider 2〜3種についてpercentage rollout、sticky assignment、audit/fallback挙動を再確認すると実装比較が閉じる。\n- Argo Rolloutsを例示する場合、v1.10.0以後のsecurity statusとCVE-2026-82277修正状況を更新時に再確認する。\n- TEST_PROFILE（未実施）: synthetic/non-sensitive workloadでstable configとcandidate configを固定し、1%→5%→25%の段階投入、sticky cohort、abort threshold、audit record、fallback時のstable復帰、cohort汚染の不存在を確認。外部副作用を伴うtoolはmock/stub化する。"
    },
    {
      "heading": "OPEN_UNKNOWN",
      "text": "provider横断でAI-specific rollout metric schemaを統一する標準は未確立。特定tenantでのflag provider／Bedrock機能のavailabilityは未確認。LLM judgeをonline promotion gateにした場合の組織別許容誤差も未確立。"
    },
    {
      "heading": "STOP_CONDITION",
      "text": "progressive-delivery primitive、AI configuration versioning、targeting/telemetry、control-plane counterevidenceの一次証拠が揃い、初回Packetとしては閉じた。tenant/provider固有挙動は将来mappingで再採集する。\n\n\n---\n\n---"
    },
    {
      "heading": "CURRENTNESS_AUDIT",
      "text": "OpenFeature v0.9.0 remains the current announced pre-1.0 line. Argo Rollouts v1.10.0 is the latest release, but CVE-2026-82277/GHSA-366v-5xmx-36vh describes dashboard exposure through 1.10.0 with no known patched version. Bedrock Prompt Management variants/versions are not by themselves traffic-splitting canary control."
    }
  ],
  "human_url": "/tools/ea-059-canary-a-b-feature-flag-for-ai",
  "markdown_url": "/agent/article.md?path=%2Ftools%2Fea-059-canary-a-b-feature-flag-for-ai",
  "json_url": "/agent/article.json?path=%2Ftools%2Fea-059-canary-a-b-feature-flag-for-ai"
}