{
  "format": "agent-article-v0",
  "article_id": "EA-160",
  "canonical_url": "/tools/ea-160-openapi-function-calling",
  "page_type": "reference",
  "claim_ids": [],
  "evidence_ids": [
    "EVD-EA-160-URL-9AE4B1811AB6",
    "EVD-EA-160-URL-90F2BF11E4FB",
    "EVD-EA-160-URL-529619EE7996",
    "EA-160-R11-RESEARCH",
    "EA-160-R11-WEB-READBACK"
  ],
  "unknown_ids": [
    "EA-160-UNKNOWN-01",
    "EA-160-UNKNOWN-CURRENTNESS"
  ],
  "operational_object_ids": [],
  "provider": [
    "OpenAI"
  ],
  "models": [],
  "plans": [],
  "surfaces": [],
  "regions": [],
  "current_status": "UNKNOWN",
  "observation_status": "SPEC_ONLY",
  "freshness": "UNKNOWN",
  "last_verified": null,
  "supersedes": [],
  "superseded_by": [],
  "provenance": [
    "COMM-047-EA0160",
    "SRC-EA-160-URL-9AE4B1811AB6",
    "SRC-EA-160-URL-90F2BF11E4FB",
    "SRC-EA-160-URL-529619EE7996",
    "WEBBODY-EA0160-R8-A32E4554"
  ],
  "article_sources": [
    {
      "id": "EVD-EA-160-URL-9AE4B1811AB6",
      "evidence_class": "RESEARCH",
      "title": "[S1] SOURCE_CLASS: official_spec | EXACT_TITLE: OpenAPI Specification v3.1.0 | AUTHOR_ORG: OpenAPI Initiative / Linux Foundation | CANONICAL_URL:",
      "href": "https://spec.openapis.org/oas/v3.1.0.html",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-160-URL-9AE4B1811AB6"
      ],
      "supporting_locators": [
        "EVIDENCE_TABLE",
        "S1",
        "[S1] SOURCE_CLASS: official_spec | EXACT_TITLE: OpenAPI Specification v3.1.0 | AUTHOR_ORG: OpenAPI Initiative / Linux Foundation | CANONICAL_URL: https://spec.openapis.org/oas/v3.1.0.html"
      ],
      "scope": "EVIDENCE_TABLE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EVD-EA-160-URL-90F2BF11E4FB",
      "evidence_class": "RESEARCH",
      "title": "[S2] SOURCE_CLASS: official_provider_docs | EXACT_TITLE: Function calling | AUTHOR_ORG: OpenAI | CANONICAL_URL:",
      "href": "https://developers.openai.com/api/docs/guides/function-calling",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-160-URL-90F2BF11E4FB"
      ],
      "supporting_locators": [
        "EVIDENCE_TABLE",
        "S2",
        "[S2] SOURCE_CLASS: official_provider_docs | EXACT_TITLE: Function calling | AUTHOR_ORG: OpenAI | CANONICAL_URL: https://developers.openai.com/api/docs/guides/function-calling"
      ],
      "scope": "EVIDENCE_TABLE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EVD-EA-160-URL-529619EE7996",
      "evidence_class": "RESEARCH",
      "title": "[S3] SOURCE_CLASS: official_spec | EXACT_TITLE: OpenAPI Specification v3.2.1 listing/current-version metadata | AUTHOR_ORG: OpenAPI Initiative / Linux Foundation | CANONICAL_URL:",
      "href": "https://spec.openapis.org/oas/latest.html",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-160-URL-529619EE7996"
      ],
      "supporting_locators": [
        "EVIDENCE_TABLE",
        "S3",
        "[S3] SOURCE_CLASS: official_spec | EXACT_TITLE: OpenAPI Specification v3.2.1 listing/current-version metadata | AUTHOR_ORG: OpenAPI Initiative / Linux Foundation | CANONICAL_URL: https://spec.openapis.org/oas/latest.html"
      ],
      "scope": "EVIDENCE_TABLE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EA-160-R11-RESEARCH",
      "evidence_class": "RESEARCH",
      "title": "EA-160 監査済みresearch / canonical revision binding",
      "supports": [
        "1. ESTABLISHED [S1 support]: OAS 3.1.0 is a programming-language-agnostic interface description for HTTP APIs. Its stated purpose is to let humans and computers discover and understand service capabilities without source code, extra documentation, or network inspection.\n2. ESTABLISHED [S2 support]: OpenAI's current documentation defines function calling/tool calling as a way for its models to interface with external systems and application-provided data/actions. Function tools are defined by JSON Schema; the application registers/handles the function and action request.\n3. ESTABLISHED [S2 support]: The provider page documents tool-choice controls including auto, required, forced specific function, and allowed tools; it also records that Chat Completions remains non-strict by default unless strict false is explicitly set in the relevant path.\n4. INFERENCE [S1+S2]: OpenAPI can be an input or mapping source for an HTTP tool catalog, but OAS is an API description while function calling is a model/provider runtime contract. They are not interchangeable and the mapping requires operation selection, schema adaptation, auth, result handling, and policy."
      ],
      "limit": "canonical監査・revision bindingの存在を示す。外部ソースcurrentnessが本文またはcontrol-planeで確定していない場合は、currentnessをUNKNOWNのまま保持する。",
      "origin_class": "AUDITED_CANONICAL_RESEARCH_PACKET",
      "source_or_experiment_ids": [
        "COMM-047-EA0160"
      ],
      "supporting_locators": [
        "COMM-047-EA0160",
        "EA-160-R5-LEGACY-MIGRATION-20261008-R1",
        "content/staging/EA-160.md"
      ],
      "scope": "監査済みEA本文・canonical revision・既存Source Graph relationの範囲。欠損currentnessは推測で閉じない。",
      "provenance_status": "AUDIT_PASS_CANONICAL_BINDING"
    },
    {
      "id": "EA-160-R11-WEB-READBACK",
      "evidence_class": "IMPL",
      "title": "EA-160 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-EA0160-R8-A32E4554"
      ],
      "supporting_locators": [
        "WEBBODY-EA0160-R8-A32E4554",
        "content/staging/EA-160.md",
        "EA-160-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": "The future update must compare deterministic HTTP interface description and provider-specific model tool calling without calling them the same protocol. This boundary affects schema validation, allowlists, authorization, and audit."
    },
    {
      "heading": "SCOPE_ROUTING",
      "text": "Enterprise AI Core / interoperability / implementation / provider mapping / governance / security"
    },
    {
      "heading": "CLAIM_OR_RESEARCH_QUESTION",
      "text": "What is established by OpenAPI 3.1 for HTTP API description, what is established by the current OpenAI function-calling documentation for model-to-application tool requests, and where is the interoperability claim only an inference?"
    },
    {
      "heading": "EVIDENCE_TABLE",
      "text": "[S1] SOURCE_CLASS: official_spec | EXACT_TITLE: OpenAPI Specification v3.1.0 | AUTHOR_ORG: OpenAPI Initiative / Linux Foundation | CANONICAL_URL: https://spec.openapis.org/oas/v3.1.0.html | PUBLICATION_UPDATE_ACCESS: v3.1.0 page; accessed 2026-09-14 00:10 JST | VERSION_RELEASE_TAG: v3.1.0; page lists newer versions including v3.2.1, so this is a pinned baseline | SUPPORTING_LOCATOR: metadata lines 6-38; What is OAS lines 41-43; Path/Operation and security examples in the recorded web capture | EVIDENCE_LABEL: VERIFIED_SPEC | RELATION: support for API-description semantics; context for version drift.\n[S2] SOURCE_CLASS: official_provider_docs | EXACT_TITLE: Function calling | AUTHOR_ORG: OpenAI | CANONICAL_URL: https://developers.openai.com/api/docs/guides/function-calling | PUBLICATION_UPDATE_ACCESS: current docs accessed 2026-09-14 00:10 JST; original platform URL redirects here | VERSION_RELEASE_TAG: current OpenAI API documentation; page-specific API/model availability, no immutable API revision exposed in capture | SUPPORTING_LOCATOR: lines 838-854 for function/tool purpose and JSON-schema-defined function tools; lines 3554-3559 for tool_choice modes; line 3592 for non-strict default note | EVIDENCE_LABEL: VERIFIED_SPEC + PRODUCT_VOLATILE | RELATION: support for provider-specific function-calling behavior; limit for cross-provider generalization.\n[S3] SOURCE_CLASS: official_spec | EXACT_TITLE: OpenAPI Specification v3.2.1 listing/current-version metadata | AUTHOR_ORG: OpenAPI Initiative / Linux Foundation | CANONICAL_URL: https://spec.openapis.org/oas/latest.html | PUBLICATION_UPDATE_ACCESS: current metadata accessed 2026-09-14 00:10 JST | VERSION_RELEASE_TAG: latest page is mutable; current-version pointer only | SUPPORTING_LOCATOR: v3.1.0 metadata lines 6-11 and 22-27 explicitly identify latest published version/current version list; use the fixed v3.1.0 URL for normative citation until the target version is separately re-read | EVIDENCE_LABEL: PRODUCT_VOLATILE + CONTEXT | RELATION: version-drift context; not a claim about function calling."
    },
    {
      "heading": "FINDINGS",
      "text": "1. ESTABLISHED [S1 support]: OAS 3.1.0 is a programming-language-agnostic interface description for HTTP APIs. Its stated purpose is to let humans and computers discover and understand service capabilities without source code, extra documentation, or network inspection.\n2. ESTABLISHED [S2 support]: OpenAI's current documentation defines function calling/tool calling as a way for its models to interface with external systems and application-provided data/actions. Function tools are defined by JSON Schema; the application registers/handles the function and action request.\n3. ESTABLISHED [S2 support]: The provider page documents tool-choice controls including auto, required, forced specific function, and allowed tools; it also records that Chat Completions remains non-strict by default unless strict false is explicitly set in the relevant path.\n4. INFERENCE [S1+S2]: OpenAPI can be an input or mapping source for an HTTP tool catalog, but OAS is an API description while function calling is a model/provider runtime contract. They are not interchangeable and the mapping requires operation selection, schema adaptation, auth, result handling, and policy."
    },
    {
      "heading": "LIMITS / COUNTEREVIDENCE / FAILURE ENVELOPE",
      "text": "OAS describes interface structure but does not grant credentials, prove endpoint availability, authorize side effects, guarantee semantic correctness, or define a model's tool-selection behavior. OpenAI's page is provider-specific and volatile; its tool-choice/strict semantics cannot be generalized to every model or API. JSON Schema validation does not prove business invariants, safe arguments, idempotency, or human approval. No provider-crossing mapping benchmark was adopted."
    },
    {
      "heading": "AVAILABILITY_GATES",
      "text": "OAS version and API revision; operationId/HTTP method/path; servers/base URL; request/response schema and serialization; security schemes and actual issuer/audience/scope; model/provider/API endpoint; function name/description/JSON Schema; strict/tool_choice setting; tool allowlist; argument/result validator; confirmation and side-effect policy; idempotency/rollback; rate/size/timeouts; audit and data residency."
    },
    {
      "heading": "IMPLEMENTATION_STATE",
      "text": "Evidence-only desk research. No API endpoint, model call, function call, credential, or side effect was executed."
    },
    {
      "heading": "BENCHMARK_OR_EVAL",
      "text": "No schema-to-tool transpilation, invalid-argument, tool-choice, cross-provider, latency, or business-outcome evaluation was run."
    },
    {
      "heading": "SECURITY / PRIVACY / AUDIT / COST / OPERABILITY",
      "text": "OAS security objects are declarations, not proof of a configured authorization server. Tool schemas and descriptions can expose sensitive capability metadata. Validate model arguments and returned data outside the model; log model/provider/version, selected operation, arguments hash/redaction, authorization decision, execution result, retries, and human approval. Cost/operability need model tokens plus downstream call, retry, timeout, and human-review accounting; not measured."
    },
    {
      "heading": "SAFE_WORDING_FOR_FUTURE_BOOK",
      "text": "「OpenAPI 3.1.0はHTTP APIの機械可読なインターフェース記述であり、function callingはproviderのモデルがアプリケーションへ外部処理の呼出しを要求する実行境界である。OpenAPIをfunction toolへ写像することは可能な設計選択だが、版・operation・schema・認証・実行結果・side effect policyを別途固定し、同一仕様とは扱わない。」"
    },
    {
      "heading": "UPDATE_WORK_HANDOFF",
      "text": "Future update Work should build a pinned OAS-to-tool mapping TEST_PROFILE: safe read-only operation, invalid arguments, schema strict/non-strict, forced/allowed tool selection, auth failure, timeout/retry, duplicate execution, human approval, redaction, audit, and rollback. Re-read provider docs at publication time and compare at least one non-OpenAI implementation before cross-provider wording."
    },
    {
      "heading": "OPEN_UNKNOWN",
      "text": "current OAS latest normative version; provider-neutral function-calling semantics; schema dialect compatibility; tool-result contract; model selection/error behavior; API auth/audience mapping; cross-provider conformance; prompt-injection/tool-description attacks; cost and production failure rates."
    },
    {
      "heading": "STOP_CONDITION",
      "text": "Do not call OpenAPI a model protocol, do not call function calling deterministic execution, and do not promote one provider's current docs into a universal guarantee. Do not claim schema validity equals authorization or business correctness.\nUNIT_CLOSE_STATUS: INDIVIDUAL_BOUNDED_CLOSE / EVIDENCE_RECORDED / UNKNOWN_PRESERVED"
    },
    {
      "heading": "EVIDENCE PACKET",
      "text": "---"
    }
  ],
  "human_url": "/tools/ea-160-openapi-function-calling",
  "markdown_url": "/agent/article.md?path=%2Ftools%2Fea-160-openapi-function-calling",
  "json_url": "/agent/article.json?path=%2Ftools%2Fea-160-openapi-function-calling"
}