AI大模型智能体开发实战|基于 Dify + MCP 的理财助手
本文介绍了基于Dify和MCP开发AI理财助手的完整方案。文章从技术选型、环境部署入手,详细讲解了智能体架构设计、插件开发、金融数据抓取和微信公众号接入等关键环节。系统采用Dify作为LLMOps平台,结合MCP协议实现模块化工具调用,支持实时行情查询、资产组合分析和个性化投资建议等功能。开发部分包含Python代码示例,涵盖数据获取、MCP动作定义及微信公众号对接等核心模块。文章还探讨了运维安全
本文以“AI大模型智能体开发实战|基于 Dify + MCP 的理财助手”为主题,完整还原一个可上线的 AIGC 理财助手项目:从技术选型、环境部署、智能体(Agent)架构设计,到插件开发、金融数据抓取、微信公众号接入,再到上线运维与性能安全优化,适合企业技术团队和个人开发者实践参考。
一、背景与核心概念
1.1 Dify:面向生产的开源 LLMOps 平台
- 定位:Dify 将 Backend‑as‑a‑Service 与 LLMOps 结合,提供可视化 Prompt 编排、RAG 工作流、Agent 框架和低代码接口,帮助开发者快速发布生成式 AI 应用。(Dify Docs[1])
- 生态:GitHub 已提供完整源码与 Docker 部署脚本,并内置对主流模型(OpenAI、Anthropic、Moonshot、Gemini 及本地 LLM)支持。(GitHub[2])
1.2 MCP(Model Context Protocol):Agent 的“USB‑C”
- 定义:MCP 由 Anthropic 提出,用统一协议让 AI Agent 可在不同模型、工具与操作系统间无缝对话,降低调用外部服务的耦合度。(The Verge[3])
- 实现:开源库
mcp‑agent
提供了简洁的“意图‑工具‑回复”三段式流水线,可与 LangChain、Dify 等框架配合。(GitHub[4]) - 生态趋势:微软在 Windows AI Foundry 中正式加入 MCP 支持,宣称它将成为 AI 应用的“USB‑C”。(The Verge[5])
1.3 理财助手的业务价值
- 个性化投资顾问:基于大模型的上下文推理能力,结合个人资产与风险偏好生成投资建议。(BetterYeah[6])
- 快速行情查询与组合分析:对接实时/历史金融数据 API,降低普通投资者获取信息门槛。(GeeksforGeeks[7], PyPI[8])
- 多渠道连接:通过微信公众号、网页或 App,小程序触达终端用户。(CSDN Blog[9], Zhihu[10])
二、开发环境准备
组件 | 版本 / 说明 | 作用 |
---|---|---|
Docker & Docker‑Compose | 24+ | 统一部署 Dify、MCP 服务、向量库 |
Python | 3.11 | SDK、插件、Webhook 逻辑 |
Dify | 最新 stable | LLMOps 与多 Agent 调度 |
mcp‑agent | 0.4.x | MCP 流水线核心库 |
向量库 | Milvus 或 Qdrant | 存储金融研报、FAQ 等检索语料 |
yfinance / iexfinance | 0.2+ / 0.6+ | 行情与财报数据抓取 |
wechatpy + Flask | 2.x | 公众号服务器 |
2.1 一键安装 Dify
git clone https://github.com/langgenius/dify.git
cd dify/deploy
docker compose -f docker-compose.enterprise.yml up -d
容器启动后访问 http://<your_ip>:5000
即可。(GitHub[11])
2.2 安装 MCP 及金融依赖
pip install mcp-agent dify-api-python yfinance iexfinance wechatpy flask python-dotenv
dify-api-python
SDK 简化了对 Dify SaaS 或自建实例的 API 调用。(GitHub[12])
三、整体架构设计
用户 ─► 微信公众号 ─► Flask Webhook
│
▼
Dify Streaming API
│
┌────────────┴───────────┐
│ Router Agent │
├────────────┬───────────┤
│ MCP Action: FetchData │ ←─ yfinance/IEX
├────────────┴───────────┤
│ MCP Action: Analyze │ ←─ Pandas/NumPy
├────────────┬───────────┤
│ MCP Action: Response │
└────────────────────────┘
- 入口层:微信公众号接收用户消息,WebHook 转成 JSON 调用 Dify;支持文字、语音转写。(CSDN Blog[13], Zhihu[14])
- Dify Router Agent:根据意图路由到不同 MCP Action(数据抓取、策略分析、自然语言回复)。(Dify Docs[15])
- MCP Action:最小可组合单元;通过
@tool
声明需要外部函数并返回 JSON,降低大模型“幻想”风险。(GitHub[16]) - 数据层:行情接口(Yahoo / IEX)、本地向量库、RDS(保存用户配置)。(GeeksforGeeks[17], Analyzing Alpha[18])
四、分步实战
4.1 在 Dify 创建应用
- 新建 Dataset:上传券商研报 PDF、基金招募说明书等,Dify 会自动切分文本并写入向量库。(Dify Docs[19])
- Prompt 编排:在可视化编辑器中添加 Router、Financial‑QA、Portfolio‑Analysis 三个节点,每个节点对应不同 MCP Action。
- 模型配置:选择 GPT‑4o 或 Claude‑Sonnet;若成本敏感可串联 Llama‑3‑8B 作摘要、GPT‑4o 作决策。
4.2 编写 MCP 动作(Python 示例)
# mcp_actions.py
from mcp_agent import action, ctx
import yfinance as yf
from iexfinance.stocks import Stock
@action(name="get_stock_price", desc="获取实时股价")
def get_stock_price(symbol: str):
price = yf.Ticker(symbol).fast_info['last_price']
return {"symbol": symbol, "price": price}
@action(name="get_company_finance", desc="拉取财报摘要")
def get_company_finance(symbol: str):
stock = Stock(symbol, token=ctx.secrets['IEX_TOKEN'])
return stock.balance_sheet().iloc[0].to_dict()
yfinance 使用示例来源于 GeeksForGeeks 教程;IEX Cloud SDK 用法参考官方文档。(GeeksforGeeks[20], PyPI[21])
4.3 在 Dify 中注册 Tool
在 Tools ➜ Custom Tools ➜ +Tool,粘贴上方函数签名即可自动生成 JSON Schema。(Dify Docs[22])
4.4 配置 MCP Pipeline
mcp.yaml
version: 0.2
pipeline:
- use: get_stock_price
when: "user_asks_price"
- use: get_company_finance
when: "user_asks_finance"
- use: respond_naturally
基于 LangChain 的 MCP 适配器还支持在链前后插入预处理器/后处理器。(hubwiz.com[23])
4.5 微信公众号对接
# app.py
from flask import Flask, request, abort
from wechatpy import parse_message, create_reply
from dify_api_python import DifyClient
import os
app = Flask(__name__)
dify = DifyClient(base_url=os.getenv("DIFY_URL"), api_key=os.getenv("DIFY_KEY"))
@app.route("/wx", methods=["GET", "POST"])
def wechat():
if request.method == "GET":
# 服务器验证略
return request.args.get("echostr", "")
msg = parse_message(request.data)
if msg.type == "text":
rsp = dify.chat.completions(
model="router-agent",
inputs={"query": msg.content},
user="wx_"+msg.source)
reply = create_reply(rsp.choices[0].message.content, msg)
return reply.render()
return "success"
公众号开启服务器配置 → 填写 URL、Token 即可。(CSDN Blog[24], CSDN Blog[25])
4.6 Docker‑Compose 一键部署
version: "3.9"
services:
dify:
image: langgenius/dify:stable
ports: ["5000:80"]
env_file:
- .env
mcp:
build: ./mcp_svc
env_file: .env
wechat:
build: ./wechat
ports: ["80:8000"]
depends_on: [dify, mcp]
qdrant:
image: qdrant/qdrant:latest
volumes: ["./qdrant_data:/qdrant/storage"]
五、进阶功能
5.1 智能资产组合分析
import pandas as pd
import numpy as np
from scipy.optimize import minimize
def optimize_portfolio(symbols):
prices = yf.download(symbols, period="3y")["Adj Close"]
returns = prices.pct_change().dropna()
cov = returns.cov() * 252
mu = returns.mean() * 252
def neg_sharpe(w):
ret = np.dot(w, mu)
vol = np.sqrt(np.dot(np.dot(w, cov), w.T))
return -ret/vol
w0 = np.repeat(1/len(symbols), len(symbols))
bounds = [(0, 0.3) for _ in symbols]
cons = {"type": "eq", "fun": lambda w: np.sum(w)-1}
out = minimize(neg_sharpe, w0, bounds=bounds, constraints=[cons])
return dict(zip(symbols, out.x.round(4)))
结果通过 MCP Action 回传给大模型,再生成自然语言解释。
5.2 LangChain MCP Adapter 联动
使用 langchain_mcp_adapters
将 Dify Prompt‑flow 转成 LangChain Chain,在同一脚本里复用记忆、RAG、工具调用。(hubwiz.com[26], CSDN Blog[27])
5.3 多模态与 RAG 加强
- 语音:公众号支持用户语音提问;Dify 接入 OpenAI Whisper 自动转写。
- PDF、图片解析:MCP Action 调用 mini‑ocr 服务,向量化后写入 Dify Dataset。
六、运维与安全
风险点 | 方案 |
---|---|
Prompt 注入 | MCP 工具严格返回 JSON,限制大模型对系统命令的输出。(GitHub[28]) |
Token 泄露 | 环境变量+ KMS 加密;IEX Token 只在服务器端调用。(Analyzing Alpha[29]) |
请求速率 | Nginx + Redis 限流;Dify 内置 QPS 监控面板。(GitHub[30]) |
法规合规 | 跟随微信官方“金融信息”类接口规范,提前报备。(CSDN Blog[31]) |
七、未来展望
- 原生 Windows 生态:微软已将 MCP 引入 Windows AI Foundry,未来 Dify Agent 可直接调用本地文件、日历等系统能力。(Microsoft Learn[32])
- 多 Agent 协同:路由 Agent 可分裂出“量化策略 Agent”“基金对比 Agent”,共同写入统一 Memory Pool。
- 可解释性增强:在生成投资建议时同时输出模型使用的数据引用、风险模型参数,提升监管可追溯性。
结语
以上从 0 到 1 深度拆解了 “基于 Dify + MCP 的大模型理财助手” :既结合了 Dify 在 LLMOps 上的可视化与高并发优势,又借助 MCP 的协议化工具链实现安全、可组装的智能体流水线。通过对接金融数据 API、微信公众号等高频入口,一个真正能落地、能迭代、可监控的 AI 理财助手就此诞生。希望本文的流程图、 YAML 配置和完整 Python 代码能够助你快速实践,把生成式 AI 能力转换为面向 C 端的金融服务产品。
如何学习大模型?
学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。
这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!
这是一份大模型从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
100套AI大模型商业化落地方案
大模型全套视频教程
200本大模型PDF书籍
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
LLM面试题合集
大模型产品经理资源合集
大模型项目实战合集
😝有需要的小伙伴,可以扫描下方二v码免费领取【保证100%免费】🆓
更多推荐
所有评论(0)