mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
33 lines
1.5 KiB
Plaintext
33 lines
1.5 KiB
Plaintext
<#@ 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" #>
|
|
/// <summary>
|
|
/// Copies one or more messages into the specified agent conversation.
|
|
/// </summary>
|
|
internal sealed class <#= this.Name #>Executor(FormulaSession session, ResponseAgentProvider agentProvider) : ActionExecutor(id: "<#= this.Id #>", session)
|
|
{
|
|
// <inheritdoc />
|
|
protected override async ValueTask<object?> 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<ChatMessage[]>(this.Model.Messages, "messages");
|
|
#>
|
|
if (messages is not null)
|
|
{
|
|
foreach (ChatMessage message in messages)
|
|
{
|
|
await agentProvider.CreateMessageAsync(conversationId, message, cancellationToken).ConfigureAwait(false);
|
|
}
|
|
}
|
|
return default;
|
|
}
|
|
} |