2026/2/27 1:30:54
网站建设
项目流程
南宁网站制作定制,盐城网站定制,wordpress ssl 插件,可信赖的大良网站建设MAF 与 MEAI 工具调用中间件集成一句话简介MEAI 的 UseFunctionInvocation 与 MAF 的 Function Middleware 是嵌套协作关系#xff0c;前者负责自动化循环#xff0c;后者负责业务控制。#x1f3af; 核心价值✅ 嵌套协作#xff1a;UseFunctionInvocation 在外层#xff…MAF 与 MEAI 工具调用中间件集成一句话简介MEAI 的 UseFunctionInvocation 与 MAF 的 Function Middleware 是嵌套协作关系前者负责自动化循环后者负责业务控制。 核心价值✅嵌套协作UseFunctionInvocation 在外层MAF Middleware 在内层✅职责分离MEAI 管自动化MAF 管业务逻辑✅触发次数相等FunctionInvoker 和 MAF Middleware 触发次数相同 四层调用架构各层职责对比层级位置职责典型用途UseFunctionInvocationChatClient 层自动化循环管理迭代控制、并发调用MEAI FunctionInvokerChatClient 内部自定义调用前后逻辑监控、预处理MAF Function MiddlewareAgent 层业务逻辑控制日志、权限、Mock 执行链路1. LLM 返回需要调用工具 GetWeather ↓ 2. UseFunctionInvocation 检测到 FunctionCallContent ↓ 3. 调用 FunctionInvoker如果配置了 ↓ 4. FunctionInvoker 调用 context.Function.InvokeAsync() ↓ 5. 触发 MAF Function Middleware Pre-Invoke ↓ 6. ⚙️ 执行实际工具函数 GetWeather(北京) ↓ 7. 触发 MAF Function Middleware Post-Invoke ↓ 8. 返回给 FunctionInvoker ↓ 9. UseFunctionInvocation 将结果回传给 LLM 配置示例完整配置// 1️⃣ ChatClient 层配置 var chatClient baseChatClient .AsBuilder() .UseFunctionInvocation(configure: options { options.AllowConcurrentInvocation true; // 并发调用 options.MaximumIterationsPerRequest 10; // 迭代控制 // 可选自定义 FunctionInvoker options.FunctionInvoker async (context, ct) { Console.WriteLine($ MEAI: 调用 {context.Function.Name}); returnawait context.Function.InvokeAsync(context.Arguments, ct); }; }) .Build(); // 2️⃣ Agent 层配置 var agent chatClient.CreateAIAgent(...) .AsBuilder() .Use(async (agent, context, next, ct) { Console.WriteLine($ MAF: 调用 {context.Function.Name}); returnawait next(context, ct); }) .Build(); 最佳实践职责分离原则// ✅ 推荐清晰的职责分离 .UseFunctionInvocation(configure: options { // MEAI 层只负责自动化控制 options.AllowConcurrentInvocation true; options.MaximumIterationsPerRequest 10; // 不配置 FunctionInvoker让 MAF 层统一处理 }) .Use(async (agent, context, next, ct) { // MAF 层统一的企业级控制 ValidatePermission(context.Function.Name); // 权限检查 LogFunctionCall(context); // 审计日志 returnawait next(context, ct); })避免重复拦截// ❌ 避免在两个地方做相同的事 .UseFunctionInvocation(options { options.FunctionInvoker async (ctx, ct) { Console.WriteLine(MEAI: 日志记录); // 重复 returnawait ctx.Function.InvokeAsync(...); }; }) .Use(async (agent, ctx, next, ct) { Console.WriteLine(MAF: 日志记录); // 重复 returnawait next(ctx, ct); })使用场景选择场景推荐配置简单 Agent不使用 UseFunctionInvocation需要并发调用使用 UseFunctionInvocation企业级控制使用 MAF Function Middleware两者结合MEAI 自动化 MAF 业务控制 总结✅嵌套关系UseFunctionInvocation → FunctionInvoker → MAF Middleware → 工具✅触发次数FunctionInvoker 触发次数 MAF Middleware 触发次数✅职责分离MEAI 负责自动化MAF 负责业务逻辑✅最佳实践不要在两层做重复的事统一在 MAF 层处理如需获取文章配套完整代码可扫码咨询领取。