山西网站建设网站建设工具

唐山市路北区西山道丝诗秀美发店 2026/09/09 19:14:20

MAF 中间件管道架构:企业级 Agent 的三层拦截体系

一句话简介

MAF 提供三层中间件架构,分别拦截 ChatClient 调用、Agent 运行和工具调用,实现日志、限流、权限等企业级横切关注点。


🎯 核心价值

  • 三层拦截:ChatClient 层、Agent Run 层、Function Invocation 层

  • 职责分离:每层处理不同粒度的横切关注点

  • 灵活组合:可独立或组合使用,按需配置


📝 三层中间件架构

各层职责对比

层级

拦截时机

典型用途

触发频率

Agent RunRunAsync()

调用

PII 过滤、Guardrails

每次 Agent 调用 1 次

ChatClient

LLM 调用

Token 统计、限流、缓存

每次 LLM 调用(可能多次)

Function

工具执行

日志、权限检查、Mock

每次工具调用


💻 实现方式

1. ChatClient 中间件

使用 MEAI 的DelegatingChatClientUse()方法:

var chatClient = AIClientHelper.GetDefaultChatClient() .AsBuilder() .Use(getResponseFunc: async (messages, options, innerClient, ct) => { Console.WriteLine($"📊 [ChatClient] 请求消息数: {messages.Count()}"); var response = await innerClient.GetResponseAsync(messages, options, ct); Console.WriteLine($"📊 [ChatClient] Token: {response.Usage?.TotalTokenCount}"); return response; }) .Build();

核心要点:

  • 🔧 拦截每次 LLM 调用

  • 🔧 可访问完整的请求和响应

  • 🔧 适用于监控、限流、缓存等场景


2. Agent Run 中间件

使用AgentBuilder.Use()添加:

var agent = chatClient.CreateAIAgent(instructions: "你是智能助手") .AsBuilder() .Use(async (messages, thread, options, innerAgent, ct) => { Console.WriteLine($"🛡️ [Agent Run] Pre-Run 检查"); var response = await innerAgent.RunAsync(messages, thread, options, ct); Console.WriteLine($"🛡️ [Agent Run] Post-Run 完成"); return response; }, null) .Build();

核心要点:

  • 🛡️ 包裹整个 Agent 执行流程

  • 🛡️ 适用于安全检查、审计日志

  • 🛡️ 每次RunAsync()只触发一次


3. Function Invocation 中间件

拦截工具函数的执行:

var agent = chatClient.CreateAIAgent(...) .AsBuilder() .Use(async (agent, context, next, ct) => { Console.WriteLine($"🔧 [Function] 调用: {context.Function.Name}"); var result = await next(context, ct); Console.WriteLine($"🔧 [Function] 结果: {result}"); return result; }) .Build();

核心要点:

  • 🔧 拦截每个工具函数调用

  • 🔧 可修改参数或覆盖结果

  • 🔧 适用于权限检查、Mock 数据


🏢 企业级最佳实践

推荐的中间件组合

// 1️⃣ ChatClient 层:监控和性能 var chatClient = baseChatClient.AsBuilder() .Use(new TokenMonitoringMiddleware()) .Use(new RateLimitingMiddleware()) .Build(); // 2️⃣ Agent 层:安全和审计 var agent = chatClient.CreateAIAgent(...) .AsBuilder() .Use(PIIFilterMiddleware, null) // PII 过滤 .Use(GuardrailsMiddleware, null) // 内容安全 .Use(FunctionLoggingMiddleware) // 工具日志 .Build();

各层职责建议

层级

推荐用途

ChatClient

Token 统计、限流、缓存、重试

Agent Run

PII 过滤、Guardrails、全局审计

Function

权限检查、调用日志、Mock 数据


🎯 总结

  • 三层架构:ChatClient、Agent Run、Function Invocation 各司其职

  • 洋葱模型:请求从外向内,响应从内向外

  • 灵活组合:根据需求选择合适的中间件层级

  • 企业级应用:安全检查最外层,性能优化靠内层


如需获取文章配套完整代码,可扫码咨询领取。👇

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

淄博网站建设网站的建设

Jupyter Notebook转PDF或HTML分享研究成果在深度学习项目开发中,一个常见的挑战是:如何让辛苦跑出来的实验结果不仅能在自己的GPU服务器上重现࿰

2026/06/30 11:31:55

怎样建设网站东阳网站建设

GPT-SoVITS API开发:从本地到云端部署在智能语音内容爆发的今天,个性化声音不再是影视明星或专业配音员的专属。越来越多的应用场景——比如虚拟主播、有声书生成、AI

2026/06/30 12:33:02

网站建设中黄冈网站建设

Windows XP问题修复与系统恢复全攻略1. 操作系统更新概述操作系统需要持续支持,支持通常以修复程序、补丁和附加组件的形式出现。Windows Update是保持Windows XP系统更新的最

2026/06/30 10:31:20

随州网站建设山西网站建设

减少90%调试时间:M2FP预置环境规避常见依赖冲突📖 项目简介:为什么我们需要一个稳定的M2FP解析服务?在计算机视觉领域,人

2026/06/30 13:52:07

湖州网站建设网站企业建设

网盘直链下载助手推荐:方便分发HeyGem生成的大体积视频文件在AI内容创作日益普及的今天,数字人视频正快速渗透进企业宣传、在线教育、短视频运营等多个领域。像HeyGem这

2026/06/30 12:32:02

潍坊网站建设做网站建设的

5分钟掌握QR Code Monster v2:创意二维码终极指南【免费下载链接】control_v1p_sd15_qrcode_monster项目地址: https://ai.gitc

2026/06/30 13:44:07

南充网站建设住房城乡建设部网站

第一章:Python 3.13 新函数概述Python 3.13 引入了一系列新函数和内置改进,进一步增强了语言的表达能力与运行效率。这些新增功能主要集中在标准库优化、类型

2026/06/30 10:39:21

湛江网站建设徐汇网站建设

Windows系统维护、备份与安装全攻略在使用Windows系统的过程中,我们难免会遇到各种各样的问题,如硬件或软件故障、系统不稳定、数据丢失等。本文将为大家详细介绍如何解决这些问题,以及如何进行系统

2026/06/30 13:18:05

绵阳网站建设山东网站建设

在论文、报告、内容创作越来越严格的时代,查AI率、检测AI率、降AI率已经成为学生、写作者、博主的日常需求。很多同学因为 AI率过高被导师指出“AI痕迹太重”,甚至退回重写

2026/06/30 10:45:51