工厂网站怎么做,中国建设银行官网网址是多少,新乡公司做网站,网站大全网站免费MAF 中间件管道架构#xff1a;企业级 Agent 的三层拦截体系一句话简介MAF 提供三层中间件架构#xff0c;分别拦截 ChatClient 调用、Agent 运行和工具调用#xff0c;实现日志、限流、权限等企业级横切关注点。#x1f3af; 核心价值✅ 三层拦截#xff1a;ChatClient 层…MAF 中间件管道架构企业级 Agent 的三层拦截体系一句话简介MAF 提供三层中间件架构分别拦截 ChatClient 调用、Agent 运行和工具调用实现日志、限流、权限等企业级横切关注点。 核心价值✅三层拦截ChatClient 层、Agent Run 层、Function Invocation 层✅职责分离每层处理不同粒度的横切关注点✅灵活组合可独立或组合使用按需配置 三层中间件架构各层职责对比层级拦截时机典型用途触发频率Agent RunRunAsync()调用PII 过滤、Guardrails每次 Agent 调用 1 次ChatClientLLM 调用Token 统计、限流、缓存每次 LLM 调用可能多次Function工具执行日志、权限检查、Mock每次工具调用 实现方式1. ChatClient 中间件使用 MEAI 的DelegatingChatClient或Use()方法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();各层职责建议层级推荐用途ChatClientToken 统计、限流、缓存、重试Agent RunPII 过滤、Guardrails、全局审计Function权限检查、调用日志、Mock 数据 总结✅三层架构ChatClient、Agent Run、Function Invocation 各司其职✅洋葱模型请求从外向内响应从内向外✅灵活组合根据需求选择合适的中间件层级✅企业级应用安全检查最外层性能优化靠内层如需获取文章配套完整代码可扫码咨询领取。