Dify集成大模型Function Calling实战
来源:互联网
时间:2026-06-09 13:52:20
想让Dify里的AI智能体真正干活——查天气、发邮件、算账——而不是只会空谈?那必须把Function Calling打通。否则模型再聪明,也只能“纸上谈兵”。

下面直接进入实操环节,一步一步拆开怎么配置、怎么验证,避免踩坑。
确认大模型已支持Function Calling
先别急着配置工具,第一步是确认你用的模型支不支持这个能力。进入Dify管理后台 → 【模型管理】 → 点击你正在使用的本地或API模型(比如Qwen2.5-7B、Xinference托管的DeepSeek-V3)→ 查看右侧“能力支持”栏。如果显示
【Function Calling: ✅ 支持】
特别注意:Ollama模型默认不开放Function Calling接口,必须通过 --enable-function-calling 参数重启服务,或者改用Xinference v1.17.1+ 并启用openai-compatible模式。这一步漏了,后面全白搭。
在Dify中添加并配置自定义工具
这里有两种常见方式,看你的场景选。
方法一:使用Dify内置工具(最快上手)
进入【Agent工作流】→ 编辑目标节点 → 展开【工具】区域 → 点击“+ 添加工具” → 选择“时间查询”“计算器”“HTTP请求”等预置项 → 保存即可。这些工具无需开发,但仅限基础功能,适合快速原型验证。
方法二:接入自有Python后端服务(推荐生产环境)
① 用FastAPI写一个接收JSON、返回JSON的函数接口,比如
get_weather(city: str) → {"temperature": 26, "condition": "多云"};② 启动服务并确保能被Dify服务器访问(比如部署在同局域网,或用cpolar做内网穿透);
③ 回到Dify【工具管理】→ 点击“+ 创建自定义工具” → 填写工具名称、描述;
④ 在Schema字段粘贴OpenAPI 3.0格式的JSON Schema——必须严格匹配,字段名、类型、required缺一不可,否则工具在Agent中完全不可见,且没有任何提示;
⑤ 测试调用:输入样例参数,点击“运行测试”,看到返回正确JSON才表示连通成功。
Schema格式错误是初学者最常掉进去的坑,没有之一。
构建Function Calling型Agent节点
打开工作流画布 → 拖入【Agent】节点 → 点击配置 → 在策略下拉菜单中
必须选择“Function Calling”而不是“ReAct”
模型:选中已确认支持FC的模型;
工具:勾选上一步配置好的自定义工具或内置工具;
指令:明确告诉模型“你拥有以下工具,请仅在必要时调用,不要虚构结果”——这能防止它硬编天气数据;
查询:绑定用户输入变量,如
{{inputs.query}}。
操作本身不复杂,直接把文件拖进去就行。但有一个很容易被忽略的细节:如果同时勾选了5个以上工具,而指令里没强调优先级,模型很容易在模糊意图时随机调用错误工具。建议首次上线只勾选1~2个高相关性工具,减少干扰。
验证Function Calling是否生效
点击工作流右上角【调试】→ 输入测试语句:“北京今天多少度?”→ 观察日志面板。