AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建

AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建

AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建

作者:高瑞冬

本文目录

一、MCP协议简介

MCP协议(Model Context Protocol)是由Anthropic在2024年11月初发布的一种协议,旨在统一AI模型与外部系统之间的通信方式,简化它们之间的交互问题。随着OpenAI官方宣布支持MCP协议,越来越多的AI厂商也开始支持这一协议。

MCP协议主要包含Client和Server两部分:

  • Client(客户端):使用AI模型的一方,通过MCP Client可以为模型提供调用外部系统的能力
  • Server(服务端):提供外部系统调用的一方,实际运行外部系统的主体

FastGPT从v4.9.6版本开始,新增了两种MCP相关的功能:

  1. MCP服务:可以将FastGPT应用以MCP协议对外提供
  2. MCP工具集:可以导入外部MCP服务,让FastGPT使用外部工具

mcp-proxy是开源的mcp协议聚合代理,可以聚合多个mcp服务,并提供统一的mcp服务地址。

本文将重点介绍如何在FastGPT中集成和使用MCP工具集。另外,对于私有化部署的fastgpt,本文给出了mcp服务聚合的解决方案。从而实现海量的开源mcp组件能够快速接入Fastgpt平台,为平台上的智能体应用提供丰富的集成能力。给出了开源mcp社区和fastgpt社区资源和平台的完整对接路径。

二、创建MCP工具集

1. 获取MCP服务地址

首先,您需要获取一个支持MCP协议的服务地址。这里以高德地图的MCP服务为例,访问高德地图MCP Server获取MCP地址,格式如:https://mcp.amap.com/sse?key=xxx

2. 在FastGPT中创建MCP工具集

  1. 登录FastGPT平台
  2. 在弹出窗口中填入MCP服务地址
  3. 点击"解析"按钮,系统会自动解析出该MCP服务提供的一系列工具
  4. 点击"创建"按钮完成MCP工具集的创建

在工作台中选择"新建应用",然后选择"MCP工具集"

创建MCP工具集

三、测试MCP工具

创建完MCP工具集后,您可以对工具集中的单个工具进行测试:

  1. 进入MCP工具集详情页面
  2. 输入测试参数,如城市名称"杭州"
  3. 点击"运行"按钮,查看工具返回的结果
  4. 系统会显示该城市的具体天气信息

选择需要测试的具体工具,例如maps_weather(天气查询工具)

测试MCP工具

四、AI模型调用MCP工具

FastGPT支持两种方式让AI模型调用MCP工具:

1. 调用单个工具

  1. 在工作流中添加"工具调用"节点
  2. 连接工作流节点,让AI模型能够调用这些工具

测试效果:分别提问天气和地点相关问题左图:AI调用天气查询工具 | 右图:AI调用地点搜索工具

天气查询结果
地点搜索结果

选择之前创建的特定MCP工具,例如选择maps_weathermaps_text_search

调用单个工具

2. 调用整个工具集

FastGPT还支持让AI自动选择合适的工具进行调用:

  1. 在工作流中添加"MCP工具集"节点
  2. 此时AI会根据用户问题智能选择合适的工具,获取所需信息后回答问题

使用"工具调用"节点连接该工具集

工具集配置
调用效果

五、私有化部署支持

如果您使用的是FastGPT私有化部署版本,需要以下步骤来支持MCP功能:

1. 环境准备

确保您的FastGPT版本升级到v4.9.6或更高版本。

Read more

Flutter 三方库 js_wrapping 的鸿蒙化适配指南 - 实现 Dart 与 JavaScript 的无缝对象包装、支持强类型回调与属性映射

Flutter 三方库 js_wrapping 的鸿蒙化适配指南 - 实现 Dart 与 JavaScript 的无缝对象包装、支持强类型回调与属性映射

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 js_wrapping 的鸿蒙化适配指南 - 实现 Dart 与 JavaScript 的无缝对象包装、支持强类型回调与属性映射 前言 在进行 Flutter for OpenHarmony 的 Web 混合开发时,频繁地在 Dart 层与底层 JavaScript 环境进行数据交互是不可避免的。虽然官方提供了基本的 dart:js,但在处理复杂的 JS 对象和回调时,代码往往会变得杂乱无章。js_wrapping 提供了一个更优雅的、类型安全的包装层。本文将指导大家如何在鸿蒙端利用该库提升 JS 互操作的开发体验。 一、原理解析 / 概念介绍 1.1 基础原理

By Ne0inhk
【JVM 终极通关指南】万字长文从底层到实战全维度深度拆解 Java 虚拟机

【JVM 终极通关指南】万字长文从底层到实战全维度深度拆解 Java 虚拟机

【JVM 终极通关指南】万字长文从底层到实战全维度深度拆解 Java 虚拟机 我的主页:寻星探路个人专栏:《JAVA(SE)----如此简单!!! 》《从青铜到王者,就差这讲数据结构!!!》 《数据库那些事!!!》《JavaEE 初阶启程记:跟我走不踩坑》 《JavaEE 进阶:从架构到落地实战 》《测试开发漫谈》 《测开视角・力扣算法通关》《从 0 到 1 刷力扣:算法 + 代码双提升》 《Python 全栈测试开发之路》没有人天生就会编程,但我生来倔强!!! 寻星探路的个人简介: 导读:为什么每个大厂程序员都必须精通 JVM? Java 程序的运行效率、系统的稳定性、甚至高并发下的抗压能力,都与 JVM 密切相关。如果你只会写业务代码而不懂 JVM,就像只会开车而不懂发动机原理的赛车手。当遇到 OutOfMemoryError(内存溢出)

By Ne0inhk

Java图论基础:有向图与无向图详解

图(Graph)是计算机科学中一种重要的非线性数据结构,广泛应用于社交网络、地图导航、任务调度等领域。本文将使用Java语言深入讲解图论中的两个基本概念:有向图和无向图。 什么是图? 图由两个基本元素组成: * 顶点(Vertex/Node):图中的节点,代表对象 * 边(Edge):连接两个顶点,代表对象之间的关系 数学表示:G = (V, E),其中V是顶点集合,E是边集合。 无向图(Undirected Graph) 概念与特点 无向图中的边没有方向,表示对称的双向关系。如果顶点A和顶点B之间存在一条边,那么可以从A到达B,也可以从B到达A。 实际应用 * 社交网络:微信好友关系(互为好友) * 交通网络:城市间的双向道路 * 协作关系:项目团队成员之间的合作关系 * 网络拓扑:局域网中设备的连接关系 Java实现:邻接表方式 import java.util.*; /** * 无向图的实现(

By Ne0inhk
Java RESTful接口开发:从入门到精通

Java RESTful接口开发:从入门到精通

文章目录 * 一、为什么选择Spring Boot:极速开发的秘密 * 二、极速启动:三步创建第一个REST接口 * 2.1 项目初始化 * 2.2 基础代码示例 * 三、Spring Boot RESTful核心详解 * 3.1 控制器层最佳实践 * 3.1.1 RESTful资源设计原则 * 3.1.2 高级请求处理技巧 * 3.2 服务层设计与实现 * 3.2.1 服务层架构模式 * 3.2.2 业务逻辑与事务管理 * 3.3 数据传输对象设计 * 3.3.1 DTO模式实现 * 3.3.2

By Ne0inhk