苏森AI

  • AI资讯
  • AI应用
  • AI工具
  • AI工作流
  • AI智能体
  • AI提示词
苏森AI
从这里开启你的AI学习旅程!
  1. 首页
  2. AI智能体
  3. 正文

智能体开发实战|基于Dify+MCP实现理财助手智能体

2025-05-21 34点热度 0人点赞 0条评论

前言

AI智能体通过感知环境、自主决策和执行任务,突破传统大模型仅限于语言交互的局限。例如,当用户指令“订一张明天去北京的机票”时,智能体不仅理解语义,还能自动调用航班查询接口、完成支付并同步至日程系统。这种能力使其在客服、医疗、智能制造等领域展现出颠覆性潜力。

然而,智能体的开发长期受制于接口碎片化与工具兼容性难题。开发者需为不同数据源编写适配代码,导致60%的开发周期浪费在系统对接上。这一痛点催生了MCP协议的诞生。MCP(Model Context Protocol,模型上下文协议)由Anthropic于2024年底开源,其核心是通过标准化接口实现大模型与外部工具的“即插即用”。类比互联网的TCP/IP协议,MCP构建了AI交互的通用语言。

本文将介绍如下内容:

  • • 搭建基于Docker的MySQL数据库环境
  • • 开发MCP Server实现MySQL数据库操作
  • • 基于Dify搭建智能体通过MCP操作MySQL实现理财助手智能体

最终效果如下:

搭建基于Docker的MySQL数据库环境

1) 启动Docker容器

  • • 建立docker_compose.yaml,内容如下
services:
  mysql:
    image: mysql:5.7
    container_name: mysql5.7
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_ALLOW_EMPTY_PASSWORD=yes
      - TZ=Asia/Shanghai
    volumes:
      - ./volumes:/var/lib/mysql
    command: --character-set-server=utf8mb4
  • • 执行docker compose up -d启动数据库

2) 创建数据库和表

  • • 下载MySQL客户端软件,例如dbeaver (https://dbeaver.io/download)
  • • 连接数据库,创建数据库和表
create database testdb;

use testdb;

CREATE TABLE `finance` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `user_id` varchar(36) NOT NULL DEFAULT '' COMMENT '用户ID',
  `date` datetime NOT NULL COMMENT '金额发生日期',
  `amount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '收入支出金额(收入记为正数,支出记为负数)',
  `category` varchar(32) NOT NULL DEFAULT '' COMMENT '收支类别',
  `remark` varchar(100) NOT NULL DEFAULT '' COMMENT '收支具体类目',
  PRIMARY KEY (`id`),
  KEY `idx_user_date` (`user_id`,`date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='日常收支';

开发MCP Server实现MySQL数据库操作

以windows开发环境为例:

1) 设置Python开发环境

安装uv。uv是一个用Rust编写的极其快速的Python包和项目管理器。

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

创建python虚拟环境(假设项目目录为finance)

# Create a new directory for our project
uv init finance
cd finance

# Create virtual environment and activate it
uv venv
.venvScriptsactivate

# Install dependencies
uv add mcp[cli] mysql-connector-python python-dotenv

如果在执行.venvScriptsactivate时报错“无法加载.venvScriptsactivate.ps1,因为在此系统上禁止运行脚本”,需要以管理员权限在终端执行Set-ExecutionPolicy RemoteSigned更改执行策略后再重新执行。

2) 设置环境变量

创建.env,配置数据库相关的环境变量,内容如下

DB_HOST=localhost
DB_USER=root
DB_PASSWD=root
DB_NAME=testdb

把.env添加到.gitignore

3) MCP Server实现代码

实现两个mcp工具:

  • • get_table_definition: 获取表结构定义
  • • execute_sql: 执行SQL语句
import mysql.connector
import json
import os
from contextlib import contextmanager
from dotenv import load_dotenv
from mcp.server.fastmcp import FastMCP

# 加载环境变量
load_dotenv()


