// Copyright (c) Microsoft Corporation. All rights reserved. // EchoAgent.cs using System.Collections.Generic; using System.Linq; using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; namespace AutoGen.Tests { public class EchoAgent : IStreamingAgent { public EchoAgent(string name) { Name = name; } public string Name { get; } public Task GenerateReplyAsync( IEnumerable conversation, GenerateReplyOptions? options = null, CancellationToken ct = default) { // return the most recent message var lastMessage = conversation.Last(); lastMessage.From = this.Name; return Task.FromResult(lastMessage); } public async IAsyncEnumerable GenerateStreamingReplyAsync(IEnumerable messages, GenerateReplyOptions? options = null, [EnumeratorCancellation] CancellationToken cancellationToken = default) { foreach (var message in messages) { message.From = this.Name; yield return message; } } } }