{
  "format": "agent-article-v0",
  "article_id": "EA-023",
  "canonical_url": "/tools/ea-023",
  "page_type": "decision",
  "claim_ids": [],
  "evidence_ids": [
    "EA-023-R11-RESEARCH",
    "EA-023-R11-WEB-READBACK"
  ],
  "unknown_ids": [
    "EA-023-UNKNOWN-01",
    "EA-023-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-025-EA0023",
    "WEBBODY-EA0023-R8-1BEBBF2F"
  ],
  "article_sources": [
    {
      "id": "EA-023-R11-RESEARCH",
      "evidence_class": "RESEARCH",
      "title": "EA-023 監査済みresearch / canonical revision binding",
      "supports": [
        "ベンダーロックイン低減は「完全なvendor neutrality」ではなく、lock-in surfaceを小さく可視化し、交換時に再構築する範囲を限定する設計として扱う。実装原則は PORTABLE CORE + EXPLICIT ADAPTERS + ISOLATED EXTENSIONS + EXTERNALIZED STATE + INDEPENDENT EVAL/AUDIT。"
      ],
      "limit": "canonical監査・revision bindingの存在を示す。外部ソースcurrentnessが本文またはcontrol-planeで確定していない場合は、currentnessをUNKNOWNのまま保持する。",
      "origin_class": "AUDITED_CANONICAL_RESEARCH_PACKET",
      "source_or_experiment_ids": [
        "COMM-025-EA0023"
      ],
      "supporting_locators": [
        "COMM-025-EA0023",
        "EA-023-R5-LEGACY-MIGRATION-20261008-R1",
        "content/staging/EA-023.md"
      ],
      "scope": "監査済みEA本文・canonical revision・既存Source Graph relationの範囲。欠損currentnessは推測で閉じない。",
      "provenance_status": "AUDIT_PASS_CANONICAL_BINDING"
    },
    {
      "id": "EA-023-R11-WEB-READBACK",
      "evidence_class": "IMPL",
      "title": "EA-023 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-EA0023-R8-1BEBBF2F"
      ],
      "supporting_locators": [
        "WEBBODY-EA0023-R8-1BEBBF2F",
        "content/staging/EA-023.md",
        "EA-023-R5-LEGACY-MIGRATION-20261008-R1"
      ],
      "scope": "R9/R10 canonical readback後のProduction生成時body identity。",
      "provenance_status": "CANONICAL_READBACK_BODY_HASH_MATCH"
    }
  ],
  "research_sections": [
    {
      "heading": "Public claim",
      "text": "ベンダーロックイン低減は「完全なvendor neutrality」ではなく、lock-in surfaceを小さく可視化し、交換時に再構築する範囲を限定する設計として扱う。実装原則は PORTABLE CORE + EXPLICIT ADAPTERS + ISOLATED EXTENSIONS + EXTERNALIZED STATE + INDEPENDENT EVAL/AUDIT。"
    },
    {
      "heading": "Six boundaries",
      "text": "A. CANONICAL DATA / SOURCE OF TRUTH: 文書、設定、prompt source、evaluation fixture、policyをprovider chat/memoryだけに置かず独立管理。\nB. APPLICATION STATE: conversation-derived state、checkpoint、job state、long-term memoryをapplication-owned storeへ分離し、export schema/versionを持つ。\nC. MODEL ACCESS: provider native clientをbusiness logicへ直書きせずadapter/gateway境界を置く。provider-specific extensionは明示的に隔離する。\nD. TOOL / CONTEXT INTEGRATION: MCP等のopen protocolを境界としてtool implementationとmodel/agent hostを疎結合化する。\nE. AGENT INTEROP: agent間delegation contractはA2A等のopen protocolへ寄せ、内部frameworkを外部契約に漏らさない。\nF. OBSERVABILITY / EVAL: provider固有dashboardだけでなくOpenTelemetry等の共通trace/metric schemaと独立eval fixtureを保持する。"
    },
    {
      "heading": "Reference Boundary",
      "text": "1. provider-neutral domain request/result schema\n2. provider adapter interface + provider-specific extension namespace\n3. MCP tool/context gateway boundary\n4. optional A2A delegation boundary\n5. application-owned state/checkpoint interface\n6. canonical source repository outside provider conversational memory\n7. provider-neutral eval fixture\n8. OpenTelemetry-compatible audit/trace export\n9. dependency/version inventory and exit manifest"
    },
    {
      "heading": "Failure envelope",
      "text": "MCP/A2A/API abstractionはinterface couplingを減らし得るが、behavioral parity、provider feature parity、tenant IAM、state portability、billing/residency、contractual export rightsを保証しない。open standardはmaintenance-freeではない。gateway自体のlock-in、framework固有state schema、MCP feature subset、telemetry privacyを別途管理する。provider固有機能は禁止せずadapter/extension boundaryへ隔離する。"
    },
    {
      "heading": "Availability gates",
      "text": "protocol/SDK revision、feature subset、transport/auth、plan/region、provider/model passthrough、state schema/encryption/export、telemetry schema/content policy、IAM/SSO、residency、contract/export/egress rights。"
    },
    {
      "heading": "TEST_PROFILE",
      "text": "UNEXECUTED。同一非機密fixtureでprovider A/B、MCP host差、A2A delegation、same-framework restoreとcross-framework portabilityを分離評価する。"
    },
    {
      "heading": "OPEN_UNKNOWN",
      "text": "主要gatewayのfeature-parity matrixと独立failure report、A2A v1.0 SDK横断互換性、主要hostのMCP 2026-07-28 subset、cross-framework checkpoint portability、organization固有export/egress/termination条件。推測で閉じない。"
    }
  ],
  "human_url": "/tools/ea-023",
  "markdown_url": "/agent/article.md?path=%2Ftools%2Fea-023",
  "json_url": "/agent/article.json?path=%2Ftools%2Fea-023"
}