网站建设策划书邢台网站建设

东莞意高机械工具有限公司 2026/09/09 18:19:31

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

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

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

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


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

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

医院网站建设方案淮南网站建设

工业以太网节点中ISR响应时间优化实战:从原理到落地在工业自动化现场,一个看似微不足道的中断延迟,可能就是决定产线是否停机的关键。我曾参与过一个EtherCA

2026/06/30 12:26:31

成都建设网站网站建设重庆

📖 摘要本报告介绍了UltraShape 1.0——一个可扩展的三维扩散框架,用于生成高保真三维几何体。该方案采用两阶段生成流程:首先生成粗糙的全局结构&#

2026/06/30 10:48:22

建设网站公司北京网站建设报价

钉钉宜搭低代码:快速搭建企业内部老照片数字化流程在一家老牌制造企业的档案室里,行政人员小李正小心翼翼地翻阅一箱泛黄的老照片——有建厂初期的黑白合影、八十年代的车间全景、还有

2026/06/30 11:57:58

南通网站建设黄冈网站建设

周五的江城,凛风裹着冬日的寒意从江上吹来,办公室的空调却像个顽固的 bug 一样,又热又干。李磊坐在工位前,屏幕亮着却没动过一行代码࿰

2026/06/30 10:58:52

深圳网站建设大连网站建设

高速PCB设计中的信号完整性实战指南:从理论到落地在调试一块新板子时,你是否遇到过这样的场景?示波器上的眼图几乎闭合,数据误码频繁发生ÿ

2026/06/30 13:05:35

青岛网站建设涪陵网站建设

还在为网盘下载速度慢而烦恼吗?网盘直链下载助手为您提供完美解决方案。这款免费开源的浏览器插件能够将各大网盘的分享链接转换为真实下载地址,让您无需安装官方客户端即可享受高速下

2026/06/30 11:04:23

无锡网站建设机械网站建设

重构游戏模组创作:从零掌握RPFM的进阶路径设计【免费下载链接】rpfmRusted PackFile Manager (RPFM) is a... reimplementation i

2026/06/30 13:26:36

泸州网站建设网站建设一条龙服务

简介本文全面对比2025年主流大型语言模型架构,包括DeepSeek V3、Gemma 3、Qwen3等前沿模型。深入解析MLA、MoE、滑动窗口注意力等创新技术,探讨Pr

2026/06/30 10:46:51

东莞手机网站建设网站建设中图片

文章目录具体实现截图主要技术与实现手段关于我本系统开发思路java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!具体实现截图同行可

2026/06/30 11:26:56

肇庆网站建设网站建设技术

如何在本地部署FaceFusion镜像并调用GPU算力?如今,从短视频平台的趣味换脸特效,到影视制作中的数字替身技术,高保真人脸替换已不再是遥不

2026/06/30 13:19:05