class DbManager:
    def __init__(self):
        self.connection_pool = mysql.connector.pooling.MySQLConnectionPool(
            pool_name="db_pool",
            pool_size=5,
            pool_reset_session=True,
            host=os.getenv("DB_HOST"),  # 数据库服务器地址
            user=os.getenv("DB_USER"),  # 数据库用户名
            password=os.getenv("DB_PASSWD"),  # 数据库密码
            database=os.getenv("DB_NAME"),  # 数据库名
        )

    @contextmanager
    def get_cursor(self):
        with self.connection_pool.get_connection() as connection:
            cursor = None
            try:
                cursor = connection.cursor()
                yield cursor
                connection.commit()
            except Exception as e:
                connection.rollback()
                raise e
            finally:
                if cursor:
                    cursor.close()

    def execute_sql(self, sql: str) -> str:
        with self.get_cursor() as cursor:
            cursor.execute(sql)
            if cursor.description is not None:
                rows = cursor.fetchall()
                result = {
                    "columns": [desc[0] for desc in cursor.description],
                    "rows": rows,
                }
                return json.dumps(result, default=str)
            else:
                return f"row affected:{cursor.rowcount}"


dbManager = DbManager()
# Initialize FastMCP server
mcp = FastMCP()


@mcp.tool()
def get_table_definition(table: str) -> str:
    """get table definition"""
    return dbManager.execute_sql(f"show create table {table}")


@mcp.tool()
def execute_sql(sql: str) -> str:
    """execute sql"""
    return dbManager.execute_sql(sql)


if __name__ == "__main__":
    # Initialize and run the server
    mcp.run(transport="sse")

3) 启动MCP Server

uv run main.py

基于Dify搭建智能体通过MCP操作MySQL实现理财助手智能体

Dify是一款开源的大语言模型应用开发平台,旨在降低AI应用的开发门槛,帮助开发者和企业快速构建、部署及管理生成式AI应用。

假设已经通过Docker Desktop for Windows安装Dify。

1) 安装MCP插件

点击右上角“插件”按钮,进入插件页面,选择“探索Marketplace

选择插件Dify Agent 策略进行安装。

智能体开发实战|基于Dify+MCP实现理财助手智能体

选择插件MCP SSE / StreamableHTTP进行安装。

智能体开发实战|基于Dify+MCP实现理财助手智能体

2) 设置MCP服务

切换到"插件"tab,选择已经安装的插件"MCP SSE / StreamableHTTP",点击“去授权”

智能体开发实战|基于Dify+MCP实现理财助手智能体

填上MCP服务配置:

智能体开发实战|基于Dify+MCP实现理财助手智能体

配置如下:

{"finance_server":{"url":"http://host.docker.internal:8000/sse","headers":{},"timeout":50,"sse_read_timeout":50}}

3) 创建Chatflow应用

  • • 创建一个空白应用,类型为Chatflow

    智能体开发实战|基于Dify+MCP实现理财助手智能体
  • • 调整工作流,把默认的LLM节点替换为Agent节点

    智能体开发实战|基于Dify+MCP实现理财助手智能体
  • • 设置Agent节点的Agent策略,并添加MCP工具
    策略选择Function Calling

    智能体开发实战|基于Dify+MCP实现理财助手智能体
  • • Agent节点的模型选择doubao-1.5-pro-32k
    通义千问系列的模型跑起来效果不佳,这次改用豆包模型
  • • 设置Agent节点的指令(系统提示词)
