亚红 發表於 2025-4-15 21:49:00

dify MCP工具调用

<h1>一、概述</h1>
<p>前面几篇文章,介绍了Cherry Studio客户端调用MCP,接下来介绍dify如何调用MCP</p>
<h1>二、dify插件</h1>
<p>需要安装2个插件,分别是:Agent 策略(支持 MCP 工具),MCP SSE</p>
<h2>Agent 策略(支持 MCP 工具)</h2>
<p>Agent 策略集合(支持 MCP SSE 发现和调用工具)</p>
<p>github地址:https://github.com/junjiem/dify-plugin-agent-mcp_sse</p>
<h2>MCP SSE</h2>
<p>通过 HTTP with SSE 传输使用 MCP 协议来发现和调用工具。</p>
<p>github地址:https://github.com/junjiem/dify-plugin-tools-mcp_sse</p>
<p>&nbsp;</p>
<p>插件安装完成后,效果如下:</p>
<p><img src="https://img2024.cnblogs.com/blog/1341090/202504/1341090-20250415182211177-984076917.png" alt="" loading="lazy"></p>
<p>&nbsp;点击插件MCP SSE,添加sse地址</p>
<p><img src="https://img2024.cnblogs.com/blog/1341090/202504/1341090-20250415182418732-36096736.png" alt="" loading="lazy"></p>
<p>&nbsp;json内容如下:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">{
    </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">mysql_mcp_server_pro</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">url</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">http://172.16.0.45:9090/sse</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
    }
}</span></pre>
</div>
<p>点击保存,效果如下:</p>
<p><img src="https://img2024.cnblogs.com/blog/1341090/202504/1341090-20250415182443355-696907126.png" alt="" loading="lazy"></p>
<p><span style="color: rgba(255, 0, 0, 1)"><strong>注意:这里的sse,是python代码执行的。</strong></span></p>
<p>参考文章:https://www.cnblogs.com/xiao987334176/p/18822444</p>
<p>这里就不重复了,运行python代码即可</p>
<p>&nbsp;</p>
<p>如果有多个mcp应用,json内容,可以添加多个,示例:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">{
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">server_name1</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
    </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">url</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">http://127.0.0.1:8000/sse</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
    </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">headers</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {},
    </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">timeout</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 128, 1)">60</span><span style="color: rgba(0, 0, 0, 1)">,
    </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">sse_read_timeout</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 128, 1)">300</span><span style="color: rgba(0, 0, 0, 1)">
},
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">server_name2</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
    </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">url</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">http://127.0.0.1:8001/sse</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
}
}</span></pre>
</div>
<p>&nbsp;</p>
<h1>三、dify工作流配置</h1>
<h2>创建工作流</h2>
<p>类型:Chatflow</p>
<p>名称:test-mcp-mysql8</p>
<p><img src="https://img2024.cnblogs.com/blog/1341090/202504/1341090-20250415183050947-949828558.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;删除LLM节点,添加一个agnet,效果如下:</p>
<p><img src="https://img2024.cnblogs.com/blog/1341090/202504/1341090-20250415183215908-1784038783.png" alt="" loading="lazy"></p>
<h2>agent设置</h2>
<h3>agent策略</h3>
<p>&nbsp;<span style="color: rgba(255, 0, 0, 1)"><strong>重点看agent配置</strong></span></p>
<p><strong><span style="color: rgba(255, 0, 0, 1)">AGENT策略必须选择ReAct (Support MCP Tools)</span></strong></p>
<p><img src="https://img2024.cnblogs.com/blog/1341090/202504/1341090-20250415183550488-501494418.png" alt="" loading="lazy"></p>
<p><strong><span style="color: rgba(255, 0, 0, 1)">为什么一定要选ReAct,因为我发现FunctionCalling有问题,调用MCP一直提示找不到call_tool方法。</span></strong></p>
<p>我是用fastmcp框架开发的,不需要指定call_tool方法。就算添加了call_tool方法,也依然提示找不到,懒得折腾了,直接选ReAct就好了。</p>
<h3>&nbsp;工具列表</h3>
<p><strong><span style="color: rgba(255, 0, 0, 1)">工具列表,必须要选择!</span></strong></p>
<p>点击右侧添加按钮,选择通过SSE发现和调用MCP工具</p>
<p>添加2个工具列表</p>
<p><img src="https://img2024.cnblogs.com/blog/1341090/202504/1341090-20250415184201989-443635463.png" alt="" loading="lazy"></p>
<h3>MCP服务器</h3>
<p>MCP服务器,这里添加你需要的即可</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">{
    </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">mysql_mcp_server_pro</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">url</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">http://172.16.0.45:9090/sse</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
    }
}</span></pre>
</div>
<h3>指令</h3>
<p>指令必须要设置</p>
<p>指定,也就是提示词,参考文章:https://www.cnblogs.com/xiao987334176/p/18826422</p>
<p><img src="https://img2024.cnblogs.com/blog/1341090/202504/1341090-20250415184357923-157856619.png" alt="" loading="lazy"></p>
<p>完整内容如下:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">使用中文回复。

