{
  "tool": {
    "name": "Ollama",
    "repo": "https://github.com/ollama/ollama",
    "version_at_verification": "v0.30.11",
    "version_date": "2026-06-25",
    "last_verified": "2026-06-28",
    "dossier_version": "2026-06-28",
    "decay_class": "volatile"
  },
  "scorecard": {
    "claims_sampled": 11,
    "as_labeled": 6,
    "partial": 4,
    "not_as_labeled": 1,
    "not_implemented": 0,
    "open_deltas": 6,
    "verified_closed": 0,
    "closed_partial": 1,
    "closure_trend": "context defaults moved materially across releases (vendor-side, partially closing OL-02); tool-calling deltas show no TD-re-verified closures"
  },
  "verdict": "Ollama's simplicity, model-library, platform, and context-default documentation claims hold as labeled, but its tool-calling label is contradicted where it matters for agents — documented streaming tool support drops tool_calls chunks silently in production, and the get-running-in-minutes agent framing inherits a default context below the vendor's own agentic guidance on common hardware.",
  "claims": [
    {
      "id": "1",
      "claimed": "The easiest way to build with open models",
      "claimed_source_url": "https://ollama.com",
      "observed": "Source-reviewed: dominant local LLM runtime; every major local-first agent framework in the corpus (Goose, Continue, AnythingLLM) treats Ollama as the default inference backend; onboarding is a single `ollama` command; cold start is 18-41% faster than vLLM on 7B models. No material contradiction for the single-user local use the label fronts.",
      "status": "as_labeled",
      "evidence": [
        "https://ollama.com",
        "https://github.com/ollama/ollama"
      ]
    },
    {
      "id": "2",
      "claimed": "Get up and running with OpenClaw, Claude Code, and more in minutes using open models",
      "claimed_source_url": "https://ollama.com",
      "observed": "Release-verified: `ollama launch` bootstraps full agent toolchains in minutes (Hermes since v0.21.0, Cline CLI auto-install since v0.30.2, Hermes Desktop since v0.30.7). Materially qualified: launched agents inherit the VRAM-tiered context default — 4,096 tokens on <24 GiB hardware against the vendor's own \"at least 64000 tokens\" guidance for agents — and truncation is silent, so multi-turn tool calling degrades without an error. The vendor patches this per-integration (v0.15.5 sets limits for `ollama launch opencode`; v0.18.0 fixes compaction for `ollama launch claude`) rather than runtime-wide.",
      "status": "partial",
      "evidence": [
        "https://api.theorydelta.com/published/ollama-silent-tool-call-failures",
        "https://docs.ollama.com/context-length",
        "https://github.com/ollama/ollama/releases/tag/v0.15.5"
      ]
    },
    {
      "id": "3",
      "claimed": "OpenAI compatibility: /v1/chat/completions with chat completions, streaming, JSON mode, vision, and tools",
      "claimed_source_url": "https://docs.ollama.com/api/openai-compatibility",
      "observed": "Docs-reviewed: the endpoint inventory is implemented, and the docs themselves scope out tool-choice parameters and stateful Responses. The streaming+tools combination is contradicted in production: streaming returns empty content with finish_reason \"stop\" in place of tool_calls delta chunks (independently confirmed, OpenClaw/BetterClaw production report, 2026); the working configuration is stream:false.",
      "status": "partial",
      "evidence": [
        "https://api.theorydelta.com/published/ollama-silent-tool-call-failures",
        "https://www.betterclaw.io/blog/openclaw-ollama-guide",
        "https://docs.ollama.com/api/openai-compatibility"
      ]
    },
    {
      "id": "4",
      "verified_at": "2026-07-12",
      "verified_by": "probe-ci",
      "probe": "probes/ollama/claim-4/",
      "claimed": "Tool calling with streaming (documented as a supported pattern with Python and JavaScript examples)",
      "claimed_source_url": "https://docs.ollama.com/capabilities/tool-calling",
      "observed": "Contradicted by production evidence: when streaming is enabled (the default), Ollama returns an empty content chunk with finish_reason \"stop\" instead of tool_calls delta chunks — every tool-dependent agent skill (web search, file ops, shell, MCP dispatch) fails silently, regardless of model quality or context configuration; independently confirmed by the OpenClaw/BetterClaw production report (2026); workaround is stream:false. Re-checked 2026-06-11: the closest upstream issue (#16212, qwen3-coder streaming emits all tool_calls at index 0 with finish_reason \"stop\") was closed the same day it was filed after its reporter marked it opened in error — a re-verification trigger, not a verified fix (OL-03 remains open). UPDATE 2026-06-28 (re-verified on v0.30.11): now backed by three primary GitHub issues — #15497 (root cause: models without a registered streaming parser fall through a legacy path that never sets Function.Index; PR #15467 patched only 8 models), #16279 (MLX backend buffers tool-call output entirely), and #16932 (a tool parameter literally named \"name\" is silently dropped). The bug is path-specific: the /v1 OpenAI-compatible endpoint drops deltas; native /api/chat preserves them.",
      "status": "not_as_labeled",
      "evidence": [
        "https://api.theorydelta.com/published/ollama-silent-tool-call-failures",
        "https://www.betterclaw.io/blog/openclaw-ollama-guide",
        "https://github.com/ollama/ollama/issues/16212",
        "https://github.com/ollama/ollama/issues/15497",
        "https://github.com/ollama/ollama/issues/16932"
      ]
    },
    {
      "id": "5",
      "claimed": "Tool calling as a first-class capability (single-shot handling \"only recommended for models which only return a single tool call\")",
      "claimed_source_url": "https://docs.ollama.com/capabilities/tool-calling",
      "observed": "Holds for capable models in non-streaming mode: native GBNF grammar enforcement since v0.5; Qwen3-14B reaches F1=0.971 tool selection (source-reviewed corpus benchmark). Materially qualified: above ~5-6 active tools qwen3-coder switches from JSON to XML tool-call format and some models stop attempting tool calls entirely — silent, no error signal; tool-calling support is model-dependent on the MLX backend (March 2026 Apple Silicon switch).",
      "status": "partial",
      "evidence": [
        "https://api.theorydelta.com/published/ollama-silent-tool-call-failures",
        "https://docs.ollama.com/capabilities/tool-calling"
      ]
    },
    {
      "id": "6",
      "verified_at": "2026-07-12",
      "verified_by": "probe-ci",
      "probe": "probes/ollama/claim-6/",
      "claimed": "Default context length based on VRAM — \"< 24 GiB VRAM: 4k context, 24-48 GiB VRAM: 32k context, >= 48 GiB VRAM: 256k context\"; agent and coding tasks \"should be set to at least 64000 tokens\"",
      "claimed_source_url": "https://docs.ollama.com/context-length",
      "observed": "As documented — source-confirmed at HEAD 2026-06-11: envconfig/config.go defines OLLAMA_CONTEXT_LENGTH defaulting to 0 with VRAM-based resolution described as \"4k/32k/256k based on VRAM\"; release-verified that v0.15.5 (2026-02-03) introduced the tiers, superseding the historical flat 2,048-then-4,096 defaults (v0.6.7, 2025-04-26). The label is now accurate; the residual gap — the <24 GiB default sits below the vendor's own agent guidance, silently — is tracked as OL-01. UPDATE 2026-06-28: v0.30.9 added an explicit error when a single message exceeds the context window — first progress on OL-01's silent-truncation criterion — but gradual multi-turn accumulation truncation remains silent.",
      "status": "as_labeled",
      "evidence": [
        "https://docs.ollama.com/context-length",
        "https://github.com/ollama/ollama/blob/main/envconfig/config.go",
        "https://github.com/ollama/ollama/releases/tag/v0.15.5"
      ]
    },
    {
      "id": "7",
      "claimed": "Run entirely offline for mission critical work",
      "claimed_source_url": "https://ollama.com",
      "observed": "Holds for local models: local inference requires no external calls, and the Hermes agent integration (`ollama launch hermes`, v0.21.0) is documented as running fully offline with no API keys — release-verified. The offline claim is scoped to local models, which is the configuration the label fronts.",
      "status": "as_labeled",
      "evidence": [
        "https://ollama.com",
        "https://github.com/ollama/ollama/releases"
      ]
    },
    {
      "id": "8",
      "verified_at": "2026-07-12",
      "verified_by": "probe-ci",
      "probe": "probes/ollama/claim-8/",
      "claimed": "Your data stays yours / Your data is never trained on",
      "claimed_source_url": "https://ollama.com",
      "observed": "Structural for local models. Materially qualified since v0.18.0 (2026-03-14, release-verified): \"Ollama's cloud models no longer require downloading via `ollama pull`. Setting `:cloud` as a tag will now automatically connect to cloud models.\" — a cloud-tagged model reference routes the request, and its data, to cloud endpoints without a prior pull step, so deployments that relied on the absent-pull guard for local-only data flow now route externally silently. The never-trained-on assertion is a vendor policy statement, docs-reviewed only and not externally verifiable.",
      "status": "partial",
      "evidence": [
        "https://github.com/ollama/ollama/releases/tag/v0.18.0",
        "https://ollama.com"
      ]
    },
    {
      "id": "9",
      "claimed": "Model library: \"Run and chat with Gemma 4\"; \"See ollama.com/library for the full list.\"",
      "claimed_source_url": "https://github.com/ollama/ollama/blob/main/README.md",
      "observed": "Docs- and release-reviewed: the library carries the major open model families and stays current within days of upstream releases — Gemma 4, the Qwen3 family (including sub-14B tool-capable variants referenced in the vendor's own tool-calling guidance), DeepSeek-OCR (v0.13.0), Nemotron-3-Super (v0.18.0). No material contradiction.",
      "status": "as_labeled",
      "evidence": [
        "https://ollama.com/library",
        "https://github.com/ollama/ollama/blob/main/README.md"
      ]
    },
    {
      "id": "10",
      "claimed": "Platform support: macOS, Windows, Linux, and an official Docker image (ollama/ollama on Docker Hub)",
      "claimed_source_url": "https://github.com/ollama/ollama/blob/main/README.md",
      "observed": "Release-verified active maintenance on every claimed platform: ROCm 7.2.1 update for Linux/AMD (v0.20.8), native Windows configuration-path fixes in the v0.30.x line, Apple Silicon backend actively developed, official Docker image published. Corpus caveat that does not contradict the platform claim: containerized deployments need explicit non-localhost URL configuration across Docker network boundaries.",
      "status": "as_labeled",
      "evidence": [
        "https://github.com/ollama/ollama/blob/main/README.md",
        "https://github.com/ollama/ollama/releases/tag/v0.20.8"
      ]
    },
    {
      "id": "11",
      "claimed": "Ollama has a REST API for running and managing models.",
      "claimed_source_url": "https://github.com/ollama/ollama/blob/main/README.md",
      "observed": "Confirmed: the REST API is the integration surface for the framework ecosystem, and source-reviewed corpus evidence shows API compatibility was maintained across the Apple Silicon MLX backend switch (March 2026) — existing integrations required no code changes.",
      "status": "as_labeled",
      "evidence": [
        "https://github.com/ollama/ollama/blob/main/README.md",
        "https://docs.ollama.com/api"
      ]
    }
  ],
  "deltas": [
    {
      "id": "OL-01",
      "title": "Default context on <24 GiB VRAM hardware (4,096 tokens) is below the vendor's own >=64,000 agentic guidance; truncation remains silent",
      "evidence": [
        "https://docs.ollama.com/context-length",
        "https://github.com/ollama/ollama/blob/main/envconfig/config.go",
        "https://api.theorydelta.com/published/ollama-silent-tool-call-failures",
        "UPDATE 2026-06-28: v0.30.9 errors on single-message context overflow (partial progress); multi-turn accumulation truncation still silent — delta remains open",
        "Re-verified open 2026-06-28 against v0.30.11"
      ],
      "opened": "2026-06-11",
      "status": "open",
      "falsification_criterion": "Default context on <24 GiB VRAM hardware meets the vendor's own agentic guidance (>=64,000 tokens), or context truncation surfaces an explicit warning or error to the caller — TD re-verified on a current release"
    },
    {
      "id": "OL-02",
      "title": "Flat low context default (2,048, later 4,096) silently breaking multi-turn tool calling",
      "description": "the <24 GiB VRAM tier remains 4,096 tokens, below the vendor's own agent guidance; the remainder is tracked as OL-01",
      "evidence": [
        "https://github.com/ollama/ollama/releases/tag/v0.15.5",
        "https://api.theorydelta.com/published/ollama-silent-tool-call-failures"
      ],
      "opened": "2026-03-15",
      "status": "closed_partial",
      "closed_by": "v0.6.7 (2025-04-26) raised the default to 4,096; v0.15.5 (2026-02-03) replaced flat defaults with VRAM tiers (4k/32k/256k) — release-reviewed and source-confirmed at HEAD 2026-06-11"
    },
    {
      "id": "OL-03",
      "title": "Streaming layer returns empty content with finish_reason \"stop\" in place of tool_calls delta chunks — all tool-dependent agent skills fail silently",
      "description": "Re-checked 2026-06-11: vendor docs now document tool calling with streaming, and the closest upstream issue (#16212) was closed \"completed\" the same day it was filed after its reporter marked it opened in error. Both are re-verification triggers, not closures (DC-2); no TD re-verification yet. UPDATE 2026-06-28: root cause confirmed open via #15497 (HTTP 200); PR #15467 patched only 8 models; MLX manifestation #16279 open; bug is path-specific (/v1 drops deltas, /api/chat preserves).",
      "evidence": [
        "https://api.theorydelta.com/published/ollama-silent-tool-call-failures",
        "https://www.betterclaw.io/blog/openclaw-ollama-guide",
        "https://github.com/ollama/ollama/issues/16212",
        "https://github.com/ollama/ollama/issues/15497",
        "https://github.com/ollama/ollama/issues/16279",
        "Re-verified open 2026-06-28 against v0.30.11"
      ],
      "opened": "2026-04",
      "status": "open",
      "falsification_criterion": "An agent receives tool_calls delta chunks (correct incrementing indices, finish_reason \"tool_calls\") over a streaming response in default configuration, with no stream:false workaround — TD re-verified on a current release"
    },
    {
      "id": "OL-04",
      "title": "Above ~5-6 active tools, qwen3-coder switches from JSON to XML tool-call format and some models stop attempting tool calls — silent degradation, no error signal",
      "evidence": [
        "https://api.theorydelta.com/published/ollama-silent-tool-call-failures",
        "Re-verified open 2026-06-28 against v0.30.11"
      ],
      "opened": "2026-03-15",
      "status": "open",
      "falsification_criterion": "qwen3-coder emits parseable JSON tool calls (or Ollama's parser transparently normalizes the XML form) with more than 6 active tools, TD re-verified — or the runtime surfaces an explicit signal when a model abandons tool-call formatting"
    },
    {
      "id": "OL-05",
      "title": "`:cloud` tag references route to cloud endpoints without a prior `ollama pull` (v0.18.0) — local-only deployments can route data externally silently",
      "evidence": [
        "https://github.com/ollama/ollama/releases/tag/v0.18.0",
        "Re-verified open 2026-06-28 against v0.30.11"
      ],
      "opened": "2026-03-16",
      "status": "open",
      "falsification_criterion": "Referencing a cloud-tagged model from a configuration that has never pulled it requires an explicit opt-in, or fails loudly before any external request is made — TD re-verified"
    },
    {
      "id": "OL-06",
      "title": "Chat template bugs corrupt tool schemas passed via /api/chat before inference — malformed tool definitions upstream of token sampling, unaffected by GBNF enforcement",
      "evidence": [
        "https://api.theorydelta.com/published/ollama-silent-tool-call-failures",
        "Re-verified open 2026-06-28 against v0.30.11"
      ],
      "opened": "2026-04-21",
      "status": "open",
      "falsification_criterion": "Tool schemas pass through /api/chat chat templates intact for the affected models — TD re-verified on a current release"
    },
    {
      "id": "OL-07",
      "title": "Tool parameter literally named \"name\" is silently dropped (empty content, finish_reason stop) — Mistral-format models, v0.30.10 (#16932)",
      "evidence": [
        "https://github.com/ollama/ollama/issues/16932"
      ],
      "opened": "2026-06-26",
      "status": "open",
      "falsification_criterion": "A tool whose function schema includes a parameter named 'name' is invoked normally (tool_calls returned) rather than silently dropped, TD re-verified on a current release"
    }
  ],
  "methodology": {
    "sampling_rule_ref": "Label-check methodology (Method §2, D0086) — material-claims rule: a claim is sampled if it appears on the product's own label and would plausibly influence an adoption decision. Sampling frame: ollama.com homepage, the ollama/ollama README, docs.ollama.com capability pages (tool calling, OpenAI compatibility, context length), and release notes v0.6.7-v0.30.7, captured 2026-06-11. The audited product is the local runtime; cloud subscription capacity and pricing claims (Pro/Max tiers) are out of frame. 11 material claims found; all sampled.",
    "verification_depth": "source-reviewed",
    "verification_statement": "Evidence is drawn from Ollama's source at HEAD (envconfig/config.go), official docs, release notes, the issue tracker, and a third-party production report; context-length defaults and the streaming-bug issue state were re-checked against source and docs on 2026-06-11 and again on 2026-06-28 (v0.30.11). Theory Delta has not executed Ollama's tool-calling paths in its own environment for this dossier. Star counts (111K+ reported 2026-05-26) are treated as unreliable and excluded from assessment. Decay class: volatile (daily release cadence observed).",
    "backing_confidence": "empirical",
    "executed_by_td": false,
    "strongest_case_against": "Ollama ships daily; the streaming tool_calls failure rests on one third-party production report whose closest upstream issue was retracted by its own reporter, and the vendor's docs now document streaming tool calling — TD re-verification could move claim 4 to partial or close OL-03. The context-default delta rests on the vendor's published VRAM tiers; the actual hardware-detection behavior was not executed. The MLX backend switch (March 2026) may have changed streaming behavior on Apple Silicon in either direction."
  },
  "provenance": {
    "source_block": "theorydelta-blocks/blocks/ollama-local-inference.md (confidence: empirical, validated 2026-06-06)",
    "source_blocks": [
      "theorydelta-blocks/blocks/ollama-local-inference.md"
    ],
    "additional_sources": [
      "published/ollama-silent-tool-call-failures.md"
    ],
    "derived_date": "2026-06-28"
  }
}