# 角色
你是记账助手,可以通过调用MCP工具完成记录日常收入和支出并作分析。
为了获得MCP工具列表,必须先通过mcp_sse_list_tools获取。
为了完成记账操作,需要先获取表finance的定义。
记账的用户ID取值为{{#sys.user_id#}}

# 收支类别
收入:工资薪金,劳务报酬,投资收益,分红收入,租金收入,其它收入
支出:住房,交通,通讯,保险,餐饮,电子产品,日用品,服饰,旅行,娱乐,医疗,学习,其它支出

# 技能
## 技能1:记录日常开支
将开支信息记录到数据库表finance

## 技能2:统计日常开支
根据用户输入信息分析统计日常开支

# 限制
仅处理记账相关问题,不回复其它问题
  • • 设置Agent节点的查询和最大迭代次数
    Agent完成一项任务可能需要迭代多次调用工具,最大迭代次数设置过小可能导致无法正常完成任务。

    智能体开发实战|基于Dify+MCP实现理财助手智能体
  • • 预览调试
    输入“昨天吃饭用了50元,还花了22元买了拖鞋。今天买手机花了1999元,吃饭花了60元”,验证输出为成功记录支出。

    智能体开发实战|基于Dify+MCP实现理财助手智能体

另外,通过数据库表验证数据正常插入

智能体开发实战|基于Dify+MCP实现理财助手智能体

输入“汇总各个类别的金额”,验证数据查询

智能体开发实战|基于Dify+MCP实现理财助手智能体

确认无误后点击右上角的“发布”按钮发布应用

总结

基于Dify搭建的智能体案例,不仅展示了从语义理解到工具调用的完整决策链路,更印证了MCP协议在降低开发成本和加速应用落地方面的工程意义。

#智能体开发 #Dify开发 #MCP开发 #AI应用开发


如果您觉得本文对您有帮助,欢迎关注、点赞、转发、推荐

参考资料

  • • https://github.com/langgenius/dify.git
  • • https://github.com/modelcontextprotocol

本篇文章来源于微信公众号: AI大模型应用开发

标签: AI应用 Dify mcp 智能体
最后更新:2025-07-26

苏森

这个人很懒,什么都没留下

点赞
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
最新 热点 随机
最新 热点 随机
AI智能体扣子(Coze)工作流实战,1分钟生成100篇阅读量10万+AI漫画公众号文章,保姆级教程 17个作品涨粉超110万!用AI制作人生哲理视频,百万点赞火的一塌糊涂(保姆级实战教程) 独家首发!挑战用Coze做治愈系动态视频(风景/动漫/乡村),核心工作流搭建思路拆解(附体验链接) Coze+剪映视频工作流,1分钟制作治愈老爷爷/老奶奶视频,每条都是10w+(附提示词和体验链接) 打造10万+爆文的新法宝:Coze+DeepSeek工作流全攻略,手把手教你搭建 Coze+剪映视频工作流,一分钟打造爆款养生视频,干货分享,价值4位数 Coze+DeepSeek+剪映打造爆款国学文化视频工作流,进阶版保姆级教程,助力自媒体运营一路开挂 重磅发布 | 挑战用Coze做“如果书籍会说话”读书视频,20天涨粉10万,书单赛道新型玩法,附核心工作流搭建思路拆解
基于扣子 (Coze):AI 智能体搭建【作业批改复习助手】工作流企业新基建:MCP + LLM + Agent 8大架构,将打通AI Agent的“神经中枢”落地实操!2025年,建议你一定要用AI搭建自媒体全自动工作流值得收藏!3个黄金提示词公式,让 AI 从 “答非所问” 变 “超级助理”AI智能体扣子(Coze)工作流搭建,3分钟自动生成100篇知识图文,保姆级教程基于Dify动态解析异构银行流水:架构拆解→风控报告生成别卷了!用 Dify 搭建你的专属 AI 数据分析报告助手AI智能体:一键生成爆款历史人物短视频,66万粉丝
万字长文深度剖析基于 MCP 实现 AI 应用架构设计新范式的落地实践 值得收藏!3个黄金提示词公式,让 AI 从 “答非所问” 变 “超级助理” AI智能体扣子(Coze)工作流实战,1分钟生成100篇阅读量10万+AI漫画公众号文章,保姆级教程 爆款的微缩小人国视频,谁还不会用coze工作流智能体制作? AI智能体:AI自动生成人物史诗短片,百万播放的躺赚密码 Coze实战 | 对接即梦3.0打造爆款像素风动画视频工作流,批量生成,条条爆款 MCP(2)开发:如何通过mcp把私域数据库接入到大模型 扣子(Coze)工作流:输入关键词,Coze 自动抓小红书热门笔记,减少大量运营工作量!
标签聚合
FastGPT 扣子 mcp 小红书 豆包 工作流 提示词 智能体 DeepSeek Agent 飞书 Dify ChatGPT Prompt coze n8n

COPYRIGHT © 2025 苏森AI SOOSON.COM. ALL RIGHTS RESERVED.

站点地图