news 2026/6/9 23:45:50

.NET+AI | Agent | Agent as Function (14)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
.NET+AI | Agent | Agent as Function (14)

Agent 转换为工具:实现 Agent 嵌套调用

一句话简介

MAF 提供两种方式将 Agent 转换为可复用工具:AsAIFunction()用于应用内嵌套,MCP 工具用于跨平台互操作。


🎯 核心价值

  • 复用性:将 Agent 封装为工具,在不同场景下复用

  • 两种模式:AsAIFunction(进程内)和 MCP Tool(跨平台)

  • 组合能力:通过 Agent 嵌套构建复杂业务逻辑


📝 两种复用模式对比

特性

AsAIFunction

AsMcpTool

适用场景

应用内嵌套调用

跨应用、跨平台调用

性能

⚡ 高(进程内调用)

🔌 中(进程间通信)

互操作性

🔒 .NET 限定

🌐 支持任何 MCP 客户端

调试工具

无专用工具

MCP Inspector

复杂度

⭐ 简单

⭐⭐ 中等


💻 方式一:AsAIFunction

场景:应用内 Agent 嵌套

实现步骤

// 1️⃣ 创建子 Agent(天气助手) var weatherAgent = chatClient.CreateAIAgent( instructions: "你是天气查询助手", name: "WeatherAgent", tools: [AIFunctionFactory.Create(GetWeather)] ); // 2️⃣ 转换为 AIFunction var weatherFunction = weatherAgent.AsAIFunction(); // 3️⃣ 注册到主 Agent var travelAgent = chatClient.CreateAIAgent( instructions: "你是旅行助手,可以调用天气助手查询天气", name: "TravelAgent", tools: [weatherFunction] // 注册子 Agent 作为工具 );

核心要点:

  • 🔧AsAIFunction()将整个 Agent 封装为函数

  • 🔧 子 Agent 保留完整能力(包括工具调用)

  • 🔧 适用于层次化 Agent 架构


💻 方式二:MCP Tool

场景:跨平台 Agent 调用

实现步骤

// 1️⃣ 将 Agent 转换为 MCP 工具 var weatherAgentFunction = weatherAgent.AsAIFunction(); var weatherMcpTool = McpServerTool.Create(weatherAgentFunction); // 2️⃣ 创建 MCP Server 并注册工具 var (mcpClient, mcpServer) = await McpHelper.CreateInMemoryClientAndServerAsync( tools: [weatherMcpTool] ); // 3️⃣ 通过 MCP 调用 var result = await mcpClient.CallToolAsync( toolName: "WeatherAgent", arguments: new Dictionary<string, object> { { "query", "北京天气" } } );

核心要点:

  • 🌐 任何 MCP 客户端都可以调用(Claude、VS Code 等)

  • 🌐 使用Cast<AIFunction>()将 MCP 工具转换回 AIFunction

  • 🌐 支持跨语言、跨平台互操作


🏢 企业级实战:多 Agent 协作

智能客服系统

// 创建多个专项 Agent var weatherAgent = CreateWeatherAgent(); var orderAgent = CreateOrderAgent(); // 通过 MCP 获取外部服务 var couponMcpFunctions = await couponMcpClient.ListToolsAsync(); // 组合到主 Agent var mainAgent = chatClient.CreateAIAgent( instructions: "你是智能客服助手", tools: [ weatherAgent.AsAIFunction(), // 内部 Agent orderAgent.AsAIFunction(), // 内部 Agent ..couponMcpFunctions.Cast<AIFunction>() // 外部 MCP 工具 ] );

混合架构

主 Agent ├─ 内部 Agent (AsAIFunction) │ ├─ 订单处理 Agent │ └─ 库存查询 Agent └─ 外部服务 (MCP) ├─ 天气服务 └─ 物流追踪

🎯 总结

  • AsAIFunction:应用内嵌套,性能高,适合层次化架构

  • MCP Tool:跨平台互操作,支持 Claude/VS Code 等客户端

  • 混合使用:内部 Agent 用 AsAIFunction,外部服务用 MCP

  • 企业应用:构建可复用、可组合的 Agent 生态


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

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

定向广播技术重塑高速公路管理新范式:从“大喇叭”到“声波聚焦”的时代跨越

定向广播扬声器凭借强指向性、高声压穿透、低环境干扰等核心优势&#xff0c;在高速公路的应急处置、安全预警、交通疏导等场景中发挥关键作用&#xff0c;可精准向目标区域 / 车辆传递信息&#xff0c;提升通行安全与管理效率。核心应用场景与价值应急事件快速处置事故 / 故障…

作者头像 李华
网站建设 2026/6/3 11:12:19

LangFlow JSON解析器节点应用实例:提取结构化结果

LangFlow JSON解析器节点应用实例&#xff1a;提取结构化结果 在构建基于大语言模型&#xff08;LLM&#xff09;的应用时&#xff0c;一个常见但棘手的问题浮出水面&#xff1a;如何让AI“说人话”的同时&#xff0c;还能“写机器能读的格式”&#xff1f; 设想这样一个场景&a…

作者头像 李华
网站建设 2026/6/5 13:38:33

基于IAR安装的实时控制程序部署:项目应用

从零开始搭建高效嵌入式开发环境&#xff1a;IAR实战部署与实时控制工程全解析 你有没有遇到过这样的场景&#xff1f;项目紧急上线&#xff0c;代码写完了&#xff0c;却卡在“编译失败”上——提示找不到芯片定义、链接脚本报错、调试器连不上目标板……最后排查半天&#x…

作者头像 李华
网站建设 2026/6/9 15:51:52

Arduino创意作品全面讲解:基于Uno的电子骰子

用Arduino Uno打造一个会“摇”的电子骰子&#xff1a;从零开始的完整实践你有没有想过&#xff0c;只用几颗LED、一个按钮和一块Arduino Uno&#xff0c;就能做出一个能“掷”出随机点数的电子骰子&#xff1f;听起来像玩具&#xff0c;但背后却藏着嵌入式开发的核心逻辑——输…

作者头像 李华
网站建设 2026/6/9 19:48:00

LangFlow故事接龙游戏开发体验分享

LangFlow故事接龙游戏开发体验分享 在内容创作与AI交互日益融合的今天&#xff0c;如何让非技术人员也能轻松参与智能叙事设计&#xff1f;一个典型的挑战出现在“故事接龙”这类创意型应用中&#xff1a;既要保证多轮对话的上下文连贯性&#xff0c;又要支持灵活的情节分支和…

作者头像 李华
网站建设 2026/6/9 18:15:40

LangFlow慢性病管理提醒机器人构想

LangFlow慢性病管理提醒机器人构想 在慢性病患者日益增多的今天&#xff0c;如何帮助高血压、糖尿病等长期服药人群保持良好的治疗依从性&#xff0c;已成为医疗健康领域的一大挑战。许多患者并非不重视健康&#xff0c;而是被繁琐的用药时间表、复杂的饮食限制和频繁的指标监…

作者头像 李华