2024-10-30 11:53:37 -07:00
|
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
|
|
// Program.cs
|
2025-01-28 17:13:36 -05:00
|
|
|
|
2025-02-12 18:37:42 -05:00
|
|
|
using Microsoft.AutoGen.Agents;
|
2024-12-12 19:43:26 -08:00
|
|
|
using Microsoft.AutoGen.Contracts;
|
2024-12-13 11:55:43 -08:00
|
|
|
using Microsoft.AutoGen.Core;
|
2025-02-13 16:43:57 -08:00
|
|
|
using Microsoft.AutoGen.Core.Grpc;
|
2025-01-28 17:13:36 -05:00
|
|
|
using Samples;
|
2025-02-13 16:43:57 -08:00
|
|
|
var appBuilder = new AgentsAppBuilder(); // Create app builder
|
|
|
|
// if we are using distributed, we need the AGENT_HOST var defined and then we will use the grpc runtime
|
|
|
|
if (Environment.GetEnvironmentVariable("AGENT_HOST") is string agentHost)
|
|
|
|
{
|
|
|
|
appBuilder.AddGrpcAgentWorker(agentHost)
|
|
|
|
.AddAgent<HelloAgent>("HelloAgent");
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
// Set up app builder for in-process runtime, allow message delivery to self, and add the Hello agent
|
|
|
|
appBuilder.UseInProcessRuntime(deliverToSelf: true).AddAgent<HelloAgent>("HelloAgent");
|
|
|
|
}
|
2025-01-28 17:13:36 -05:00
|
|
|
var app = await appBuilder.BuildAsync(); // Build the app
|
|
|
|
// Create a custom message type from proto and define message
|
2025-02-13 16:43:57 -08:00
|
|
|
var message = new NewMessageReceived { Message = "Hello World!" };
|
|
|
|
await app.PublishMessageAsync(message, new TopicId("HelloTopic")).ConfigureAwait(false); // Publish custom message (handler has been set in HelloAgent)
|
|
|
|
await app.WaitForShutdownAsync().ConfigureAwait(false); // Wait for shutdown from agent
|