---
title: "TYPO3 LLM extension"
manual: "TYPO3 LLM Extension"
version: "0.35"
permalink: "https://docs.typo3.org/permalink/netresearch/nr-llm:start@0.35"
source: "Index.rst"
start: true
modified: "2026-09-16T22:09:16+00:00"
---

# TYPO3 LLM extension

![1](Images/netresearch-underline.svg)

---

-   *Extension key:* nr_llm
-   *Package name:* [`netresearch/nr-llm`](https://packagist.org/packages/netresearch/nr-llm)
-   *Version:* release
-   *Language:* en
-   *Author:* Netresearch DTT GmbH
-   *License:*

    This document is published under the
    [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) license.

-   *Rendered:* today

---

Shared AI foundation for TYPO3. Configure LLM
providers once — every AI extension uses them.
Supports OpenAI, Anthropic Claude, Google Gemini,
Ollama, and more.

![LLM backend module dashboard showing provider and model management, AI wizard buttons, and quick-reference code snippets](Images/backend-dashboard.png)

---

## Getting started

**📘 Introduction**

Learn what nr-llm is, which providers are
supported, and what problems it solves.

[Read more](https://docs.typo3.org/permalink/netresearch/nr-llm:introduction@0.35)

**📦 Installation**

Install nr-llm via Composer and activate it.

[Read more](https://docs.typo3.org/permalink/netresearch/nr-llm:quickstart@0.35)

---

## For administrators

Set up and manage AI providers, models, and
configurations through the TYPO3 backend module.

**🛠️ Administration guide**

Step-by-step: add providers, fetch models,
create configurations and tasks. Includes
screenshots of every screen.

[Read more](https://docs.typo3.org/permalink/netresearch/nr-llm:administration@0.35)

**✨ AI-powered wizards**

Setup wizard, configuration wizard, and
task wizard — let AI generate your config
from a plain-language description.

[Read more](https://docs.typo3.org/permalink/netresearch/nr-llm:administration-wizards@0.35)

**📋 Configuration reference**

Complete field reference for providers,
models, configurations, TypoScript settings,
security, and caching.

[Read more](https://docs.typo3.org/permalink/netresearch/nr-llm:configuration@0.35)

**🔐 Permissions & editor access**

Grant editors exactly two capabilities —
run prepared tasks and approve suspended
runs — through the dedicated AI Tasks
module. Nothing is open by default.

[Read more](https://docs.typo3.org/permalink/netresearch/nr-llm:administration-permissions@0.35)

---

## For developers

Build your TYPO3 extension on nr-llm — three lines
of dependency injection, no API key handling.

**🚀 Integration guide**

Step-by-step tutorial: add AI capabilities
to your extension in five minutes.

[Read more](https://docs.typo3.org/permalink/netresearch/nr-llm:integration-guide@0.35)

**💻 Developer guide**

LlmServiceManager API, streaming, tool
calling, and custom providers.

[Read more](https://docs.typo3.org/permalink/netresearch/nr-llm:developer@0.35)

**⚙️ Feature services**

Translation, vision, embeddings, and
completion — ready to inject and use.

[Read more](https://docs.typo3.org/permalink/netresearch/nr-llm:feature-services@0.35)

**📚 API reference**

Complete class and method reference for
all public services and response objects —
with a documented `@api` stability
promise, frozen in a snapshot test.

[Read more](https://docs.typo3.org/permalink/netresearch/nr-llm:api-reference@0.35)

**🏗️ Architecture**

Three-tier configuration hierarchy,
provider abstraction, and design decisions.

[Read more](https://docs.typo3.org/permalink/netresearch/nr-llm:architecture@0.35)

**✅ Testing**

Test infrastructure, mocking LLM services,
and CI configuration.

[Read more](https://docs.typo3.org/permalink/netresearch/nr-llm:testing@0.35)

---

**\[n\] A Netresearch extension**

![1](Images/netresearch-underline.svg)
Professional TYPO3 development, AI integration,
and enterprise consulting since 2002.

[netresearch.de](https://www.netresearch.de)

---

**Table of contents**

-   [Introduction](https://docs.typo3.org/permalink/netresearch/nr-llm:introduction-1@0.35)
-   [Installation](https://docs.typo3.org/permalink/netresearch/nr-llm:installation-1@0.35)
-   [Administration](https://docs.typo3.org/permalink/netresearch/nr-llm:administration-1@0.35)
    -   [Managing providers](https://docs.typo3.org/permalink/netresearch/nr-llm:managing-providers@0.35)
    -   [Managing models](https://docs.typo3.org/permalink/netresearch/nr-llm:managing-models@0.35)
    -   [Managing configurations](https://docs.typo3.org/permalink/netresearch/nr-llm:managing-configurations@0.35)
    -   [Managing tasks](https://docs.typo3.org/permalink/netresearch/nr-llm:managing-tasks@0.35)
    -   [Managing prompt snippets](https://docs.typo3.org/permalink/netresearch/nr-llm:managing-prompt-snippets@0.35)
    -   [Get Started: use-case packs](https://docs.typo3.org/permalink/netresearch/nr-llm:get-started-use-case-packs@0.35)
    -   [Managing skills](https://docs.typo3.org/permalink/netresearch/nr-llm:managing-skills@0.35)
    -   [Running tools](https://docs.typo3.org/permalink/netresearch/nr-llm:running-tools@0.35)
    -   [MCP servers](https://docs.typo3.org/permalink/netresearch/nr-llm:mcp-servers@0.35)
    -   [AI-powered wizards](https://docs.typo3.org/permalink/netresearch/nr-llm:ai-powered-wizards@0.35)
    -   [Per-user AI budgets](https://docs.typo3.org/permalink/netresearch/nr-llm:per-user-ai-budgets@0.35)
    -   [Backend user permissions](https://docs.typo3.org/permalink/netresearch/nr-llm:backend-user-permissions@0.35)
    -   [Verifying the specialized services](https://docs.typo3.org/permalink/netresearch/nr-llm:verifying-the-specialized-services@0.35)
    -   [Usage analytics](https://docs.typo3.org/permalink/netresearch/nr-llm:usage-analytics@0.35)
    -   [Agent runs](https://docs.typo3.org/permalink/netresearch/nr-llm:agent-runs@0.35)
    -   [Data retention & purge](https://docs.typo3.org/permalink/netresearch/nr-llm:data-retention-purge@0.35)
    -   [Effective policy](https://docs.typo3.org/permalink/netresearch/nr-llm:effective-policy@0.35)
-   [Configuration reference](https://docs.typo3.org/permalink/netresearch/nr-llm:configuration-reference@0.35)
    -   [Provider fields](https://docs.typo3.org/permalink/netresearch/nr-llm:provider-fields@0.35)
    -   [Model fields](https://docs.typo3.org/permalink/netresearch/nr-llm:model-fields@0.35)
    -   [Configuration field reference](https://docs.typo3.org/permalink/netresearch/nr-llm:configuration-field-reference@0.35)
    -   [Task fields](https://docs.typo3.org/permalink/netresearch/nr-llm:task-fields@0.35)
    -   [Settings](https://docs.typo3.org/permalink/netresearch/nr-llm:settings@0.35)
-   [Developer guide](https://docs.typo3.org/permalink/netresearch/nr-llm:developer-guide@0.35)
    -   [Streaming support](https://docs.typo3.org/permalink/netresearch/nr-llm:streaming-support@0.35)
    -   [Tool/function calling](https://docs.typo3.org/permalink/netresearch/nr-llm:tool-function-calling@0.35)
    -   [Creating custom providers](https://docs.typo3.org/permalink/netresearch/nr-llm:creating-custom-providers@0.35)
    -   [Registering a provider](https://docs.typo3.org/permalink/netresearch/nr-llm:registering-a-provider@0.35)
    -   [Fallback chain](https://docs.typo3.org/permalink/netresearch/nr-llm:fallback-chain@0.35)
    -   [Configuration presets](https://docs.typo3.org/permalink/netresearch/nr-llm:configuration-presets@0.35)
    -   [Quality evaluation](https://docs.typo3.org/permalink/netresearch/nr-llm:quality-evaluation@0.35)
    -   [Build your extension on nr-llm](https://docs.typo3.org/permalink/netresearch/nr-llm:build-your-extension-on-nr-llm@0.35)
    -   [Protecting anonymous LLM-cost-bearing endpoints](https://docs.typo3.org/permalink/netresearch/nr-llm:protecting-anonymous-llm-cost-bearing-endpoints@0.35)
    -   [Rendering LLM Markdown server-side safely](https://docs.typo3.org/permalink/netresearch/nr-llm:rendering-llm-markdown-server-side-safely@0.35)
    -   [Feature services](https://docs.typo3.org/permalink/netresearch/nr-llm:feature-services-1@0.35)
-   [API reference](https://docs.typo3.org/permalink/netresearch/nr-llm:api-reference-1@0.35)
    -   [API stability](https://docs.typo3.org/permalink/netresearch/nr-llm:api-stability-1@0.35)
    -   [Deprecation and removal policy](https://docs.typo3.org/permalink/netresearch/nr-llm:deprecation-and-removal-policy@0.35)
    -   [Support matrix](https://docs.typo3.org/permalink/netresearch/nr-llm:support-matrix@0.35)
    -   [LlmServiceManager](https://docs.typo3.org/permalink/netresearch/nr-llm:llmservicemanager@0.35)
    -   [CompletionService](https://docs.typo3.org/permalink/netresearch/nr-llm:completionservice@0.35)
    -   [EmbeddingService](https://docs.typo3.org/permalink/netresearch/nr-llm:embeddingservice@0.35)
    -   [VisionService](https://docs.typo3.org/permalink/netresearch/nr-llm:visionservice@0.35)
    -   [DocumentAnalysisService](https://docs.typo3.org/permalink/netresearch/nr-llm:documentanalysisservice@0.35)
    -   [TranslationService](https://docs.typo3.org/permalink/netresearch/nr-llm:translationservice@0.35)
    -   [ToolCallingService](https://docs.typo3.org/permalink/netresearch/nr-llm:toolcallingservice@0.35)
    -   [KeywordSearch](https://docs.typo3.org/permalink/netresearch/nr-llm:keywordsearch@0.35)
    -   [ReciprocalRankFusion](https://docs.typo3.org/permalink/netresearch/nr-llm:reciprocalrankfusion@0.35)
    -   [Reranker](https://docs.typo3.org/permalink/netresearch/nr-llm:reranker@0.35)
    -   [Response objects](https://docs.typo3.org/permalink/netresearch/nr-llm:response-objects@0.35)
    -   [Option classes](https://docs.typo3.org/permalink/netresearch/nr-llm:option-classes@0.35)
    -   [Provider interface](https://docs.typo3.org/permalink/netresearch/nr-llm:provider-interface@0.35)
    -   [Events](https://docs.typo3.org/permalink/netresearch/nr-llm:events@0.35)
    -   [Exceptions](https://docs.typo3.org/permalink/netresearch/nr-llm:exceptions@0.35)
-   [Architecture](https://docs.typo3.org/permalink/netresearch/nr-llm:architecture-1@0.35)
-   [Testing guide](https://docs.typo3.org/permalink/netresearch/nr-llm:testing-guide@0.35)
    -   [Unit testing](https://docs.typo3.org/permalink/netresearch/nr-llm:unit-testing@0.35)
    -   [Functional testing](https://docs.typo3.org/permalink/netresearch/nr-llm:functional-testing@0.35)
    -   [E2E testing](https://docs.typo3.org/permalink/netresearch/nr-llm:e2e-testing@0.35)
    -   [CI configuration](https://docs.typo3.org/permalink/netresearch/nr-llm:ci-configuration@0.35)
-   [Architecture Decision Records](https://docs.typo3.org/permalink/netresearch/nr-llm:architecture-decision-records-1@0.35)
    -   [ADR-001: Provider Abstraction Layer](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-001-provider-abstraction-layer@0.35)
    -   [ADR-002: Feature Services Architecture](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-002-feature-services-architecture@0.35)
    -   [ADR-003: Typed Response Objects](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-003-typed-response-objects@0.35)
    -   [ADR-004: PSR-14 Event System](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-004-psr-14-event-system@0.35)
    -   [ADR-005: TYPO3 Caching Framework Integration](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-005-typo3-caching-framework-integration@0.35)
    -   [ADR-006: Option Objects vs Arrays](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-006-option-objects-vs-arrays@0.35)
    -   [ADR-007: Multi-Provider Strategy](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-007-multi-provider-strategy@0.35)
    -   [ADR-008: Error Handling Strategy](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-008-error-handling-strategy@0.35)
    -   [ADR-009: Streaming Implementation](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-009-streaming-implementation@0.35)
    -   [ADR-010: Tool/Function Calling Design](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-010-tool-function-calling-design@0.35)
    -   [ADR-011: Object-Only Options API](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-011-object-only-options-api@0.35)
    -   [ADR-012: API key encryption at application level](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-012-api-key-encryption-at-application-level@0.35)
    -   [ADR-013: Three-level configuration architecture (Provider-Model-Configuration)](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-013-three-level-configuration-architecture-provider-model-configuration@0.35)
    -   [ADR-014: AI-Powered Wizard System](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-014-ai-powered-wizard-system@0.35)
    -   [ADR-015: Type-Safe Domain Models via PHP 8.1+ Enums & Value Objects](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-015-type-safe-domain-models-via-php-8-1-enums-value-objects@0.35)
    -   [ADR-016: Thinking/Reasoning Block Extraction](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-016-thinking-reasoning-block-extraction@0.35)
    -   [ADR-017: Safe Type Casting via SafeCastTrait](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-017-safe-type-casting-via-safecasttrait@0.35)
    -   [ADR-018: Multi-Provider Model Discovery](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-018-multi-provider-model-discovery@0.35)
    -   [ADR-019: Internationalization Strategy](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-019-internationalization-strategy@0.35)
    -   [ADR-020: Backend Output Format Rendering](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-020-backend-output-format-rendering@0.35)
    -   [ADR-021: Provider Fallback Chain](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-021-provider-fallback-chain@0.35)
    -   [ADR-022: Attribute-Based Provider Registration](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-022-attribute-based-provider-registration@0.35)
    -   [ADR-023: Native Backend Capability Permissions](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-023-native-backend-capability-permissions@0.35)
    -   [ADR-024: Dashboard Widgets](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-024-dashboard-widgets@0.35)
    -   [ADR-025: Per-User AI Budgets](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-025-per-user-ai-budgets@0.35)
    -   [ADR-026: Provider Middleware Pipeline](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-026-provider-middleware-pipeline@0.35)
    -   [ADR-027: Split TaskController](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-027-split-taskcontroller@0.35)
    -   [ADR-028: Public services policy in Configuration/Services.yaml](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-028-public-services-policy-in-configuration-services-yaml@0.35)
    -   [ADR-029: Usage Analytics Dashboard](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-029-usage-analytics-dashboard@0.35)
    -   [ADR-030: Specialized Services Authenticate Through nr-vault](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-030-specialized-services-authenticate-through-nr-vault@0.35)
    -   [ADR-031: Tagged Prompt Snippet Library](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-031-tagged-prompt-snippet-library@0.35)
    -   [ADR-032: Specialized Usage Tracking and Pricing Catalog](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-032-specialized-usage-tracking-and-pricing-catalog@0.35)
    -   [ADR-033: Specialized Models in the Model Registry](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-033-specialized-models-in-the-model-registry@0.35)
    -   [ADR-034: Remove the ExtensionConfiguration default-provider fallback](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-034-remove-the-extensionconfiguration-default-provider-fallback@0.35)
    -   [ADR-035: Skill ingest (GitHub-hosted SKILL.md sources)](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-035-skill-ingest-github-hosted-skill-md-sources@0.35)
    -   [ADR-036: Skill injection (attach + compose into prompts)](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-036-skill-injection-attach-compose-into-prompts@0.35)
    -   [ADR-037: Backend AJAX admin guard](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-037-backend-ajax-admin-guard@0.35)
    -   [ADR-038: Tool runtime (function-calling agent loop)](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-038-tool-runtime-function-calling-agent-loop@0.35)
    -   [ADR-039: Global per-tool availability state](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-039-global-per-tool-availability-state@0.35)
    -   [ADR-040: Playground run trace and tool-path prompt augmentation](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-040-playground-run-trace-and-tool-path-prompt-augmentation@0.35)
    -   [ADR-041: Playground live run streaming](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-041-playground-live-run-streaming@0.35)
    -   [ADR-042: Content and configuration read tools for the agent](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-042-content-and-configuration-read-tools-for-the-agent@0.35)
    -   [ADR-043: Tool groups with a fail-closed enable cascade](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-043-tool-groups-with-a-fail-closed-enable-cascade@0.35)
    -   [ADR-044: Error-analysis tools with fail-closed guards](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-044-error-analysis-tools-with-fail-closed-guards@0.35)
    -   [ADR-045: Schema and resolution tools](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-045-schema-and-resolution-tools@0.35)
    -   [ADR-046: History, URL and validation tools](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-046-history-url-and-validation-tools@0.35)
    -   [ADR-047: FAL tools](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-047-fal-tools@0.35)
    -   [ADR-048: Diagnostics tools](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-048-diagnostics-tools@0.35)
    -   [ADR-049: RAG site-search tools over installed search indexes](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-049-rag-site-search-tools-over-installed-search-indexes@0.35)
    -   [ADR-050: Retrieval and embedding scope — the boundary with nr_ai_search](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-050-retrieval-and-embedding-scope-the-boundary-with-nr-ai-search@0.35)
    -   [ADR-051: Tool-calling feature service — narrow consumer interface](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-051-tool-calling-feature-service-narrow-consumer-interface@0.35)
    -   [ADR-052: Usage attribution honours the caller-supplied beUserUid](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-052-usage-attribution-honours-the-caller-supplied-beuseruid@0.35)
    -   [ADR-053: One marker interface for all thrown exceptions](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-053-one-marker-interface-for-all-thrown-exceptions@0.35)
    -   [ADR-054: Typed tool turns on ChatMessage instead of wire arrays](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-054-typed-tool-turns-on-chatmessage-instead-of-wire-arrays@0.35)
    -   [ADR-055: Embeddings join the configuration path; dimensions metadata](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-055-embeddings-join-the-configuration-path-dimensions-metadata@0.35)
    -   [ADR-056: Configuration presets — consumer-declared, admin-imported records](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-056-configuration-presets-consumer-declared-admin-imported-records@0.35)
    -   [ADR-057: Speech and image services carry attribution in options](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-057-speech-and-image-services-carry-attribution-in-options@0.35)
    -   [ADR-058: Telemetry Middleware](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-058-telemetry-middleware@0.35)
    -   [ADR-059: Decompose LlmServiceManager into focused collaborators](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-059-decompose-llmservicemanager-into-focused-collaborators@0.35)
    -   [ADR-060: Quality evaluation — golden sets, grading and regression detection](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-060-quality-evaluation-golden-sets-grading-and-regression-detection@0.35)
    -   [ADR-061: Skill trust levels, signed manifests, injection scanning](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-061-skill-trust-levels-signed-manifests-injection-scanning@0.35)
    -   [ADR-062: Streaming Request Lifecycle](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-062-streaming-request-lifecycle@0.35)
    -   [ADR-063: Provider Resilience — Circuit Breaker, Health, Idempotency](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-063-provider-resilience-circuit-breaker-health-idempotency@0.35)
    -   [ADR-064: Central Privacy Model](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-064-central-privacy-model@0.35)
    -   [ADR-065: Reduce the public service surface (ADR-028 follow-up)](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-065-reduce-the-public-service-surface-adr-028-follow-up@0.35)
    -   [ADR-066: Criteria-mode configurations resolve in the service layer](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-066-criteria-mode-configurations-resolve-in-the-service-layer@0.35)
    -   [ADR-067: Solr per-language core — no language filter query](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-067-solr-per-language-core-no-language-filter-query@0.35)
    -   [ADR-069: Remove the unusable PromptTemplate stack](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-069-remove-the-unusable-prompttemplate-stack@0.35)
    -   [ADR-070: User-less configuration resolution by identifier](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-070-user-less-configuration-resolution-by-identifier@0.35)
    -   [ADR-071: Public keyword-search facade over the retrieval cascade](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-071-public-keyword-search-facade-over-the-retrieval-cascade@0.35)
    -   [ADR-072: Retrieval-quality evaluation — golden questions and top-k hit rates](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-072-retrieval-quality-evaluation-golden-questions-and-top-k-hit-rates@0.35)
    -   [ADR-073: First-party test doubles for consumer-facing interfaces](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-073-first-party-test-doubles-for-consumer-facing-interfaces@0.35)
    -   [ADR-074: Reciprocal Rank Fusion as a hosted utility](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-074-reciprocal-rank-fusion-as-a-hosted-utility@0.35)
    -   [ADR-075: Neutral cross-encoder reranker protocol](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-075-neutral-cross-encoder-reranker-protocol@0.35)
    -   [ADR-076: Document understanding — native-first, rasterize fallback](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-076-document-understanding-native-first-rasterize-fallback@0.35)
    -   [ADR-077: Plain completion joins the named-configuration path](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-077-plain-completion-joins-the-named-configuration-path@0.35)
    -   [ADR-078: Budget pre-flight for the specialized image/speech services](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-078-budget-pre-flight-for-the-specialized-image-speech-services@0.35)
    -   [ADR-079: First-party fakes for Completion, Vision and Budget services](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-079-first-party-fakes-for-completion-vision-and-budget-services@0.35)
    -   [ADR-080: Typed provider HTTP exceptions (authentication 401, rate-limit 429)](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-080-typed-provider-http-exceptions-authentication-401-rate-limit-429@0.35)
    -   [ADR-081: Agent run persistence and a durable event stream](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-081-agent-run-persistence-and-a-durable-event-stream@0.35)
    -   [ADR-082: Schema-validated structured outputs with one repair round-trip](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-082-schema-validated-structured-outputs-with-one-repair-round-trip@0.35)
    -   [ADR-083: Conversation sessions and memory](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-083-conversation-sessions-and-memory@0.35)
    -   [ADR-084: Human-in-the-loop tool approval with suspend and resume](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-084-human-in-the-loop-tool-approval-with-suspend-and-resume@0.35)
    -   [ADR-085: Guardrail pipeline for provider responses](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-085-guardrail-pipeline-for-provider-responses@0.35)
    -   [ADR-086: Guardrail enforcement gaps — playground verdicts and streamed output](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-086-guardrail-enforcement-gaps-playground-verdicts-and-streamed-output@0.35)
    -   [ADR-087: Input-side guardrails — screening and redacting the outgoing prompt](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-087-input-side-guardrails-screening-and-redacting-the-outgoing-prompt@0.35)
    -   [ADR-088: Live streaming redaction with a holdback buffer](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-088-live-streaming-redaction-with-a-holdback-buffer@0.35)
    -   [ADR-089: Guardrail boundary completeness — reasoning, system prompt, vision](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-089-guardrail-boundary-completeness-reasoning-system-prompt-vision@0.35)
    -   [ADR-090: One extension until 1.0, with documented split seams](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-090-one-extension-until-1-0-with-documented-split-seams@0.35)
    -   [ADR-091: Sessions are owned — an explicit actor context on every turn](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-091-sessions-are-owned-an-explicit-actor-context-on-every-turn@0.35)
    -   [ADR-092: A run records why it ended, and cannot be settled twice](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-092-a-run-records-why-it-ended-and-cannot-be-settled-twice@0.35)
    -   [ADR-093: One tool gate, in the loop — not in the controller](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-093-one-tool-gate-in-the-loop-not-in-the-controller@0.35)
    -   [ADR-094: Tool data classes and provider trust zones](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-094-tool-data-classes-and-provider-trust-zones@0.35)
    -   [ADR-095: One failure taxonomy for retry and circuit-breaker decisions](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-095-one-failure-taxonomy-for-retry-and-circuit-breaker-decisions@0.35)
    -   [ADR-096: The pipeline configuration lives on the call context](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-096-the-pipeline-configuration-lives-on-the-call-context@0.35)
    -   [ADR-097: Specialized services dispatch through the shared pipeline](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-097-specialized-services-dispatch-through-the-shared-pipeline@0.35)
    -   [ADR-098: Input-guardrail screening for specialized prompts](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-098-input-guardrail-screening-for-specialized-prompts@0.35)
    -   [ADR-099: Fail-closed HTTP egress for the specialized services](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-099-fail-closed-http-egress-for-the-specialized-services@0.35)
    -   [ADR-100: Specialized usage recorded by tagged extractors in the pipeline](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-100-specialized-usage-recorded-by-tagged-extractors-in-the-pipeline@0.35)
    -   [ADR-101: AgentRuntime — the agent-run lifecycle as a public service](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-101-agentruntime-the-agent-run-lifecycle-as-a-public-service@0.35)
    -   [ADR-102: Queued agent runs over the TYPO3 message bus](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-102-queued-agent-runs-over-the-typo3-message-bus@0.35)
    -   [ADR-103: Cooperative cancellation at step boundaries](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-103-cooperative-cancellation-at-step-boundaries@0.35)
    -   [ADR-104: Worker heartbeat, stale-run reaper, retry and dead-letter](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-104-worker-heartbeat-stale-run-reaper-retry-and-dead-letter@0.35)
    -   [ADR-105: Typed user-input suspension (WAITING_FOR_INPUT)](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-105-typed-user-input-suspension-waiting-for-input@0.35)
    -   [ADR-106: Per-configuration guardrail policies](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-106-per-configuration-guardrail-policies@0.35)
    -   [ADR-107: Agent-loop context-window management](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-107-agent-loop-context-window-management@0.35)
    -   [ADR-108: Typed ToolResult with run-only artifacts](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-108-typed-toolresult-with-run-only-artifacts@0.35)
    -   [ADR-109: Agent Runs approvals inbox (backend module)](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-109-agent-runs-approvals-inbox-backend-module@0.35)
    -   [ADR-110: Service account scopes](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-110-service-account-scopes@0.35)
    -   [ADR-111: Tool side effects and fail-closed audit for writes](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-111-tool-side-effects-and-fail-closed-audit-for-writes@0.35)
    -   [ADR-112: Lease-before-op fence — no retry for an interrupted write](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-112-lease-before-op-fence-no-retry-for-an-interrupted-write@0.35)
    -   [ADR-113: Fail-closed tool data-class enforcement switch](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-113-fail-closed-tool-data-class-enforcement-switch@0.35)
    -   [ADR-114: Encrypt queued and suspended agent-run state at rest](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-114-encrypt-queued-and-suspended-agent-run-state-at-rest@0.35)
    -   [ADR-115: Tool data-class enforcement is the default for new installs](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-115-tool-data-class-enforcement-is-the-default-for-new-installs@0.35)
    -   [ADR-116: Central tooling authority — nr_llm owns builtin + MCP tools](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-116-central-tooling-authority-nr-llm-owns-builtin-mcp-tools@0.35)
    -   [ADR-117: Withdraw the backend capability permissions](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-117-withdraw-the-backend-capability-permissions@0.35)
    -   [ADR-118: Verify the specialized services from the backend](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-118-verify-the-specialized-services-from-the-backend@0.35)
    -   [ADR-119: Where the backend modules live — Administration, for now](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-119-where-the-backend-modules-live-administration-for-now@0.35)
    -   [ADR-120: The agent loop's tool gate is a required collaborator](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-120-the-agent-loop-s-tool-gate-is-a-required-collaborator@0.35)
    -   [ADR-121: Conversations are bounded where they are assembled](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-121-conversations-are-bounded-where-they-are-assembled@0.35)
    -   [ADR-122: The side-effecting tool contract waits for a side-effecting tool](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-122-the-side-effecting-tool-contract-waits-for-a-side-effecting-tool@0.35)
    -   [ADR-123: One catalogue of secret shapes for every masking path](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-123-one-catalogue-of-secret-shapes-for-every-masking-path@0.35)
    -   [ADR-124: A provider key can be set from the command line](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-124-a-provider-key-can-be-set-from-the-command-line@0.35)
    -   [ADR-125: Per-adapter collaborator classes](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-125-per-adapter-collaborator-classes@0.35)
    -   [ADR-126: A named JSON-Schema subset, enforced strict](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-126-a-named-json-schema-subset-enforced-strict@0.35)
    -   [ADR-127: A marked, versioned API surface](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-127-a-marked-versioned-api-surface@0.35)
    -   [ADR-128: Provider-native structured output](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-128-provider-native-structured-output@0.35)
    -   [ADR-129: In-repo consumers of structured output](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-129-in-repo-consumers-of-structured-output@0.35)
    -   [ADR-130: Capability grants for backend users](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-130-capability-grants-for-backend-users@0.35)
    -   [ADR-131: The editor-facing module](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-131-the-editor-facing-module@0.35)
    -   [ADR-132: Fail-closed approval audit and turn binding](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-132-fail-closed-approval-audit-and-turn-binding@0.35)
    -   [ADR-133: An approver may only release a write they could run](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-133-an-approver-may-only-release-a-write-they-could-run@0.35)
    -   [ADR-134: A builtin's declared write effect implies human approval](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-134-a-builtin-s-declared-write-effect-implies-human-approval@0.35)
    -   [ADR-135: The first writing tool, and the contract it actually needed](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-135-the-first-writing-tool-and-the-contract-it-actually-needed@0.35)
    -   [ADR-136: The write preview is produced when the run suspends](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-136-the-write-preview-is-produced-when-the-run-suspends@0.35)
    -   [ADR-137: One candidate resolution for the primary's chain](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-137-one-candidate-resolution-for-the-primary-s-chain@0.35)
    -   [ADR-138: Criteria-mode selection matches the operation, not only the criteria](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-138-criteria-mode-selection-matches-the-operation-not-only-the-criteria@0.35)
    -   [ADR-139: Context assembly is a seam, not a provider registry](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-139-context-assembly-is-a-seam-not-a-provider-registry@0.35)
    -   [ADR-140: The effective-policy readout has no apply path](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-140-the-effective-policy-readout-has-no-apply-path@0.35)
    -   [ADR-141: Every executing segment holds a lease, or writes stop](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-141-every-executing-segment-holds-a-lease-or-writes-stop@0.35)
    -   [ADR-142: One routing decision, with a reason per candidate](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-142-one-routing-decision-with-a-reason-per-candidate@0.35)
    -   [ADR-143: Bound every send against the model that actually serves it](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-143-bound-every-send-against-the-model-that-actually-serves-it@0.35)
    -   [ADR-144: Injected context carries a declared data class](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-144-injected-context-carries-a-declared-data-class@0.35)
    -   [ADR-145: Governance profiles describe a posture, they never apply it](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-145-governance-profiles-describe-a-posture-they-never-apply-it@0.35)
    -   [ADR-146: Three more editorial writers, and what the third one reviewed](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-146-three-more-editorial-writers-and-what-the-third-one-reviewed@0.35)
    -   [ADR-147: No Symfony AI bridge while it is below 1.0](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-147-no-symfony-ai-bridge-while-it-is-below-1-0@0.35)
    -   [ADR-148: The routing readout is a second gate on the Governance tab](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-148-the-routing-readout-is-a-second-gate-on-the-governance-tab@0.35)
    -   [ADR-149: A criteria-mode trust zone comes from the resolved model](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-149-a-criteria-mode-trust-zone-comes-from-the-resolved-model@0.35)
    -   [ADR-150: A submitter may only feed a tool they could run, on the turn they saw](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-150-a-submitter-may-only-feed-a-tool-they-could-run-on-the-turn-they-saw@0.35)
    -   [ADR-151: The context budget is a breakdown, not a number](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-151-the-context-budget-is-a-breakdown-not-a-number@0.35)
    -   [ADR-152: An editor action is a declaration, not a second executor](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-152-an-editor-action-is-a-declaration-not-a-second-executor@0.35)
    -   [ADR-153: A run's uuid is the correlation id of everything it does](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-153-a-run-s-uuid-is-the-correlation-id-of-everything-it-does@0.35)
    -   [ADR-154: An MCP server's liveness is observed, not inferred](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-154-an-mcp-server-s-liveness-is-observed-not-inferred@0.35)
    -   [ADR-155: The system prompt carries a declared data class](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-155-the-system-prompt-carries-a-declared-data-class@0.35)
    -   [ADR-156: Persist the routing decision, and observe complexity without routing](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-156-persist-the-routing-decision-and-observe-complexity-without-routing@0.35)
    -   [ADR-157: The simulation covers the run, and answers for an actor](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-157-the-simulation-covers-the-run-and-answers-for-an-actor@0.35)
    -   [ADR-158: The Editor Action Center adds a catalogue, not a runtime](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-158-the-editor-action-center-adds-a-catalogue-not-a-runtime@0.35)
    -   [ADR-159: One extension, confirmed at the 1.0 API freeze](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-159-one-extension-confirmed-at-the-1-0-api-freeze@0.35)
    -   [ADR-160: One adapter contract, and honest capability provenance](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-160-one-adapter-contract-and-honest-capability-provenance@0.35)
    -   [ADR-161: One conformance suite for every MCP connection we support](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-161-one-conformance-suite-for-every-mcp-connection-we-support@0.35)
    -   [ADR-162: Bulk editor actions are N ordinary runs, not a bulk runtime](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-162-bulk-editor-actions-are-n-ordinary-runs-not-a-bulk-runtime@0.35)
    -   [ADR-163: A use-case pack is data plus a small installer](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-163-a-use-case-pack-is-data-plus-a-small-installer@0.35)
    -   [ADR-164: A run's forced sources bind against the trust ceiling](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-164-a-run-s-forced-sources-bind-against-the-trust-ceiling@0.35)
    -   [ADR-165: A resumed run re-gates its forced sources](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-165-a-resumed-run-re-gates-its-forced-sources@0.35)
    -   [ADR-166: Deactivating a source does not lower a ceiling](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-166-deactivating-a-source-does-not-lower-a-ceiling@0.35)
    -   [ADR-167: Configuration access is a simulated axis](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-167-configuration-access-is-a-simulated-axis@0.35)
    -   [ADR-168: A use-case pack declares editor actions, and only declares them](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-168-a-use-case-pack-declares-editor-actions-and-only-declares-them@0.35)
    -   [ADR-169: Record management belongs to TYPO3's permission model](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-169-record-management-belongs-to-typo3-s-permission-model@0.35)
    -   [ADR-170: One deadline per MCP operation, spent across its legs](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-170-one-deadline-per-mcp-operation-spent-across-its-legs@0.35)
    -   [ADR-171: The personas nr_llm's code already assumes](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-171-the-personas-nr-llm-s-code-already-assumes@0.35)
    -   [ADR-172: Four-eyes approval is a per-configuration switch, default off](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-172-four-eyes-approval-is-a-per-configuration-switch-default-off@0.35)
    -   [ADR-173: A self-approved run says so, wherever the approval is shown](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-173-a-self-approved-run-says-so-wherever-the-approval-is-shown@0.35)
    -   [ADR-174: Per-call cost, and request facts measured before the model is chosen](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-174-per-call-cost-and-request-facts-measured-before-the-model-is-chosen@0.35)
    -   [ADR-175: A forced skill binds by the same rule as a forced snippet](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-175-a-forced-skill-binds-by-the-same-rule-as-a-forced-snippet@0.35)
    -   [ADR-176: A per-call outcome, kept apart from the approval gate](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-176-a-per-call-outcome-kept-apart-from-the-approval-gate@0.35)
    -   [ADR-177: Caller-source attribution on the options path](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-177-caller-source-attribution-on-the-options-path@0.35)
    -   [ADR-178: Caller source on the cost path](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-178-caller-source-on-the-cost-path@0.35)
    -   [ADR-179: A forced source that is dropped is recorded on the run](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-179-a-forced-source-that-is-dropped-is-recorded-on-the-run@0.35)
    -   [ADR-180: The sixth writer creates a page, and the one-record rule holds](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-180-the-sixth-writer-creates-a-page-and-the-one-record-rule-holds@0.35)
    -   [ADR-181: The client reads an event-stream framed answer, and holds no stream](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-181-the-client-reads-an-event-stream-framed-answer-and-holds-no-stream@0.35)
    -   [ADR-182: A write tool names the record it wrote](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-182-a-write-tool-names-the-record-it-wrote@0.35)
    -   [ADR-183: The AI section exists, and editor surfaces live in it](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-183-the-ai-section-exists-and-editor-surfaces-live-in-it@0.35)
    -   [ADR-184: An approval binds to the state the preview showed](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-184-an-approval-binds-to-the-state-the-preview-showed@0.35)
    -   [ADR-185: An observed outcome is derived from history, inside a window](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-185-an-observed-outcome-is-derived-from-history-inside-a-window@0.35)
    -   [ADR-186: A pack may ship snippets its own extension reads](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-186-a-pack-may-ship-snippets-its-own-extension-reads@0.35)
    -   [ADR-187: AI-write provenance is announced, not implemented](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-187-ai-write-provenance-is-announced-not-implemented@0.35)
    -   [ADR-188: Every conversation has a configuration from the moment it opens](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-188-every-conversation-has-a-configuration-from-the-moment-it-opens@0.35)
    -   [ADR-189: A model capability is vocabulary, and only sometimes data](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-189-a-model-capability-is-vocabulary-and-only-sometimes-data@0.35)
    -   [ADR-190: Cancellation crosses the transport boundary as a signal](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-190-cancellation-crosses-the-transport-boundary-as-a-signal@0.35)
    -   [ADR-191: A cancelled tool call is not a failed one](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-191-a-cancelled-tool-call-is-not-a-failed-one@0.35)
    -   [ADR-192: The eighth writer describes an asset, and stays out of the seventh's field](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-192-the-eighth-writer-describes-an-asset-and-stays-out-of-the-seventh-s-field@0.35)
-   [Changelog](https://docs.typo3.org/permalink/netresearch/nr-llm:changelog-1@0.35)
