Dify这个工具最近在AI圈子里热度不低,但很多朋友还不太清楚它到底能干什么。简单说,Dify就像AI应用开发领域的低代码平台——你只需要拖拖拽拽、配置几下,就能快速搭出一个具备RAG、工具调用、多轮对话能力的AI Agent。
一、Dify是什么?为什么选它?
1.1 一句话定位
Dify = AI应用开发的“低代码平台”,让你通过拖拽+配置,快速搭建具备RAG、工具调用、多轮对话能力的AI Agent。
1.2 为什么是Dify?(与其他方案对比)
| 方案 | 优势 | 劣势 | 适合谁 |
|---|---|---|---|
| 手写Agent(上一轮) | 完全可控,理解深 | 开发周期长 | 想深入理解原理的人 |
| LangChain | 生态丰富,灵活 | 学习曲线陡峭,抽象层级多 | 有一定经验的开发者 |
| Dify | 可视化,上手快,有API | 极端定制场景需二次开发 | 零基础/快速验证 |
| Coze(扣子) | 字节出品,中文友好 | 数据存云端,企业合规风险 | 个人/轻量场景 |
二、本地部署Dify(3种方式,按需选择)
方式一:Docker Compose(推荐,最省心)
前置要求:Docker已安装,内存≥4GB
# 1. 克隆项目
git clone https://github.com/langgenius/dify.git
cd dify/docker
# 2. 启动所有服务(包含PostgreSQL、Redis、Wea viate等)
docker-compose up -d
# 3. 访问 https://localhost:3000
# 默认账号: admin@dify.ai / password: 123456
方式二:源码本地运行(适合二次开发)
# 后端(Python)
cd api
cp .env.example .env
# 修改.env中的数据库配置
pip install -r requirements.txt
flask db upgrade
python app.py
# 前端(Next.js)
cd web
npm install
npm run dev
方式三:Dify Cloud(最快,数据存云端)
直接访问 https://cloud.dify.ai 注册即可,跳过部署环节。
三、手把手:用Dify搭建第一个本地Agent
场景:一个“智能运维助手”——能查服务器状态、能执行命令、能分析日志
Step 1:创建应用
登录Dify → 点击 “创建应用”
选择 “Agent” 类型(不是“对话应用”)
命名:运维小助手
Step 2:配置模型
进入应用 → “模型配置”
选择模型提供方:
本地模型:用Ollama部署的Qwen/DeepSeek(后面会讲)
云端模型:OpenAI / Azure / 火山引擎 / 通义千问
填入API Key和模型名称
Step 3:设计System Prompt(这是Agent的“人格”)
在 “指令” 框中输入:
你是一个专业的运维助手,负责协助工程师管理服务器。你的能力:
1. 查询服务器状态(CPU、内存、磁盘)
2. 执行预设的安全命令(如查看日志、重启服务)
3. 分析错误日志并给出排查建议
工作原则:
- 执行任何操作前,先向用户确认
- 如果信息不足,主动询问
- 输出结果时,用表格或列表清晰展示
- 涉及敏感操作时,必须再次确认
Step 4:添加工具(核心!这是Agent的“手脚”)
点击 “工具” → “添加工具”
内置工具(可直接勾选):
Web Scraper:抓取网页内容Current Time:获取当前时间Wikipedia:搜索维基百科
自定义工具(重点):
点击 “自定义工具” → “创建”,填写:
工具名称: query_server_status
工具描述: 查询指定服务器的CPU、内存、磁盘使用率
输入参数:
- server_ip (string): 服务器IP地址
- metric (string, 可选): cpu/mem/disk/all,默认all
关联执行逻辑(两种方式):
| 方式 | 说明 | 难度 |
|---|---|---|
| 代码节点(Code Node) | 在Dify内写Python代码 | ⭐⭐ |
| API调用 | 调用外部HTTP服务(你已有的Go运维API) | ⭐ |
代码节点示例(直接在Dify里写):
import subprocess
import json
def main(server_ip: str, metric: str = "all"):
# 这里用模拟数据,实际可通过SSH或Agent API获取
result = {
"cpu": "23.5%",
"memory": "67.2%",
"disk": "45.8%"
}
return {
"status": "success",
"data": result
}
Step 5:配置记忆(让Agent“记住”上下文)
在 “上下文” 选项卡中:
- 开启记忆:让Agent记住历史对话
- 记忆窗口大小:设置保留最近N轮对话(建议10-20轮)
- 长期记忆:对接向量库(如Qdrant/Pinecone),让Agent记住用户偏好
Step 6:测试与调试
在右侧 “调试” 面板输入:
请帮我查一下 192.168.1.100 这台服务器的整体状态
观察Agent的执行轨迹:
- 是否理解你的意图
- 是否正确调用了
query_server_status工具 - 返回结果是否清晰
四、本地模型接入(零成本方案)
不想花钱买API?用 Ollama + Dify 本地跑模型:
4.1 安装Ollama
# macOS / Linux
curl -fsSL https://ollama.com/install.sh | sh
# 下载中文模型(推荐Qwen2.5)
ollama pull qwen2.5:7b
4.2 Dify接入Ollama
在Dify的 “模型提供商” → “Ollama” 中配置:
API地址: https://localhost:11434
模型名称: qwen2.5:7b
上下文长度: 8192
五、Dify Agent进阶功能
当你跑通基础Agent后,可以逐步解锁以下能力:
5.1 知识库(RAG)接入
点击 “知识库” → “创建” → 上传你的运维文档、操作手册、故障案例库
Agent在回答问题时,会自动检索知识库,让回答更精准。
5.2 工作流编排(Workflow)
对于复杂任务,可以脱离纯Agent模式,使用 “工作流” 模式——用可视化节点编排固定流程,比纯Agent更可控、更稳定。
5.3 API发布
创建好的Agent可以:
- 嵌入到网页:复制iframe代码
- 发布为API:获得RESTful API端点,供其他系统调用
- 发布到Slack/微信/钉钉:接入企业IM
5.4 日志与可观测性
Dify内置了完整的运行日志:
- 每次对话的完整追踪
- Token消耗统计
- 工具调用记录
- 用户反馈收集
六、新手常见踩坑 & 解决方案
| 问题 | 原因 | 解决方案 |
|---|---|---|
| Agent不调用工具 | System Prompt没写清楚“何时调用工具” | 在Prompt中明确:“当用户问及XX时,你必须调用YY工具” |
| 工具参数解析错误 | LLM生成的参数格式不对 | 在工具描述中写清楚参数示例,如{"ip": "192.168.1.1"} |
| 本地模型太慢 | 7B模型在CPU上运行较慢 | 1) 用GPU加速;2) 换更小的模型(如qwen2.5:1.5b) |
| Docker容器启动失败 | 端口被占用 | 修改docker-compose.yml中的端口映射 |
七、30分钟实战Checklist
按照这个清单,今天就能跑通第一个本地Agent:
- 用Docker或Cloud版启动Dify
- 创建第一个Agent应用
- 配置模型(云端或本地Ollama)
- 编写System Prompt
- 添加1个内置工具(如Current Time)
- 添加1个自定义工具(Python代码)
- 在调试面板测试至少3种不同问题
- 观察并记录Agent的思考-行动-观察轨迹
- 将Agent发布为API并调用
