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 HammingAI SDK provides AIFunction tool wrappers compatible with Microsoft.Extensions.AI. These tools can be used with any IChatClient to give AI models access to Hamming's voice agent testing, experiment status tracking, call result retrieval, and dataset management.

Installation

1
dotnet add package HammingAI

Available Tools

Method Tool Name Description
AsRunVoiceAgentTestTool() RunVoiceAgentTest Start a voice agent test run with dataset scenarios
AsGetVoiceExperimentStatusTool() GetVoiceExperimentStatus Check voice experiment status (RUNNING/FINISHED/FAILED)
AsGetVoiceExperimentCallsTool() GetVoiceExperimentCalls Get call results with scoring, transcripts, and recordings
AsListDatasetsTool() ListDatasets List all datasets in the workspace

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
39
using HammingAI;
using Microsoft.Extensions.AI;

var hammingClient = new HammingAIClient(
    apiKey: Environment.GetEnvironmentVariable("HAMMING_API_KEY")!);

var options = new ChatOptions
{
    Tools =
    [
        hammingClient.AsRunVoiceAgentTestTool(),
        hammingClient.AsGetVoiceExperimentStatusTool(),
        hammingClient.AsGetVoiceExperimentCallsTool(),
        hammingClient.AsListDatasetsTool(),
    ],
};

IChatClient chatClient = /* your chat client */;

var messages = new List<ChatMessage>
{
    new(ChatRole.User, "List all available test datasets and show me their details."),
};

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;
}