Files
agent-framework/dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/Kit/AgentExecutor.cs
T
ChrisandGitHub 77e90e6013 .NET Workflows - Rename agent-provider and add comments (Declarative Workflows) (#3895)
* Renamed with comments

* Fix rename arcs

* Integration tests
2026-02-13 03:21:41 +00:00

38 lines
1.8 KiB
C#

// Copyright (c) Microsoft. All rights reserved.
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Agents.AI.Workflows.Declarative.Extensions;
using Microsoft.Extensions.AI;
namespace Microsoft.Agents.AI.Workflows.Declarative.Kit;
/// <summary>
/// Base class for agent invokcation.
/// </summary>
/// <param name="id">The executor id</param>
/// <param name="session">Session to support formula expressions.</param>
/// <param name="agentProvider">Provider for accessing and manipulating agents and conversations.</param>
public abstract class AgentExecutor(string id, FormulaSession session, ResponseAgentProvider agentProvider) : ActionExecutor(id, session)
{
/// <summary>
/// Invokes an agent using the provided <see cref="ResponseAgentProvider"/>.
/// </summary>
/// <param name="context">The workflow execution context providing messaging and state services.</param>
/// <param name="agentName">The name or identifier of the agent.</param>
/// <param name="conversationId">The identifier of the conversation.</param>
/// <param name="autoSend">Send the agent's response as workflow output. (default: true).</param>
/// <param name="inputMessages">Optional messages to add to the conversation prior to invocation.</param>
/// <param name="cancellationToken">A token that can be used to observe cancellation.</param>
/// <returns></returns>
protected ValueTask<AgentResponse> InvokeAgentAsync(
IWorkflowContext context,
string agentName,
string? conversationId,
bool autoSend,
IEnumerable<ChatMessage>? inputMessages = null,
CancellationToken cancellationToken = default)
=> agentProvider.InvokeAgentAsync(this.Id, context, agentName, conversationId, autoSend, inputMessages, inputArguments: null, cancellationToken);
}