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

厦门宇添科技有限公司 2026/09/09 19:44:28

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

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

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

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


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

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

专业网站建设泉州网站建设

随着macOS应用程序的日益丰富,菜单栏拥挤已经成为许多用户的工作效率障碍。密密麻麻的图标不仅影响视觉体验,更让重要功能难以快速定位。Ice作为一款专为macOS 14&#

2026/06/30 13:51:37

洛阳网站建设php网站建设

Linux集群计算机基础入门1. 集群的定义与优势在当今数字化时代,集群计算成为了热门话题。那么,什么是集群计算机呢?集群计算机是一组通过专门的硬件和软件相互连接的独立计算机,它们向用户呈现单一系统映

2026/06/30 13:13:34

网站建设费用网站建设一条龙

【金融AI实战】45分钟构建智能投研系统:基于FinBERT的财报分析自动化【免费下载链接】pubmedbert-base-embeddings项目地址: https://ai.gitc

2026/06/30 13:55:07

丹阳网站建设黑龙江网站建设

用TCC体验C语言编译器自举的奇妙之旅在嵌入式系统调试的深夜,你是否曾遇到过这样的困境:目标设备资源紧张,GCC 启动慢、依赖多,连最基本的 C

2026/06/30 10:55:22

网站建设多少钱河北网站建设

PyTorch v2.8 相比 v2.7 有哪些关键升级?在深度学习领域,框架的每一次版本迭代都可能带来训练效率的跃迁。当研究人员还在为大模型显存溢出而头疼、工程师苦于分布

2026/06/30 10:51:52

泰州网站建设内蒙古网站建设

Excalidraw模板库推荐:节省80%的绘图时间在技术团队频繁进行系统设计、架构评审和需求对齐的今天,一张清晰明了的图表往往比千言万语更有效。但现实是,很

2026/06/30 10:55:22

网站建设公司哪个好机票网站建设

商标近似度判断AI:品牌维权的新手段在电商平台每秒新增成千上万商品的今天,一个伪造的“耐克勾”图标可能正悄然出现在某个冷门店铺中。传统靠人工审核来识别这些细微差别的做法早已

2026/06/30 12:12:30

网站建设教程网站建设套餐

海关货物查验的智能跃迁:用 Qwen3-VL 实现申报单与实物图像的自动化比对在跨境物流日益高频、商品形态愈发复杂的今天,海关一线查验人员每天面对成千上万份报关单和堆积如山

2026/06/30 13:51:37

上海外贸网站建设四川网站建设

调试工具与引导加载程序全解析1. 远程目标控制工具远程目标控制工具可让你远程发送命令来控制目标设备、启动程序以及查看运行进程,还能从工作站终止目标设备上的部分运行进程。使用该工具时,需要在CE目标设备

2026/06/30 10:23:19