Table of Contents

By default, OpenAIChatAgent only supports the IMessage type where T is original request or response message from Azure.AI.OpenAI. To support more AutoGen built-in message types like TextMessage, ImageMessage, MultiModalMessage and so on, you can register the agent with OpenAIChatRequestMessageConnector. The OpenAIChatRequestMessageConnector will convert the message from AutoGen built-in message types to Azure.AI.OpenAI.ChatRequestMessage and vice versa.

import the required namespaces:

using AutoGen.Core;
using AutoGen.OpenAI;
using AutoGen.OpenAI.Extension;
// register message connector to support more message types
var agentWithConnector = openAIChatAgent
    .RegisterMessageConnector();

// now the agentWithConnector supports more message types
var messages = new IMessage[]
{
    MessageEnvelope.Create(new UserChatMessage("Hello")),
    new TextMessage(Role.Assistant, "Hello", from: "user"),
    new MultiModalMessage(Role.Assistant,
        [
            new TextMessage(Role.Assistant, "Hello", from: "user"),
        ],
        from: "user"),
    new TextMessage(Role.Assistant, "Hello", from: "user"), // Message type is going to be deprecated, please use TextMessage instead
};

foreach (var message in messages)
{
    reply = await agentWithConnector.SendAsync(message);

    reply.Should().BeOfType<TextMessage>();
    reply.As<TextMessage>().From.Should().Be("assistant");
}