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

《算法闯关指南:优选算法--前缀和》--29.和为k的子数组,30.和可被k整除的子数组

《算法闯关指南:优选算法--前缀和》--29.和为k的子数组,30.和可被k整除的子数组

🔥草莓熊Lotso:个人主页 ❄️个人专栏: 《C++知识分享》《Linux 入门到实践:零基础也能懂》 ✨生活是默默的坚持,毅力是永久的享受! 🎬 博主简介: 文章目录 * 前言: * 29. 和为k的子数组 * 解法(前缀和+哈希表): * 算法思路: * C++算法代码: * 算法总结&&笔记展示: * 30. 和可被k整除的子数组 * 解法(前缀和+哈希表): * 前置知识补充: * 算法思路: * C++算法代码: * 算法总结&&笔记展示: * 结尾: 前言: 聚焦算法题实战,系统讲解三大核心板块:优选算法:剖析动态规划、二分法等高效策略,学会寻找“最优解”。 递归与回溯:掌握问题分解与状态回退,攻克组合、

By Ne0inhk
Instant-NGP: Multi-resolution Hash Encoding(多分辨率哈希编码)

Instant-NGP: Multi-resolution Hash Encoding(多分辨率哈希编码)

文章目录 * Multi-resolution Hash Encoding(多分辨率哈希编码) * 双线性插值 * 一个很小的MLP用来做映射 * 训练MLP来做映射 * model就是压缩后的结果 Multi-resolution Hash Encoding(多分辨率哈希编码) 输入: 输入是 x \mathbf{x} x = [ x , y ] [x, y] [x,y],一个2D weight tensor归一化的坐标 (后续会进行插值) 输出: 在 Instant-NGP 的架构中,训练过程实际上是在优化两部分:显式特征(Explicit Features): * 存储在哈希表(Hash Table)中的 L × T L \times T L×T 个特征向量。 * 隐式映射(

By Ne0inhk
【洛谷】从记忆化搜索到动态规划 状态表示 + 转移方程 + 空间优化全攻略

【洛谷】从记忆化搜索到动态规划 状态表示 + 转移方程 + 空间优化全攻略

文章目录 * 从记忆化搜索到动态规划 * 记忆化搜索 * 递归改递推 * 动态规划 * 下楼梯 * 数字三角形 小编提醒:在动态规划问题中,将数组命名为f和dp都可以。 从记忆化搜索到动态规划 记忆化搜索 在搜索的过程中,如果搜索树中有很多重复的结点,此时可以通过⼀个 “备忘录”,记录第⼀次搜索到 的结果。当下⼀次搜索到这个结点时,直接在 “备忘录” ⾥⾯找结果。其中,搜索树中的⼀个⼀个结点,也称为⼀个⼀个状态。 ⽐如经典的斐波那契数列问题: int f[N];// 备忘录intfib(int n){// 搜索之前先往备忘录⾥⾯瞅瞅if(f[n]!=-1)return f[n];if(n ==0|

By Ne0inhk
手撕哈希全家桶!unordered_map/set 底层 + 位图布隆过滤器----《Hello C++ Wrold!》(24)--(C/C++)

手撕哈希全家桶!unordered_map/set 底层 + 位图布隆过滤器----《Hello C++ Wrold!》(24)--(C/C++)

文章目录 * unordered系列关联式容器 * 哈希 * 哈希冲突 * 闭散列的模拟实现 * 开散列的模拟实现 * 哈希桶里面迭代器的模拟实现 * unordered_set的封装 * unordered_map的封装 * 位图 * 应用 * 布隆过滤器 * 布隆过滤器的模拟实现 * 哈希切割 * 哈希切割的应用 * 作业部分 unordered系列关联式容器 有unordered_mapunordered_setunordered_multimapunordered_multiset 这些是用哈希表是实现的 用法的话跟eg:set那种几乎相同 --接口都差不多 他们可以用范围for去遍历哈 跟set那些的区别: 1.unordered系列的容器的迭代器是单向迭代器 2.unordered系列中序遍历出来不是有序的 3.unordered系列的容器的性能比eg:set那些要稍微好些;但是升序或降序的数据插入的话,set好些其实 引申:比较性能要在release下面比较 哈希 哈

By Ne0inhk