This sample demonstrates how to add middleware to intercept:
- Chat client calls (global and per‑request)
- Agent runs (guardrails and PII filtering)
- Function calling (logging/override)
- Azure OpenAI integration via
AzureOpenAIClientandDefaultAzureCredential - Chat client middleware using
ChatClientBuilder.Use(...) - Agent run middleware (PII redaction and wording guardrails)
- Function invocation middleware (logging and overriding a tool result)
- Per‑request chat client middleware
- Per‑request function pipeline with approval
- Combining agent‑level and per‑request middleware
Not all agents support function invocation middleware.
Attempting to use function middleware on agents that do not wrap a ChatClientAgent or derives from it will throw an InvalidOperationException.
- Environment variables:
AZURE_OPENAI_ENDPOINT: Your Azure OpenAI endpointAZURE_OPENAI_DEPLOYMENT_NAME: Chat deployment name (optional; defaults togpt-4o)
- Sign in with Azure CLI (PowerShell):
az login
Use PowerShell:
cd dotnet/samples/GettingStarted/Agents/Agent_Step14_Middleware
dotnet run