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.

Program.cs 1.7 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using Microsoft.AutoGen.Agents.Abstractions;
  2. using Microsoft.AutoGen.Agents.Client;
  3. using Microsoft.AutoGen.Agents.Runtime;
  4. using Microsoft.Extensions.DependencyInjection;
  5. using Microsoft.Extensions.Hosting;
  6. var builder = Host.CreateApplicationBuilder(args);
  7. builder.AddAgentService();
  8. builder.UseOrleans(siloBuilder =>
  9. {
  10. siloBuilder.UseLocalhostClustering(); ;
  11. });
  12. builder.AddAgentWorker("https://localhost:5000");
  13. var app = builder.Build();
  14. await app.StartAsync();
  15. app.Services.GetRequiredService<AgentWorkerRuntime>();
  16. var evt = new NewMessageReceived
  17. {
  18. Message = "World"
  19. }.ToCloudEvent("HelloAgents");
  20. await app.WaitForShutdownAsync();
  21. [TopicSubscription("HelloAgents")]
  22. public class HelloAgent(
  23. IAgentContext context,
  24. [FromKeyedServices("EventTypes")] EventTypes typeRegistry) : ConsoleAgent(
  25. context,
  26. typeRegistry),
  27. ISayHello,
  28. IHandle<NewMessageReceived>,
  29. IHandle<ConversationClosed>
  30. {
  31. public async Task Handle(NewMessageReceived item)
  32. {
  33. var response = await SayHello(item.Message);
  34. var evt = new Output
  35. {
  36. Message = response
  37. }.ToCloudEvent(this.AgentId.Key);
  38. await PublishEvent(evt);
  39. }
  40. public async Task Handle(ConversationClosed item)
  41. {
  42. var goodbye = "Goodbye!";
  43. var evt = new Output
  44. {
  45. Message = goodbye
  46. }.ToCloudEvent(this.AgentId.Key);
  47. await PublishEvent(evt);
  48. }
  49. public async Task<string> SayHello(string ask)
  50. {
  51. var response = $"Hello {ask}";
  52. return response;
  53. }
  54. }
  55. public interface ISayHello
  56. {
  57. public Task<string> SayHello(string ask);
  58. }