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

Treat the model finish reason as a control signal

Check why generation stopped before accepting model output, and give incomplete responses an explicit application outcome.

September 9, 2026 · 2 min · Lukas Walter

Persist ingestion checkpoints at source boundaries

Track progress per consumer and source ordering boundary, and advance each checkpoint only after the corresponding ingestion work succeeds.

September 8, 2026 · 4 min · Lukas Walter

Treat provider throttling as a shared capacity signal

Let one throttling response reduce pressure from every caller sharing the affected capacity pool.

September 7, 2026 · 3 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

Store a source checksum to skip unchanged documents

Compare a document’s source checksum, metadata, and ingestion profile before repeating extraction, chunking, embedding, and index writes.

September 4, 2026 · 4 min · Lukas Walter

Keep tool results inside a token budget

Bound every model-visible tool result before it enters the next prompt.

September 2, 2026 · 3 min · Lukas Walter

Your First Qdrant Collection

Run Qdrant locally, connect with the official .NET client, and create a collection whose vector size and distance match the embedding model.

September 2, 2026 · 7 min · Lukas Walter

Run production evaluations outside the user response path

Hand production samples to a separate evaluation worker instead of making users wait for an evaluator model.

September 1, 2026 · 4 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