Sitemap
- Introduction
- Installation
- Administration
- Configuration reference
-
Developer guide
- Streaming support
- Tool/function calling
- Creating custom providers
- Registering a provider
- Fallback chain
- BE group permission checks
- Configuration presets
- Quality evaluation
- Build your extension on nr-llm
- Protecting anonymous LLM-cost-bearing endpoints
- Rendering LLM Markdown server-side safely
- Feature services
- API reference
- Architecture
- Testing guide
-
Architecture Decision Records
- ADR-001: Provider Abstraction Layer
- ADR-002: Feature Services Architecture
- ADR-003: Typed Response Objects
- ADR-004: PSR-14 Event System
- ADR-005: TYPO3 Caching Framework Integration
- ADR-006: Option Objects vs Arrays
- ADR-007: Multi-Provider Strategy
- ADR-008: Error Handling Strategy
- ADR-009: Streaming Implementation
- ADR-010: Tool/Function Calling Design
- ADR-011: Object-Only Options API
- ADR-012: API key encryption at application level
- ADR-013: Three-level configuration architecture (Provider-Model-Configuration)
- ADR-014: AI-Powered Wizard System
- ADR-015: Type-Safe Domain Models via PHP 8.1+ Enums & Value Objects
- ADR-016: Thinking/Reasoning Block Extraction
- ADR-017: Safe Type Casting via SafeCastTrait
- ADR-018: Multi-Provider Model Discovery
- ADR-019: Internationalization Strategy
- ADR-020: Backend Output Format Rendering
- ADR-021: Provider Fallback Chain
- ADR-022: Attribute-Based Provider Registration
- ADR-023: Native Backend Capability Permissions
- ADR-024: Dashboard Widgets
- ADR-025: Per-User AI Budgets
- ADR-026: Provider Middleware Pipeline
- ADR-027: Split TaskController
- ADR-028: Public services policy in Configuration/Services.yaml
- ADR-029: Usage Analytics Dashboard
- ADR-030: Specialized Services Authenticate Through nr-vault
- ADR-031: Tagged Prompt Snippet Library
- ADR-032: Specialized Usage Tracking and Pricing Catalog
- ADR-033: Specialized Models in the Model Registry
- ADR-034: Remove the ExtensionConfiguration default-provider fallback
- ADR-035: Skill ingest (GitHub-hosted SKILL.md sources)
- ADR-036: Skill injection (attach + compose into prompts)
- ADR-037: Backend AJAX admin guard
- ADR-038: Tool runtime (function-calling agent loop)
- ADR-039: Global per-tool availability state
- ADR-040: Playground run trace and tool-path prompt augmentation
- ADR-041: Playground live run streaming
- ADR-042: Content and configuration read tools for the agent
- ADR-043: Tool groups with a fail-closed enable cascade
- ADR-044: Error-analysis tools with fail-closed guards
- ADR-045: Schema and resolution tools
- ADR-046: History, URL and validation tools
- ADR-047: FAL tools
- ADR-048: Diagnostics tools
- ADR-049: RAG site-search tools over installed search indexes
- ADR-050: Retrieval and embedding scope — the boundary with nr_ai_search
- ADR-051: Tool-calling feature service — narrow consumer interface
- ADR-052: Usage attribution honours the caller-supplied beUserUid
- ADR-053: One marker interface for all thrown exceptions
- ADR-054: Typed tool turns on ChatMessage instead of wire arrays
- ADR-055: Embeddings join the configuration path; dimensions metadata
- ADR-056: Configuration presets — consumer-declared, admin-imported records
- ADR-057: Speech and image services carry attribution in options
- ADR-058: Telemetry Middleware
- ADR-059: Decompose LlmServiceManager into focused collaborators
- ADR-060: Quality evaluation — golden sets, grading and regression detection
- ADR-061: Skill trust levels, signed manifests, injection scanning
- ADR-062: Streaming Request Lifecycle
- ADR-063: Provider Resilience — Circuit Breaker, Health, Idempotency
- ADR-064: Central Privacy Model
- ADR-065: Reduce the public service surface (ADR-028 follow-up)
- ADR-066: Criteria-mode configurations resolve in the service layer
- ADR-067: Solr per-language core — no language filter query
- ADR-069: Remove the unusable PromptTemplate stack
- ADR-070: User-less configuration resolution by identifier
- ADR-071: Public keyword-search facade over the retrieval cascade
- ADR-072: Retrieval-quality evaluation — golden questions and top-k hit rates
- ADR-073: First-party test doubles for consumer-facing interfaces
- ADR-074: Reciprocal Rank Fusion as a hosted utility
- ADR-075: Neutral cross-encoder reranker protocol
- ADR-076: Document understanding — native-first, rasterize fallback
- ADR-077: Plain completion joins the named-configuration path
- ADR-078: Budget pre-flight for the specialized image/speech services
- ADR-079: First-party fakes for Completion, Vision and Budget services
- ADR-080: Typed provider HTTP exceptions (authentication 401, rate-limit 429)
- ADR-081: Agent run persistence and a durable event stream
- ADR-082: Schema-validated structured outputs with one repair round-trip
- ADR-083: Conversation sessions and memory
- ADR-084: Human-in-the-loop tool approval with suspend and resume
- ADR-085: Guardrail pipeline for provider responses
- ADR-086: Guardrail enforcement gaps — playground verdicts and streamed output
- ADR-087: Input-side guardrails — screening and redacting the outgoing prompt
- ADR-088: Live streaming redaction with a holdback buffer
- ADR-089: Guardrail boundary completeness — reasoning, system prompt, vision
- ADR-090: One extension until 1.0, with documented split seams
- ADR-091: Sessions are owned — an explicit actor context on every turn
- ADR-092: A run records why it ended, and cannot be settled twice
- ADR-093: One tool gate, in the loop — not in the controller
- ADR-094: Tool data classes and provider trust zones
- ADR-095: One failure taxonomy for retry and circuit-breaker decisions
- ADR-096: The pipeline configuration lives on the call context
- ADR-097: Specialized services dispatch through the shared pipeline
- ADR-098: Input-guardrail screening for specialized prompts
- ADR-099: Fail-closed HTTP egress for the specialized services
- ADR-100: Specialized usage recorded by tagged extractors in the pipeline
- ADR-101: AgentRuntime — the agent-run lifecycle as a public service
- ADR-102: Queued agent runs over the TYPO3 message bus
- ADR-103: Cooperative cancellation at step boundaries
- ADR-104: Worker heartbeat, stale-run reaper, retry and dead-letter
- Changelog