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

北京淞争子青科技有限公司 2026/09/09 17:54:21

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 各司其职

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

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

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


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

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

建设网站制作濮阳网站建设

Red Hat KVM 虚拟化实战指南1. 准备工作与 KVM 包安装在开始使用 KVM 进行虚拟化操作前,需要注意两点:一是必须拥有虚拟化授权许可证,否则无法从 Red Hat 获取更新;二是由于使

2026/06/30 12:47:03

海口网站建设贵州网站建设

第一章:紧急修复代码视图异常!:VSCode模型可见性一键切换方案在使用 VSCode 进行大型项目开发时,频繁的模型文件加载可能导致编辑器渲染

2026/06/30 14:15:09

沈阳网站建设渭南网站建设

前面介绍了软件公司的痛点,这些痛点也会影响到应用系统开发的质量、时间和费用。今天我们再来看看应用系统的用户的痛点。这里的用户是指使用应用系统的用户。用户一般分两种,一种是企

2026/06/30 12:29:01

永康网站建设西安专业网站建设

云计算应用开发与标准化探索1. SaaS 应用概述软件即服务(SaaS)是一种云计算类型,它通过浏览器使用多租户架构将单个应用程序交付给众多(可能数千或数万个)客户。对于客户而言,无需前期投资服务器或

2026/06/30 11:34:26

网站建设空间晋江网站建设

阿里云OSS加速下载大模型文件的方法在AI研发节奏日益加快的今天,一个7B参数的大语言模型动辄13GB以上,如果每次实验都要花半小时从Hugging Face或ModelS

2026/06/30 11:56:29

嘉兴网站建设柳州网站建设

IAR 下载安装踩坑实录:新手避不开的 5 大“魔咒”,一文全破解你是不是也经历过这样的时刻?打开电脑,准备开始第一个嵌入式项目,

2026/06/30 12:58:34

外贸网站建设嘉定网站建设

远程访问与系统管理全攻略1. 远程访问设置1.1 拨号连接设置在设置好拨号服务器后,就可以配置拨号客户端了。可以有任意数量的拨号连接,例如,在笔记本电脑上可以设置一个用于互联网服务提供商(ISP)的拨

2026/06/30 10:46:21

网站建设解决方案辽宁省建设厅网站

还在为抖音视频带水印而烦恼吗?想要永久收藏那些精彩的短视频内容?douyin_downloader正是你需要的专业解决方案。这款开源工具通过智能解析技术,让你

2026/06/30 12:52:03

黄石网站建设网站建设免费

亲测好用8个AI论文网站,本科生搞定毕业论文不求人!AI 工具让论文写作不再难在当今这个信息爆炸的时代,越来越多的本科生开始借助 AI 工具来辅助完成毕业论文

2026/06/30 11:13:24

网站建设团队凯里网站建设

摘要随着信息技术的快速发展,企业管理的数字化转型已成为提升竞争力的关键。福泰轴承股份有限公司作为一家专注于轴承生产和销售的企业,传统的手工记录和纸质化管理方式已无法满足其日

2026/06/30 13:19:35