Validate structured model output before using it

Treat deserialized model output as untrusted data and apply normal business validation before it drives application behavior.

July 18, 2026 · 2 min · Lukas Walter

Testing Microsoft Agent Framework Applications

How to test Microsoft Agent Framework applications with fake model clients, tool contract tests, structured output tests, routing tests, workflow tests, and eval-style regression checks.

July 15, 2026 · 21 min · Lukas Walter

Use HybridCache for expensive AI work in .NET

Use HybridCache to avoid duplicate AI model calls, with a cached summarization example and deliberate cache-key design.

July 14, 2026 · 3 min · Lukas Walter

Keep agent tools narrow and boring

Expose only the small, specific capabilities the agent needs for the current workflow.

July 9, 2026 · 2 min · Lukas Walter

Use evals before changing prompts

Treat prompt changes like code changes: measure the behavior before deciding whether the edit helped.

July 9, 2026 · 2 min · Lukas Walter

Keep RAG citations tied to retrieved chunks

Citations should point back to the retrieved evidence, not to sources the model guessed after answering.

July 8, 2026 · 2 min · Lukas Walter

Observability for Agents with OpenTelemetry, Aspire, and Application Insights

How to make Microsoft Agent Framework behavior visible in production with OpenTelemetry traces, token usage, model calls, tool calls, Aspire local debugging, and Application Insights monitoring.

July 8, 2026 · 17 min · Lukas Walter

Use CSnakes when Python is a function call, not a service

Embed a small typed Python capability in .NET when an HTTP service would be more boundary than value.

July 8, 2026 · 2 min · Lukas Walter

Expose a Python FastAPI AI tool as an Aspire service

Keep Python AI code behind an HTTP boundary and let Aspire wire it into the local system.

July 5, 2026 · 1 min · Lukas Walter

Keep model name and deployment name in config

Do not hard-code model routing decisions into application logic.

July 5, 2026 · 2 min · Lukas Walter