当前位置: 首页 > news >正文

.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 生态


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

http://www.jsqmd.com/news/125799/

相关文章:

  • 如何在 Python 中对面板数据进行交叉验证
  • 达梦数据库备份还原
  • elasticsearch官网在日志分析中的核心要点解析
  • LangFlow法律文书辅助撰写系统设计思路
  • 如何创建自定义 Matplotlib 主题,并让您的图表从无聊变得精彩
  • Packet Tracer官网下载后的更新与升级方法
  • 抖音下载工具无水印终极指南:实用技巧与高效方法
  • LangFlow JSON解析器节点应用实例:提取结构化结果
  • 智能机器狗项目开发中的问题记录
  • 新手教程:手把手教你掌握DRC基本概念与使用场景
  • 如何在 Matplotlib 中创建自定义颜色调色板 – 离散与线性颜色映射,解释说明
  • 2025年年终成都四川工作服厂家推荐:聚焦大型企业集团采购需求,专家严选5家优质供应商案例盘点 - 品牌推荐
  • 如何在数据科学职位申请中创造机会并获得成功
  • IDA Pro下载安装(macOS):图解说明每一步操作
  • Arduino IDE读取心率传感器数据的核心要点
  • 如何创建样式优美的 Streamlit Dataframes,第二部分:使用 AgGrid
  • LangFlow营养饮食搭配推荐系统设计
  • 如何创建优雅的 Streamlit 数据框,第一部分:使用 Pandas Styler
  • 基于IAR安装的实时控制程序部署:项目应用
  • LangFlow市场调研报告自动生成系统构想
  • LangFlow漏洞检测提示工程应用探索
  • 抖音无水印下载神器:3步搞定高清视频永久保存
  • LangFlow农业病虫害识别指导系统原型
  • Topit窗口置顶工具:5分钟学会让Mac窗口永远浮在最上层
  • LangFlow远程医疗问诊前置筛查工具
  • MDK实现Modbus RTU通信操作指南
  • 如何使用卫星图像创建你自己的 CV 数据集:来自太空的野火
  • 谷歌闪电突袭:Gemini 3免费开放引爆AI革命
  • 基于NX的智能制造解决方案:深度剖析
  • LangFlow代码生成辅助工具实战搭建