<#@ template language="C#" inherits="ActionTemplate" visibility="internal" linePragmas="false" #> <#@ output extension=".cs" #> <#@ assembly name="System.Core" #> <#@ import namespace="Microsoft.Agents.ObjectModel" #> <#@ import namespace="Microsoft.Extensions.AI" #> <#@ include file="Snippets/AssignVariableTemplate.tt" once="true" #> <#@ include file="Snippets/EvaluateStringExpressionTemplate.tt" once="true" #> <#@ include file="Snippets/EvaluateValueExpressionTemplate.tt" once="true" #> /// /// Copies one or more messages into the specified agent conversation. /// internal sealed class <#= this.Name #>Executor(FormulaSession session, ResponseAgentProvider agentProvider) : ActionExecutor(id: "<#= this.Id #>", session) { // protected override async ValueTask ExecuteAsync(IWorkflowContext context, CancellationToken cancellationToken) {<# EvaluateStringExpression(this.Model.ConversationId, "conversationId", isNullable: true); #> if (string.IsNullOrWhiteSpace(conversationId)) { throw new DeclarativeActionException($"Conversation identifier must be defined: {this.Id}"); }<# EvaluateValueExpression(this.Model.Messages, "messages"); #> if (messages is not null) { foreach (ChatMessage message in messages) { await agentProvider.CreateMessageAsync(conversationId, message, cancellationToken).ConfigureAwait(false); } } return default; } }