mirror of
https://github.com/microsoft/autogen.git
synced 2025-07-15 13:01:15 +00:00

* dotnet rework * add dotnet workload update to startup * fix build * interim fixup * this is the stuff that was missing * renaming the .net classes * more build fixup * port dev-team sample WIP * add proto messages and IHandle to agents * add github variables * remove OAgents gh-flow * remove OAgents library * add .vs to gitignore --------- Co-authored-by: Kosta Petan <kostapetan@gmail.com> Co-authored-by: Ryan Sweet <rysweet@microsoft.com>
39 lines
1.8 KiB
C#
39 lines
1.8 KiB
C#
using System.Diagnostics;
|
|
using Agents;
|
|
using Microsoft.AI.Agents.Worker.Client;
|
|
using AgentId = Microsoft.AI.Agents.Worker.Client.AgentId;
|
|
|
|
namespace DevTeam.Backend;
|
|
|
|
// TODO: Extract this to be part of the Client
|
|
public sealed class AgentClient(ILogger<AgentClient> logger, AgentWorkerRuntime runtime, DistributedContextPropagator distributedContextPropagator,
|
|
[FromKeyedServices("EventTypes")] EventTypes eventTypes)
|
|
: AgentBase(new ClientContext(logger, runtime, distributedContextPropagator), eventTypes )
|
|
{
|
|
public async ValueTask PublishEventAsync(CloudEvent evt) => await PublishEvent(evt);
|
|
public async ValueTask<RpcResponse> SendRequestAsync(AgentId target, string method, Dictionary<string, string> parameters) => await RequestAsync(target, method, parameters);
|
|
|
|
private sealed class ClientContext(ILogger<AgentClient> logger, AgentWorkerRuntime runtime, DistributedContextPropagator distributedContextPropagator) : IAgentContext
|
|
{
|
|
public AgentId AgentId { get; } = new AgentId("client", Guid.NewGuid().ToString());
|
|
public AgentBase? AgentInstance { get; set; }
|
|
public ILogger Logger { get; } = logger;
|
|
public DistributedContextPropagator DistributedContextPropagator { get; } = distributedContextPropagator;
|
|
|
|
public async ValueTask PublishEventAsync(CloudEvent @event)
|
|
{
|
|
await runtime.PublishEvent(@event).ConfigureAwait(false);
|
|
}
|
|
|
|
public async ValueTask SendRequestAsync(AgentBase agent, RpcRequest request)
|
|
{
|
|
await runtime.SendRequest(AgentInstance!, request).ConfigureAwait(false);
|
|
}
|
|
|
|
public async ValueTask SendResponseAsync(RpcRequest request, RpcResponse response)
|
|
{
|
|
await runtime.SendResponse(response).ConfigureAwait(false);
|
|
}
|
|
}
|
|
}
|