What problem does it solve? Choosing and wiring the right .NET AI abstraction layer is error-prone: developers often rebuild middleware by hand, confuse stateless and stateful chat flows, or under-model agentic requirements as simple chat calls. This Skill guides correct use of Microsoft.Extensions.AI for chat, embeddings, tool calling, vector search, and evaluation. ## Core Features & Use Cases - Provider-Agnostic Composition: Model IChatClient and IEmbeddingGenerator pipelines in DI with explicit caching, telemetry, logging, and function-invocation middleware. - Tool Calling & Structured Output: Use AIFunction, FunctionInvokingChatClient, and typed GetResponseAsync<T> helpers with validated inputs and scoped tool registration. - RAG & Evaluation: Combine IEmbeddingGenerator with Microsoft.Extensions.VectorData and DataIngestion pipelines, plus Microsoft.Extensions.AI.Evaluation packages for quality, NLP, and safety gates. - Use Case: When adding streaming chat with tool calling to an ASP.NET Core service, this Skill helps you register the client pipeline correctly, handle stateless vs stateful ConversationId flows, and add evaluation baselines before shipping. ## Quick Start Ask the assistant to design a DI-registered IChatClient pipeline with caching, OpenTelemetry, and function invocation for your .NET application.