{
  "schema": "kallipolis.resource-quality.v1",
  "id": "resource.platform.spring-ai-tools",
  "version": "1.0.0",
  "title": "Spring AI tool-calling boundary",
  "summary": "Official-source capability, execution, authorization, and deployment boundaries for Spring AI tool-calling.",
  "content": {
    "kind": "implementation-checklist",
    "facts": [
      {
        "id": "fact.spring-ai.tools.capability",
        "statement": "Spring AI turns annotated methods and ToolCallback implementations into tool definitions available to supported chat models.",
        "normativeLevel": "informative",
        "sourceIds": [
          "source.spring-ai.tools"
        ]
      },
      {
        "id": "fact.spring-ai.tools.execution",
        "statement": "The chat client receives a model tool request, invokes application code through registered callbacks, and returns results to the model.",
        "normativeLevel": "informative",
        "sourceIds": [
          "source.spring-ai.tools"
        ]
      },
      {
        "id": "fact.spring-ai.tools.authorization",
        "statement": "Bean scope, dependencies, credentials, observation, exception handling, and approval for state-changing methods remain host responsibilities.",
        "normativeLevel": "informative",
        "sourceIds": [
          "source.spring-ai.tools"
        ]
      },
      {
        "id": "fact.spring-ai.tools.boundary",
        "statement": "A ToolCallback schema does not prove model reliability, transaction authorization, external success, factual output, or a running Spring application.",
        "normativeLevel": "informative",
        "sourceIds": [
          "source.spring-ai.tools"
        ]
      }
    ]
  },
  "language": "en",
  "category": "platform-integration",
  "state": "prepared",
  "canonicalUrl": "https://platoskallipolis.com/resources/platform-integration/spring-ai-tools.json",
  "contentHash": "sha256:b27df1822eced1e7f3424d88c1f5a15f17691d8236af6e3fb792eb21a508846c",
  "owner": {
    "id": "platos-kallipolis",
    "name": "Plato's Kallipolis",
    "type": "organization",
    "accountabilityUrl": "https://platoskallipolis.com/about"
  },
  "access": {
    "mode": "public",
    "url": "https://platoskallipolis.com/resources/platform-integration/spring-ai-tools.json",
    "authentication": "none",
    "robotsAllowed": true
  },
  "provenance": {
    "method": "primary-source",
    "sources": [
      {
        "id": "source.spring-ai.tools",
        "url": "https://docs.spring.io/spring-ai/reference/api/tools.html",
        "title": "Spring AI Tool Calling",
        "publisher": "Spring",
        "observedAt": "2026-08-28T09:25:24Z"
      }
    ]
  },
  "observedAt": "2026-08-28T09:25:24Z",
  "freshness": {
    "policy": "max-age",
    "state": "current",
    "nextReviewAt": "2026-09-04T09:25:24Z",
    "maxAgeSeconds": 604800
  },
  "license": {
    "id": "source-terms-apply",
    "url": "https://github.com/spring-projects/spring-ai/blob/main/LICENSE.txt",
    "redistributionAllowed": false
  },
  "evidence": [
    {
      "id": "evidence.spring-ai.tools",
      "type": "source-claim",
      "url": "https://docs.spring.io/spring-ai/reference/api/tools.html",
      "observedAt": "2026-08-28T09:25:24Z"
    }
  ]
}
