Skip to content

Microsoft.Extensions.AI Integration

Cross-SDK comparison

See the centralized MEAI documentation for feature matrices and comparisons across all tryAGI SDKs.

The Martian SDK provides AIFunction tool wrappers compatible with Microsoft.Extensions.AI. These tools can be used with any IChatClient to give AI models access to Martian's intelligent LLM gateway with model listing, cost-optimized chat completions, multi-model routing, and Anthropic-compatible messaging.

Installation

1
dotnet add package Martian

Available Tools

Method Tool Name Description
AsListModelsTool() MartianListModels List all available models with pricing and reliability info
AsChatCompletionTool() MartianChatCompletion Send a chat completion with optional cost constraints
AsRoutedChatTool() MartianRoutedChat Cost-optimized routing across multiple models
AsAnthropicMessageTool() MartianAnthropicMessage Anthropic-compatible messages via the gateway

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using Martian;
using Microsoft.Extensions.AI;

var martianClient = new MartianClient(
    apiKey: Environment.GetEnvironmentVariable("MARTIAN_API_KEY")!);

var options = new ChatOptions
{
    Tools =
    [
        martianClient.AsListModelsTool(),
        martianClient.AsChatCompletionTool(),
        martianClient.AsRoutedChatTool(),
    ],
};

IChatClient chatClient = /* your chat client */;

var messages = new List<ChatMessage>
{
    new(ChatRole.User, "What models are available on the Martian Gateway? List them with their pricing."),
};

while (true)
{
    var response = await chatClient.GetResponseAsync(messages, options);
    messages.AddRange(response.ToChatMessages());

    if (response.FinishReason == ChatFinishReason.ToolCalls)
    {
        var results = await response.CallToolsAsync(options);
        messages.AddRange(results);
        continue;
    }

    Console.WriteLine(response.Text);
    break;
}