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

上海速莱乐流体机械设备有限公司 2026/09/09 19:06:30

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

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

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

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


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

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

九江网站建设合肥 网站建设

构建下一代AI应用开发平台:AISuite统一接口架构深度解析【免费下载链接】aisuiteSimple, unified interface to multiple Generativ

2026/06/30 11:13:24

网站建设技术深圳外贸网站建设

SSH 工具使用与配置全解析1. sshd 关键字详解1.1 基本选项–Q:若缺少 RSA 支持则安静运行。–t:进入测试模式。–u length:设置 utmp 结构的长度。–v:开启详细模式。–V

2026/06/30 11:00:53

杭州 网站建设网站建设数据

一、本文介绍?本文给大家介绍使用参数化小波下采样(PWD)模块改进DEIM的下采样模块,能够显著提升小目标检测的性能。PWD通过保留小目标的细节信息、增强频率域特征表达以及提高多尺度特征的一致性,有效

2026/06/30 11:31:56

建设网站大庆网站建设

基于大数据的热点话题分析系统的设计与实开题报告 基于大数据的热点话题分析系统的设计与实开题报告毕业论文(设计)开题报告题 目基于大数据的热点话题分析系统的设计与实现学 院专

2026/06/30 10:43:21

牡丹江网站建设哈尔滨网站建设

Haskell开发工具与基础编程入门1. Tmux的使用Tmux是一个能在单个终端中运行多个终端的应用程序。它具有诸多实用功能,比如可以将一组终端分离并重新连接到其他终端连接,能让程序在后台运行以监控

2026/06/30 12:08:29

网站建设价格宜昌网站建设

在实际应用中,如果我们仅仅需要完成的是《[[LaTeX学习笔记:文档排版基础]]》中所介绍的那些纯文本排版工作,其实并不一定需要用到LATEX这样复杂的排版系

2026/06/30 10:41:51

郴州网站建设三亚网站建设

负责任商业模型与网络保险风险分析的机器学习应用1. 网络风险现状与挑战网络风险正给企业带来难以预估的财务损失。随着信息系统的技术进步,系统互联、数据库数据存储与共享以及复杂的技术架构,都在不断增加企业

2026/06/30 10:31:50

江苏省建设厅网站php网站建设

你是否曾经在漫长的编程过程中感到枯燥乏味?是否希望有个可爱的小伙伴陪伴你度过每一次键盘敲击?BongoCat正是这样一个充满创意的开源项目,它将呆萌的猫咪形象

2026/06/30 11:03:23

荆州网站建设品牌网站建设公司

实战演练:光线追踪渲染性能优化三大利器【免费下载链接】raytracing.github.ioMain Web Site (Online Books)项目地址: https://gitc

2026/06/30 11:19:55