如何开发自定义Executor实现处理?
摘要:上一篇,我们学习了MAF中进行多Agent智能体的顺序和移交编排。但是,很多时候我们想要嵌入一些业务逻辑和结构化输出,亦或者是需要保持历史对话,这时我们就可以开发一些自定义Executor来组成工作流。本文介绍了Executor的基本概念
大家好,我是Edison。
上一篇,我们学习了MAF中进行多Agent智能体的顺序和移交编排。但是,很多时候我们想要嵌入一些业务逻辑和结构化输出,亦或者是需要保持历史对话,这时我们就可以开发一些自定义Executor来组成工作流。
什么是Executor?
Executor又称为执行器,它是MAF中处理工作流消息的基本构建模块,是接受结构化消息、执行并生成输出结果消息或事件的独立单元。
很多时候,我们想要封装一些复杂的业务流程到Agent的工作流中,又或者想要完全控制Agent的生命周期和对话历史,这时候我们就需要开发一些自定义的Executor。
例如,我们想要做一些严格的评分判断、循环控制、条件终止的业务逻辑,就需要自定义Executor了。
这里以一个智能营销文案的场景为例,假设一个企业有两个专家,一个专门负责编写文案,另一个则负责对文案进行审核评分。只有当撰写的文案通过审核负责人的审核(假设量化指标:评分>=8)才能进行发布,否则文案编写者需要根据审核人提供的反馈改进建议进行反复修改。
案例来自圣杰《.NET + AI 智能体开发进阶》
由上图可知,这里不仅需要文案专家 和 审核专家 嵌入一些评分和反馈的逻辑,还要设置循环和终止的条件,才能让这个工作流能够比较准确的满足企业的需求。因此,我们就需要开发两个自定义的Executor来封装文案撰写 和 文案审核的Agent。
那么,哪些场景不需要自定义Executor呢?
比如,就只需要一次性Agent的调用输出回答,又或者不需要嵌入严格的业务逻辑的场景。
下面,就让我们来一一实现这个案例。
准备工作
在今天的这个案例中,我们创建了一个.NET控制台应用程序,安装了以下NuGet包:
Microsoft.Agents.AI.OpenAI
Microsoft.Agents.AI.Workflows
Microsoft.Extensions.AI.OpenAI
我们的配置文件中定义了LLM API的信息:
{
"OpenAI": {
"EndPoint": "https://api.siliconflow.cn",
"ApiKey": "******************************",
"ModelId": "Qwen/Qwen3-30B-A3B-Instruct-2507"
}
}
这里我们使用 SiliconCloud 提供的Qwen/Qwen3-30B-A3B-Instruct-2507模型,之前的 Qwen2.5 模型在这个案例中不适用。你可以通过这个URL注册账号:https://cloud.siliconflow.cn/i/DomqCefW获取大量免费的Token来进行本次实验。