当用户提问中涉及学生、教师、成绩、班级、课程等实体时,需要使用 MySQL MCP 进行数据查询和操作,表结构说明如下:

# 学生管理系统数据库表结构说明

## </span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">. 教师表 (teachers)

</span>| 字段名 | 类型 | 描述 | 约束 | 示例 |
|--------|------|------|------|------|
| <span style="color: rgba(0, 0, 255, 1)">id</span> | varchar | 教师ID | 主键 |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">T001</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| name | varchar | 教师姓名 | 必填 |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">张建国</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| gender | enum | 性别 |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">男</span><span style="color: rgba(128, 0, 0, 1)">"</span>或<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">女</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">男</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| subject | varchar | 教授科目 | 必填 |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">数学</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| title | varchar | 职称 | 必填 |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">教授</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| phone | varchar | 联系电话 | 必填 |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">13812345678</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| office | varchar | 办公室位置 | 必填 |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">博学楼301</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| wechat | varchar | 微信(可选) | 可选 |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">lily_teacher</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| isHeadTeacher | enum | 是否为班主任,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">true</span><span style="color: rgba(128, 0, 0, 1)">"</span>或<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">false</span><span style="color: rgba(128, 0, 0, 1)">"</span> | 可选 |&nbsp;<span style="color: rgba(0, 0, 255, 1)">true</span>&nbsp;|<span style="color: rgba(0, 0, 0, 1)">

## </span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">. 班级表 (classes)

</span>| 字段名 | 类型 | 描述 | 约束 | 示例 |
|--------|------|------|------|------|
| <span style="color: rgba(0, 0, 255, 1)">id</span> | varchar | 班级ID | 主键 |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">202301</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| className | varchar | 班级名称 | 必填 |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">2023级计算机1班</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| grade | <span style="color: rgba(0, 0, 255, 1)">int</span> | 年级 | 必填 | <span style="color: rgba(128, 0, 128, 1)">2023</span> |
| headTeacherId | varchar | 班主任ID | 外键(teachers.<span style="color: rgba(0, 0, 255, 1)">id</span>) |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">T003</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| classroom | varchar | 教室位置 | 必填 |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">1号楼302</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| studentCount | <span style="color: rgba(0, 0, 255, 1)">int</span> | 学生人数 | 必填 | <span style="color: rgba(128, 0, 128, 1)">35</span> |
| remark | varchar | 备注信息 | 可选 |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">市级优秀班集体</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|<span style="color: rgba(0, 0, 0, 1)">

## </span><span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">. 课程表 (courses)

</span>| 字段名 | 类型 | 描述 | 约束 | 示例 |
|--------|------|------|------|------|
| <span style="color: rgba(0, 0, 255, 1)">id</span> | varchar | 课程ID | 主键 |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">C001</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| courseName | varchar | 课程名称 | 必填 |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">高等数学</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| credit | <span style="color: rgba(0, 0, 255, 1)">int</span> | 学分 | 必填 | <span style="color: rgba(128, 0, 128, 1)">4</span> |
| teacherId | varchar | 授课教师ID | 外键(teachers.<span style="color: rgba(0, 0, 255, 1)">id</span>) |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">T001</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| semester | varchar | 学期 | 格式<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">YYYY-N</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">2023-1</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
|&nbsp;type&nbsp;| enum | 课程类型 |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">必修</span><span style="color: rgba(128, 0, 0, 1)">"</span>或<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">选修</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">必修</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| prerequisite | varchar | 先修课程ID | 可选,外键(courses.<span style="color: rgba(0, 0, 255, 1)">id</span>) |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">C003</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|<span style="color: rgba(0, 0, 0, 1)">

