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

临安市锦城教育科技有限公司 2026/09/09 18:12:04

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

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

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

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


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

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

网站建设广告开县网站建设

nt!IopInitializeBuiltinDriver函数分析创建驱动对象和初始化例程的运行0: kd> dx -r1 -nv (*((ntkrnlmp!_DRIVER_OBJECT *)0

2026/06/30 13:16:05

网站建设案例网站建设的

为FLUX.1 schnell模型技术教程文章撰写仿写Prompt【免费下载链接】FLUX.1-schnell项目地址: https://ai.gitcode.com/hf_mirrors/black

2026/06/30 11:34:26

品牌网站建设邵阳网站建设

PyTorch分布式训练入门:Miniconda-Python3.10配置多GPU环境在深度学习模型动辄上百亿参数的今天,单块GPU早已无法满足训练需求。从BERT到LLa

2026/06/30 14:13:39

成都网站建设东莞网站建设公司

C++算法与数据结构实用案例解析在C++编程中,算法和数据结构是核心内容,它们能帮助解决各种实际问题。本文将介绍多个实用算法和数据结构的实现,包括电话号码规范化、字符串排列生成、电影平均评分计算、配对

2026/06/30 10:15:49

徐家汇网站建设株洲网站建设

Mac的权限是非常严密的,一旦没有数字签名,系统就会直接拒绝运行,但是有一种方法可以再次运行,在设置->隐私和安全性->最下面会出现

2026/06/30 13:59:08

英文网站建设濮阳网站建设

第一章:Python 3.13 即将废弃的功能概览Python 3.13 正在推进语言的现代化进程,逐步移除长期被标记为过时的语法与模块。这些变更旨在提升代码的可维护性、性

2026/06/30 10:03:48

珠海网站建设成都企业网站建设

AtomicBoolean是 Java 并发包 (java.util.concurrent.atomic) 里的一个“线程安全布尔”。一句话:它就是一个可以安全地被多线程同时读/写的布尔

2026/06/30 10:16:49

网站建设解决方案长沙营销型网站建设

1.面向对象vs面向过程如果是制作普通的计算器,我们可以面面俱到的把每一个可能会出现的计算过程通过代码来全部实现,但是,随着东西越来越复杂,比如

2026/06/30 09:58:17

医疗网站建设网站建设收费

JLink驱动安装与设备管理器识别实战:从踩坑到精通的完整指南在嵌入式开发的世界里,一个稳定的调试链路就是工程师的“生命线”。而这条生命线的第一环,往往不是代

2026/06/30 12:08:29

南京网站建设广东网站建设

SSH X11转发图形界面:远程运行PyTorch可视化程序在深度学习项目中,你是否曾遇到这样的场景:代码已经写好,模型也训练得差不多了

2026/06/30 12:07:59