Fallback Models Are Not Transparent Replacements

Qualify fallback models against the feature contract, define eligible failures, bound attempts, and make reduced behavior visible to callers.

October 4, 2026 · 16 min · Lukas Walter

Decorating IChatClient Without Tangling the Application

Compose shared chat-client behavior in .NET without moving feature policy into middleware or hiding streaming, caching, and retry costs.

September 30, 2026 · 7 min · Lukas Walter

Graceful Degradation for AI Features

How to keep an AI-enabled product useful when a dependency fails, without hiding reduced capability or returning unsafe substitutes.

September 27, 2026 · 14 min · Lukas Walter

Building the .NET AI App Foundation

A small ASP.NET Core foundation for model access, validated configuration, tracing, buffered and streaming HTTP contracts, and future AI capabilities.

September 20, 2026 · 11 min · Lukas Walter

Make required model capabilities explicit before selecting a provider

List a feature’s required model capabilities and check them in one request flow before comparing candidate deployments.

September 14, 2026 · 2 min · Lukas Walter

Dependency Injection for AI Components

Register .NET AI clients, tools, prompts, and retrieval services with explicit lifetimes, safe request state, and clear disposal ownership.

September 9, 2026 · 10 min · Lukas Walter

Human Approval as a System Boundary

Design human approval around an exact operation, with reviewable payloads, durable decisions, expiry, and execution checks that survive retries.

September 6, 2026 · 13 min · Lukas Walter

AI Systems Need Runtime Budgets

How to bound time, tokens, retries, tool calls, and estimated cost across a complete AI execution instead of limiting each call in isolation.

August 30, 2026 · 13 min · Lukas Walter

Provider Independence from Day One

A C# implementation for keeping provider coupling at explicit boundaries while making model capabilities and provider-specific behavior visible.

August 25, 2026 · 12 min · Lukas Walter

Retries Are Not a Recovery Strategy

Why bounded retries help with transient faults but cannot resolve unknown outcomes, partial workflows, or duplicated side effects in AI systems.

August 23, 2026 · 12 min · Lukas Walter