## </span><span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">. 学生表 (students)

</span>| 字段名 | 类型 | 描述 | 约束 | 示例 |
|--------|------|------|------|------|
| <span style="color: rgba(0, 0, 255, 1)">id</span> | varchar | 学号 | 主键 |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">S20230101</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| name | varchar | 学生姓名 | 必填 |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">王强</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| gender | enum | 性别 |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">男</span><span style="color: rgba(128, 0, 0, 1)">"</span>或<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">女</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">男</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| birthDate | <span style="color: rgba(0, 0, 255, 1)">date</span> | 出生日期 | 必填 | <span style="color: rgba(0, 0, 255, 1)">date</span>(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">2005-01-15</span><span style="color: rgba(128, 0, 0, 1)">"</span>) |
| enrollmentDate | <span style="color: rgba(0, 0, 255, 1)">date</span> | 入学日期 | 必填 | <span style="color: rgba(0, 0, 255, 1)">date</span>(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">2023-8-1</span><span style="color: rgba(128, 0, 0, 1)">"</span>) |
| classId | varchar | 班级ID | 外键(classes.<span style="color: rgba(0, 0, 255, 1)">id</span>) |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">202301</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| phone | varchar | 联系电话 | 必填 |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">13812345678</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| email | varchar | 电子邮箱 | 必填 |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">20230101@school.edu.cn</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| emergencyContact | varchar | 紧急联系人电话 | 必填 |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">13876543210</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| address | varchar | 家庭住址 | 必填 |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">北京市海淀区中关村大街1栋101室</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| height | <span style="color: rgba(0, 0, 255, 1)">int</span> | 身高(cm) | 必填 | <span style="color: rgba(128, 0, 128, 1)">175</span> |
| weight | <span style="color: rgba(0, 0, 255, 1)">int</span> | 体重(kg) | 必填 | <span style="color: rgba(128, 0, 128, 1)">65</span> |
| healthStatus | enum | 健康状况 | 必填,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">良好</span><span style="color: rgba(128, 0, 0, 1)">"</span>或<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">一般‌</span><span style="color: rgba(128, 0, 0, 1)">"</span>或<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">较差</span><span style="color: rgba(128, 0, 0, 1)">"</span> |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">良好</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|<span style="color: rgba(0, 0, 0, 1)">

## </span><span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">. 成绩表 (scores)

</span>| 字段名 | 类型 | 描述 | 约束 | 示例 |
|--------|------|------|------|------|
| <span style="color: rgba(0, 0, 255, 1)">id</span> | varchar | 成绩记录ID | 主键 |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">S20230101C001</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| studentId | varchar | 学生ID | 外键(students.<span style="color: rgba(0, 0, 255, 1)">id</span>) |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">S20230101</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| courseId | varchar | 课程ID | 外键(courses.<span style="color: rgba(0, 0, 255, 1)">id</span>) |&nbsp;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">C001</span><span style="color: rgba(128, 0, 0, 1)">"</span>&nbsp;|
| score | <span style="color: rgba(0, 0, 255, 1)">int</span> | 综合成绩 | <span style="color: rgba(128, 0, 128, 1)">0</span>-<span style="color: rgba(128, 0, 128, 1)">100</span> | <span style="color: rgba(128, 0, 128, 1)">85</span> |
| examDate | <span style="color: rgba(0, 0, 255, 1)">date</span> | 考试日期 | 必填 | <span style="color: rgba(0, 0, 255, 1)">date</span>(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">2024-5-20</span><span style="color: rgba(128, 0, 0, 1)">"</span>) |
| usualScore | <span style="color: rgba(0, 0, 255, 1)">int</span> | 平时成绩 | <span style="color: rgba(128, 0, 128, 1)">0</span>-<span style="color: rgba(128, 0, 128, 1)">100</span> | <span style="color: rgba(128, 0, 128, 1)">90</span> |
| finalScore | <span style="color: rgba(0, 0, 255, 1)">int</span> | 期末成绩 | <span style="color: rgba(128, 0, 128, 1)">0</span>-<span style="color: rgba(128, 0, 128, 1)">100</span> | <span style="color: rgba(128, 0, 128, 1)">80</span> |<span style="color: rgba(0, 0, 0, 1)">

