IChatClient is the widest MEAI surface across the tryAGI SDKs. There are currently 14 direct chat implementations, plus 27 OpenAI-compatible factories via tryAGI.OpenAI.CustomProviders.
Capability Matrix
SDK
Streaming
Tool calling
Multimodal input
Reasoning / thinking
Structured output
Notes
Anthropic
Native
Y
Images, PDFs
Thinking
-
Reference implementation
Ollama
Native
Y
Images
Thinking
-
Local-first models
OpenAI
Native
Y
Images
-
JSON object + JSON schema
Also powers CustomProviders
Google.Gemini
Native
Y
Images
Thinking
-
Thought-signature support in provider API
Mistral
Native
Y
Images
-
-
Alias recommended
Cohere
Simulated
Y
-
-
-
GetStreamingResponseAsync() emits the full response as one update
Together
Native
Y
-
Reasoning
-
Alias recommended
AI21
Native
Y
-
Reasoning text
JSON object
Jamba chat models
Reka
Native
Y
Images, audio, video, PDFs
-
JSON schema
Tool results are sent back as user text
HuggingFace
Native
Y
Model-dependent
Model-dependent
-
Serverless feature set depends on backend model
Writer
Native
Y
-
-
-
Alias recommended
SarvamAI
Simulated
Y
-
reasoning_effort, wiki_grounding
-
SSE exists in the provider API, but the current adapter is post-hoc
Upstage
Native
Y
Images
-
-
Also exposes groundedness, translation, and document tools
Coze
Native
Y*
-
Reasoning text
-
Requires bot_id; provider tool calls are not yet emitted as FunctionCallContent
Universal Usage
123456789
usingMicrosoft.Extensions.AI;IChatClientclient=/* any supported provider */;varresponse=awaitclient.GetResponseAsync([new ChatMessage(ChatRole.User, "Explain vector databases in two sentences.")],newChatOptions{ModelId="provider-specific-model"});Console.WriteLine(response.Text);
Most current IChatClient implementations support full MEAI tool calling:
1 2 3 4 5 6 7 8 910111213141516171819
usingCSharpToJsonSchema;usingMicrosoft.Extensions.AI;[GenerateJsonSchema]publicinterfaceIWeatherTools{[Description("Gets the current weather for a location.")]stringGetWeather([Description("The city name")]stringcity);}IChatClientclient=/* any supported provider */;varoptions=newChatOptions{ModelId="provider-specific-model",Tools=newWeatherToolsService().AsTools().AsAITools(),};varresponse=awaitclient.GetResponseAsync("What's the weather in Tokyo?",options);
Coze is the current exception in the direct adapters: it can signal ChatFinishReason.ToolCalls and send tool results back to the provider, but it does not yet surface provider-issued tool calls back as FunctionCallContent.
Structured Output
Structured output currently exists in the direct adapters for:
OpenAI: JSON object and JSON schema output
AI21: JSON object output
Reka: JSON schema output
Multimodal Notes
Anthropic supports text, images, and PDFs.
OpenAI, Google.Gemini, Mistral, Ollama, and Upstage support image input.
Reka is the broadest direct multimodal adapter and accepts images, audio, video, and PDF URLs.
Coze, Writer, SarvamAI, Together, and AI21 are currently text-first in their MEAI adapters.