Microsoft.Extensions.AI (MEAI) Overview
This overview reflects the MEAI implementations that currently exist in the tryAGI SDKs.
tryAGI currently ships:
- 14 direct
IChatClientimplementations - 13 direct
IEmbeddingGenerator<string, Embedding<float>>implementations - 10 direct
ISpeechToTextClientimplementations - dozens of SDKs with
AIFunctionwrappers - 27 OpenAI-compatible factories in
tryAGI.OpenAI.CustomProviders
All current implementations target Microsoft.Extensions.AI.Abstractions 10.4.1.
Direct Interface Coverage
| SDK | IChatClient |
IEmbeddingGenerator |
ISpeechToTextClient |
AIFunction |
Alias recommended |
|---|---|---|---|---|---|
| AI21 | Y | - | - | - | No |
| Anthropic | Y | - | - | - | No |
| AssemblyAI | - | - | Y | - | No |
| Cartesia | - | - | Y | - | No |
| Cohere | Y | Y | - | - | Yes |
| Coze | Y | - | - | - | No |
| Deepgram | - | - | Y | - | No |
| ElevenLabs | - | - | Y | - | Yes |
| FishAudio | - | - | Y | Y | No |
| Gladia | - | - | Y | - | No |
| Google.Gemini | Y | Y | - | - | No |
| HuggingFace | Y | Y | - | - | No |
| Jina | - | Y | - | - | No |
| Mistral | Y | - | - | - | Yes |
| Mixedbread | - | Y | - | - | Yes |
| Nomic | - | Y | - | Y | No |
| Ollama | Y | Y | - | - | No |
| OpenAI | Y | Y | - | - | Yes |
| Pinecone | - | Y | - | Y | Yes |
| Reka | Y | - | Y | - | Yes |
| RevAI | - | - | Y | Y | No |
| SarvamAI | Y | - | Y | Y | No |
| Speechmatics | - | - | Y | Y | No |
| Together | Y | Y | - | - | Yes |
| TwelveLabs | - | Y | - | - | No |
| Upstage | Y | Y | - | Y | Yes |
| VoyageAI | - | Y | - | - | No |
| Writer | Y | - | - | - | Yes |
Tool Wrapper Coverage
The centralized docs previously listed only a small subset of tool-enabled SDKs. The current coverage is much broader:
- Search, retrieval, vector, and memory:
Algolia,BraveSearch,Browserbase,Exa,GroundX,LlamaParse,Milvus,Nomic,Pinecone,Recombee,ScrapeGraphAI,Serper,Tavily,Vectara,Zep - Translation, speech, and media generation:
Creatomate,DeepL,DId,FishAudio,HumeAI,KlingAI,LalalAI,Loudly,MagicHour,ModernMT,Murf,Photoroom,Picsart,RevAI,SarvamAI,Shotstack,SiliconFlow,Speechmatics,Synthesia,Tavus,Upstage,WaveSpeedAI - Agents, prompts, observability, and workflows:
Apify,Baseten,Botpress,Braintrust,CursorAgents,Dust,Gretel,HammingAI,Helicone,Humanloop,JasperAI,Julep,Martian,Novu,OpenRouter,Opik,Phoenix,Predibase,PromptLayer,RetellAI,Resend,Vapi,Vellum,Weave,Writesonic - Security, moderation, document AI, and data operations:
Composio,CVAT,Dataloop,EdenAI,Greptile,Guardrails,Lakera,LabelStudio,ModerationAPI,Nanonets,NightfallAI,PredictionGuard,Reducto,Roboflow,ScaleAI,Sightengine
See AIFunction Tools for the organized inventory and usage pattern.
OpenAI-Compatible Coverage
tryAGI.OpenAI exposes 27 CustomProviders factory methods. That covers hosted providers such as DeepInfra, Groq, DeepSeek, Together, OpenRouter, Nebius, Nvidia, Minimax, Qwen, SiliconFlow, and local runtimes such as Ollama and LM Studio.
See CustomProviders for the full table.
Interfaces
| Interface | Purpose | Guide |
|---|---|---|
IChatClient |
Chat completions, streaming, tool calling, multimodal input, and structured output where the provider supports it | Chat Client |
IEmbeddingGenerator<string, Embedding<float>> |
Text embeddings | Embedding Generator |
ISpeechToTextClient |
Speech-to-text transcription | Speech to Text |
AIFunction |
Tool/function wrappers for use with any IChatClient |
AIFunction Tools |
Implementation Pattern
MEAI implementations are hand-written partial classes in each SDK, located outside generated code:
1 2 3 4 5 | |
The reference chat implementation is AnthropicClient.ChatClient.cs.
Gaps Worth Fixing Next
Cozenow has a published MEAI guide page, but its adapter still needs fullFunctionCallContentround-tripping for provider-issued tool calls.PredictionGuardis still tool-only even though it is a realistic candidate for a dedicatedIChatClientadapter.- Only
Deepgramcurrently provides truly incrementalISpeechToTextClient.GetStreamingTextAsync()updates. Several other STT SDKs expose the method but return the final transcript after processing completes. OpenRouterand the standaloneXaiSDK do not need urgent dedicated MEAI adapters becausetryAGI.OpenAI.CustomProvidersalready covers the common chat and embedding path.