You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

TestProtobufAgent.cs 1.6 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. // Copyright (c) Microsoft Corporation. All rights reserved.
  2. // TestProtobufAgent.cs
  3. using Microsoft.AutoGen.Contracts;
  4. using Microsoft.AutoGen.Core.Grpc.Tests.Protobuf;
  5. using Microsoft.Extensions.Logging;
  6. namespace Microsoft.AutoGen.Core.Grpc.Tests;
  7. /// <summary>
  8. /// The test agent is a simple agent that is used for testing purposes.
  9. /// </summary>
  10. public class TestProtobufAgent(AgentId id,
  11. IAgentRuntime runtime,
  12. Logger<BaseAgent>? logger = null) : BaseAgent(id, runtime, "Test Agent", logger),
  13. IHandle<TextMessage>,
  14. IHandle<RpcTextMessage, RpcTextMessage>
  15. {
  16. public ValueTask HandleAsync(TextMessage item, MessageContext messageContext)
  17. {
  18. ReceivedMessages[item.Source] = item.Content;
  19. return ValueTask.CompletedTask;
  20. }
  21. public ValueTask<RpcTextMessage> HandleAsync(RpcTextMessage item, MessageContext messageContext)
  22. {
  23. ReceivedMessages[item.Source] = item.Content;
  24. return ValueTask.FromResult(new RpcTextMessage { Source = item.Source, Content = item.Content });
  25. }
  26. public List<object> ReceivedItems { get; private set; } = [];
  27. /// <summary>
  28. /// Key: source
  29. /// Value: message
  30. /// </summary>
  31. private readonly Dictionary<string, object> _receivedMessages = new();
  32. public Dictionary<string, object> ReceivedMessages => _receivedMessages;
  33. }
  34. [TypeSubscription("TestTopic")]
  35. public class SubscribedProtobufAgent : TestProtobufAgent
  36. {
  37. public SubscribedProtobufAgent(AgentId id,
  38. IAgentRuntime runtime,
  39. Logger<BaseAgent>? logger = null) : base(id, runtime, logger)
  40. {
  41. }
  42. }