news 2026/10/11 11:04:57

自定义 Agent Executor:为 Agent 穿上“业务战甲

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
自定义 Agent Executor:为 Agent 穿上“业务战甲

一句话简介

本文将教你构建自定义Executor,不仅能管理 Agent 的对话生命周期,还能集成结构化输出、路由分发和自定义事件,打造真正的智能业务单元。


🎯 为什么需要自定义 Agent Executor?

虽然WorkflowBuilder可以直接添加AIAgent,但在复杂的业务场景下,我们往往需要更多控制权。

需求场景

直接使用 Agent

自定义 Agent Executor

对话历史

❌ 单次调用无记忆

✅ 管理AgentThread保持上下文

多重输入

❌ 仅支持单一文本

✅ 通过路由处理多种消息类型

输出控制

❌ 自由文本

✅ 强制 JSON 结构化输出

业务逻辑

❌ 纯 LLM 生成

✅ 嵌入评分、循环、熔断逻辑

核心理念:将 Agent 封装在 Executor 内部,让 LLM 的智能与代码的确定性完美融合。


💻 核心实现三部曲

1. 结构化输出与状态管理

首先,定义强类型的数据模型,并在 Executor 中持有 Agent 和对话线程。

// 定义数据模型 publicclassSloganResult { publicstring Slogan { get; set; } } // 自定义 Executor publicclassWriterExecutor : Executor { privatereadonly AIAgent _agent; privatereadonly AgentThread _thread; // ✅ 保持对话记忆 public WriterExecutor(AIAgent agent) : base("Writer") { _agent = agent; _thread = new AgentThread(); // 每个实例拥有独立线程 } }

2. 配置多路路由 (RouteBuilder)

一个智能节点往往需要处理多种类型的输入。例如:初次生成任务(string)和后续修改意见(Feedback)。

protected override RouteBuilder ConfigureRoutes(RouteBuilder builder) => builder // 处理初始需求 .AddHandler<string, SloganResult>(HandleInitialTaskAsync) // 处理反馈意见 .AddHandler<FeedbackResult, SloganResult>(HandleFeedbackAsync);

3. 实现业务逻辑 Handlers

在 Handler 中调用 Agent,利用结构化输出能力,并将结果转化为强类型对象。

private async ValueTask<SloganResult> HandleInitialTaskAsync( string task, IWorkflowContext context, CancellationToken ct) { // 1. 添加用户消息到线程 await _thread.AddUserMessageAsync($"任务:{task}"); // 2. 调用 Agent 并强制 JSON 输出 var response = await _agent.RunAsync(_thread, new AgentOptions { ResponseFormat = typeof(SloganResult) }, ct); // 3. 反序列化 var result = JsonSerializer.Deserialize<SloganResult>(response.Content); // 4.发布业务事件 await context.AddEventAsync(new SloganGeneratedEvent(result), ct); return result; }

🏢 典型场景:循环优化工作流

利用自定义 Executor,我们可以实现经典的Generator-Critic(生成-评价)循环模式。

关键点:

  • CriticExecutor:负责打分并提出修改意见。

  • 循环机制:FeedbackResult被路由回WriterExecutor。

  • 记忆增强:Writer 的_thread保存了之前的尝试,能理解“请根据这个意见修改”的指令。


🎯 总结

自定义 Agent Executor 是构建高级 Agentic Workflow 的基石。

  • ✅封装性:将 Prompt、配置和逻辑封装在一个类中。

  • ✅记忆力:通过AgentThread实现多轮对话状态管理。

  • ✅灵活性:多路由机制让节点能响应不同的“刺激”。

下一步,掌握了这些积木,你就可以搭建能够自主迭代、自我修正的复杂 AI 系统了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/5 9:30:56

DeepSeek-R1 vs Llama3-8B对比:蒸馏与原生模型评测

DeepSeek-R1 vs Llama3-8B对比&#xff1a;蒸馏与原生模型评测 1. 为什么这场对比值得你花5分钟读完 你是不是也遇到过这些困惑&#xff1a; 想在本地跑一个真正好用的对话模型&#xff0c;但显卡只有RTX 3060&#xff0c;连Llama3-70B想都不敢想&#xff1b;看到“DeepSeek…

作者头像 李华
网站建设 2026/10/9 19:18:57

ViGEmBus虚拟手柄驱动完全指南:从安装到高级应用

ViGEmBus虚拟手柄驱动完全指南&#xff1a;从安装到高级应用 【免费下载链接】ViGEmBus 项目地址: https://gitcode.com/gh_mirrors/vig/ViGEmBus 什么是ViGEmBus及其核心价值 ViGEmBus是一款创新的Windows内核级驱动程序&#xff0c;它能够将任何输入设备模拟成系统原…

作者头像 李华
网站建设 2026/10/10 17:42:34

YOLO26预测不显示结果?show/save参数设置教程

YOLO26预测不显示结果&#xff1f;show/save参数设置教程 你是不是也遇到过这样的情况&#xff1a;运行YOLO26推理脚本后&#xff0c;终端里明明打印出了检测框坐标和置信度&#xff0c;但屏幕上却什么都没弹出来&#xff1f;或者图片保存路径里空空如也&#xff0c;连个结果图…

作者头像 李华
网站建设 2026/10/8 21:42:22

x64dbg数据监视窗口使用指南

以下是对您提供的博文《x64dbg数据监视窗口深度技术解析》的 全面润色与专业重构版本 。本次优化严格遵循您的全部要求: ✅ 彻底去除AI痕迹,语言自然、老练、有“人味”,像一位深耕逆向多年的技术博主在深夜调试间隙写下的实战笔记; ✅ 打破模板化结构,取消所有程式化…

作者头像 李华
网站建设 2026/10/8 23:49:28

低成本高产出:麦橘超然在消费级显卡上的表现

低成本高产出&#xff1a;麦橘超然在消费级显卡上的表现 你是否试过在RTX 3060、4070甚至更入门的RTX 3050上跑Flux模型&#xff1f;不是“勉强能动”&#xff0c;而是真正生成出细节丰富、构图稳定、风格可控的高质量图像——不报错、不爆显存、不反复重启。这不是理想状态&a…

作者头像 李华
网站建设 2026/10/9 12:06:45

JVM垃圾回收算法与收集器面试题详解

一、垃圾回收算法基础 1. 请详细说明主流的垃圾回收算法及其优缺点 问题分析角度&#xff1a; 考察对GC算法理论基础的掌握考察算法适用场景的判断能力考察算法演进过程的理解 1.1 标记-清除算法(Mark-Sweep) 算法原理&#xff1a; 标记阶段&#xff1a; 标记所有需要回收…

作者头像 李华