用Dify从零构建AI Agent
从零到一:手把手教你用 Dify 构建专属 AI Agent
在人工智能浪潮席卷全球的今天,大语言模型(LLM)的强大能力已无需赘言。然而,如何将这些能力封装成可交互、可执行特定任务的智能体(AI Agent),并将其快速部署落地,是许多开发者和企业面临的实际挑战。本文将聚焦于开源 AI Agent 平台 Dify,带你从零开始,完成一个 AI Agent 的搭建、配置与部署全流程。
一、什么是 Dify?为何选择它?
Dify 是一个开源的 LLMOps(大语言模型运维)平台,其核心目标是让开发者能够以可视化的方式,像搭积木一样轻松构建和运营基于大语言模型的 AI 应用 。它并非一个单一的 Agent,而是一个功能强大的“Agent 工厂”。
选择 Dify 主要基于以下几点优势:
- 开源与本地化部署:代码完全开源,支持私有化部署,保障数据安全与隐私 。
- 可视化编排:通过拖拽式的工作流(Workflow)界面构建复杂的 AI应用逻辑,无需编写大量胶水代码 。
- 多模型支持:可无缝接入 OpenAI GPT、Anthropic Claude、国内主流大模型及开源模型,避免供应商锁定 。
- 功能全面:不仅支持构建对话式 Agent,还提供文本生成、知识库(数据集)管理、模型微调、API 发布等全套能力 。
二、环境准备与 Dify 部署
在开始构建 Agent 前,我们需要先将 Dify 平台运行起来。推荐使用 Docker 进行部署,这是最快捷的方式。
1. 系统环境要求
- 一台 Linux/Mac/Windows(WSL2)服务器或本地开发机。
- 已安装 Docker 和 Docker Compose。
- 建议配置至少 4GB 内存。
2. 一键部署 Dify
通过官方提供的脚本,可以快速启动一个包含所有依赖的 Dify 服务。
# 创建并进入一个工作目录
mkdir dify && cd dify
# 下载 docker-compose.yml 配置文件
curl -o docker-compose.yml https://raw.githubusercontent.com/langgenius/dify/main/docker/docker-compose.yml
# 启动所有服务(包括前端、后端、数据库等)
docker-compose up -d
执行完毕后,访问 http://你的服务器IP:3000 即可进入 Dify 的 Web 控制台。首次进入需要创建管理员账户。
三、核心实战:构建你的第一个 AI Agent
我们将构建一个具备“思考-行动”能力的 AI Agent,它能够理解复杂任务,并自动调用合适的工具(如搜索、计算)来解决问题。Dify 中主要通过 “工作流” 模式来实现这一目标 。
1. 创建应用与选择模式
登录 Dify 控制台,点击“创建应用”。
- 应用类型:选择“工作流”。
- 应用名称:例如“我的智能研究助手”。
- 图标和描述:按需填写。
创建后,进入可视化工作流编排界面。
2. 编排 Agent 工作流
一个典型的 Agent 工作流遵循 “任务理解 -> 思考规划 -> 工具调用 -> 结果反馈” 的循环策略 。我们通过节点来搭建这个流程。
主要节点配置如下表所示:
| 节点类型 | 功能描述 | 关键配置项 |
|---|---|---|
| 开始 | 工作流入口,接收用户问题。 | 配置“变量”,将用户输入映射为 query 变量。 |
| 大语言模型 | Agent 的“大脑”,负责思考和决策。 | 选择模型提供商(如 OpenAI),配置 API Key 和模型类型(如 gpt-4)。这是 Agent 智能的核心 。 |
| 工具 | Agent 可用的“手和脚”。 | Dify 内置了联网搜索、代码解释器等。也可通过 MCP(Model Context Protocol) 协议接入自定义工具或第三方 API 。 |
| 条件判断 | 控制工作流分支。 | 例如,判断 LLM 的输出是否包含“需要搜索”的指令。 |
| 循环 | 实现多轮“思考-行动”的关键。 | 设置循环条件,例如“当工具调用结果不为空且未达到最终答案时”。 |
| 结束 | 输出最终结果给用户。 | 返回 LLM 生成的最终答案。 |
在画布中,将这些节点按逻辑连接起来。一个简化的工作流可能如下:开始 -> LLM思考 -> 条件判断(是否需要工具)-> [是]工具节点 -> 循环至LLM -> [否]结束。
3. 配置 Agent 策略与提示词
点击画布中的 LLM 节点,进行关键配置:
- 系统提示词(System Prompt):定义 Agent 的角色和能力。这是指导 Agent 行为的关键。
1. 理解问题的核心。 2. 思考解决问题需要哪些信息或步骤。 3. 如果需要最新信息或计算,请明确指示使用“搜索”或“计算器”工具。 4. 综合所有信息,给出清晰、准确的最终答案。 请使用中文回复。 - 推理参数:调整
Temperature(创造性)和Max Tokens(回答长度)等,控制 Agent 的发挥。
4. 测试与调试
在工作流界面右上角,点击“测试”按钮。在聊天窗输入问题,如“请帮我总结一下量子计算的最新进展”,观察工作流的执行路径、LLM 的思考过程和工具调用情况,根据结果优化提示词或工作流逻辑 。
四、进阶:连接知识库与发布 API
1. 赋能 Agent 专属知识
让 Agent 回答关于特定领域(如公司内部文档、产品手册)的问题,需要用到“知识库”功能。
- 在 Dify 的“数据集”页面,创建数据集并上传文档(支持 txt、pdf、word 等格式)。
- 回到工作流编排界面,添加“知识库检索”节点。将其插入在 LLM 节点之前,这样用户问题会先从知识库中查找相关片段,并将这些片段作为上下文提供给 LLM,从而生成基于专属知识的回答 。
2. 将 Agent 发布为服务
构建好的 Agent 应用可以多种方式提供服务:
- Web 界面:直接分享应用链接,获得一个类似 ChatGPT 的聊天窗口。
- API 接口:在“发布”页面,可一键生成并启用 API。后续即可通过 HTTP 调用你的 AI Agent。
# 示例 Python 代码调用 Dify Agent API import requests api_key = "你的应用API_KEY" url = "https://api.dify.ai/v1/chat-messages"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
data = {
"inputs": {},
"query": "量子计算的最新进展是什么?",
"response_mode": "streaming", # 或 "blocking"
"user": "user_123"
}
response = requests.post(url, json=data, headers=headers)
print(response.json())
```
- 嵌入到其他系统:将 iframe 代码嵌入到你的网站或内部系统中 。
五、实践案例:教学辅助问答系统
除了通用 Agent,Dify 也非常适合构建垂直领域的解决方案。例如,一个 基于 AI Agent 的教学辅助问答系统 可以这样实现 :
- 系统架构:采用 Spring Boot(后端)+ Vue.js(前端)的传统分离架构,Dify 作为核心 AI 能力引擎提供 API 。
- Dify 侧:
- 创建名为“课程问答助手”的工作流应用。
- 建立“课程知识库”,上传教材、讲义、历年考题等文档。
- 在工作流中编排逻辑:用户问题 -> 检索课程知识库 -> LLM 生成答案 -> 返回。
- 启用该应用的 API。
- 业务系统侧(Spring Boot):
- 设计用户管理、问题历史等数据库表 。
- 编写
QuestionService,其中调用上一步中 Dify 提供的 API,将学生的问题发送过去并获得 AI 生成的答案。 - 提供 RESTful API 给前端 Vue.js 调用,完成交互。
这种架构将专业的 AI 能力构建(交给 Dify)和复杂的业务系统开发(Spring Boot/Vue.js)解耦,大幅提升了开发效率 。
总结通过 Dify 平台,我们无需从零开始训练模型或编写复杂的 Agent 调度框架,就能快速构建出功能强大、可定制化的 AI Agent。从本地部署、可视化编排,到连接知识库和发布服务,Dify 提供了一站式的 LLM 应用开发体验。无论是用于探索性的智能助手,还是集成到像教学系统这样的生产环境中,它都是一个极具效率的工具选择。
更多推荐



所有评论(0)