### 补考成绩记录说明
补考记录在_id后添加</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">_M</span><span style="color: rgba(128, 0, 0, 1)">"</span>后缀,如<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">S20230101C001_M</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">

## 表关系说明

</span><span style="color: rgba(128, 0, 128, 1)">1</span>. **一对多关系**<span style="color: rgba(0, 0, 0, 1)">:
&nbsp; &nbsp;</span>-<span style="color: rgba(0, 0, 0, 1)"> 一个班级(classes)对应多个学生(students)
&nbsp; &nbsp;</span>-<span style="color: rgba(0, 0, 0, 1)"> 一个教师(teachers)可以教授多门课程(courses)
&nbsp; &nbsp;</span>-<span style="color: rgba(0, 0, 0, 1)"> 一个学生(students)有多条成绩记录(scores)

</span><span style="color: rgba(128, 0, 128, 1)">2</span>. **外键约束**<span style="color: rgba(0, 0, 0, 1)">:
&nbsp; &nbsp;</span>- students.classId → classes.<span style="color: rgba(0, 0, 255, 1)">id</span><span style="color: rgba(0, 0, 0, 1)">
&nbsp; &nbsp;</span>- courses.teacherId → teachers.<span style="color: rgba(0, 0, 255, 1)">id</span><span style="color: rgba(0, 0, 0, 1)">
&nbsp; &nbsp;</span>- scores.studentId → students.<span style="color: rgba(0, 0, 255, 1)">id</span><span style="color: rgba(0, 0, 0, 1)">
&nbsp; &nbsp;</span>- scores.courseId → courses.<span style="color: rgba(0, 0, 255, 1)">id</span><span style="color: rgba(0, 0, 0, 1)">
&nbsp; &nbsp;</span>- classes.headTeacherId → teachers.<span style="color: rgba(0, 0, 255, 1)">id</span></pre>
</div>
<p>&nbsp;</p>
<h3>&nbsp;查询</h3>
<p>这里输入变量query即可</p>
<p><img src="https://img2024.cnblogs.com/blog/1341090/202504/1341090-20250415184703562-598792723.png" alt="" loading="lazy"></p>
<h3>&nbsp;最大迭代次数</h3>
<p>最大迭代次数是一个重要的参数,用于控制工具调用的深度和复杂性。它主要用于防止无限循环或过度调用工具,从而避免资源浪费或系统性能问题。</p>
<p>&nbsp;</p>
<p>默认是3,也必须要设置一下,否则无法保存</p>
<p><img src="https://img2024.cnblogs.com/blog/1341090/202504/1341090-20250415184728530-362610880.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>最后连接直接回复</p>
<p>选择变量Agent.text</p>
<p><img src="https://img2024.cnblogs.com/blog/1341090/202504/1341090-20250415184848941-2117213791.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>点击发布预览</p>
<p><img src="https://img2024.cnblogs.com/blog/1341090/202504/1341090-20250415184931069-1300707149.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<h1>四、dify工作流测试</h1>
<h2>哪个老师学生最多</h2>
<p>效果如下:</p>
<p><img src="https://img2024.cnblogs.com/blog/1341090/202504/1341090-20250415185048752-591468332.png" alt="" loading="lazy"></p>
<h2>&nbsp;哪个学生成绩最好</h2>
<p><img src="https://img2024.cnblogs.com/blog/1341090/202504/1341090-20250415185426386-1308025904.png" alt="" loading="lazy"></p>
<h2>总成绩最好的是哪个班级</h2>
<p><img src="https://img2024.cnblogs.com/blog/1341090/202504/1341090-20250415185543464-799644493.png" alt="" loading="lazy"></p>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/xiao987334176/p/18827261
頁: [1]
查看完整版本: dify MCP工具调用