AI 工作流自动化实战
AI 导读
AI 工作流自动化实战 用 Dify 和 n8n 搭建三个实用 AI 工作流,无需写代码 Maurice | 灵阙学院 前置准备 Docker Desktop 已安装 基本的浏览器操作能力 一个 OpenAI / Claude / 国产大模型 API Key 一、AI 工作流工具全景对比 特性 Dify Coze (字节) n8n Make (Zapier) 定位 AI 应用开发平台 AI...
AI 工作流自动化实战
用 Dify 和 n8n 搭建三个实用 AI 工作流,无需写代码 Maurice | 灵阙学院
前置准备
- Docker Desktop 已安装
- 基本的浏览器操作能力
- 一个 OpenAI / Claude / 国产大模型 API Key
一、AI 工作流工具全景对比
| 特性 | Dify | Coze (字节) | n8n | Make (Zapier) |
|---|---|---|---|---|
| 定位 | AI 应用开发平台 | AI Bot 平台 | 通用工作流引擎 | 通用自动化平台 |
| 开源 | 是(Apache 2.0) | 否 | 是(Fair-code) | 否 |
| 自建部署 | Docker 一键 | 不支持 | Docker 一键 | 不支持 |
| AI 原生 | 深度集成 | 深度集成 | 通过节点接入 | 通过节点接入 |
| RAG 内置 | 内置知识库 | 内置知识库 | 需外接向量库 | 需外接 |
| 节点数量 | AI 专精 | AI 专精 | 400+ 集成 | 1500+ 集成 |
| 中文支持 | 优秀 | 优秀 | 一般 | 一般 |
| 适合场景 | AI 应用/RAG | 聊天机器人 | 复杂跨系统集成 | 营销/CRM 自动化 |
选型建议:
- 构建 AI 对话/RAG 应用 --> Dify
- 连接多个 SaaS 系统 --> n8n(自建) 或 Make(托管)
- 快速搭建聊天 Bot --> Coze
二、环境搭建
2.1 部署 Dify
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
docker compose up -d
等待约 2 分钟,访问 http://localhost/install 完成初始化设置。
验证服务正常:
curl -s http://localhost/api/health | python3 -m json.tool
预期输出:
{
"status": "ok"
}
2.2 部署 n8n
docker run -d --name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
-e GENERIC_TIMEZONE=Asia/Shanghai \
n8nio/n8n
访问 http://localhost:5678,创建管理员账号。
2.3 配置 API Key
在 Dify 中:设置 --> 模型供应商 --> 添加 OpenAI/Anthropic Key。
在 n8n 中:Credentials --> Add Credential --> 选择 OpenAI 或 HTTP Header Auth。
三、工作流一:自动摘要邮件(n8n)
目标:定时读取邮箱中的未读邮件,用 AI 生成摘要,发送到飞书/钉钉/Slack。
3.1 创建工作流
在 n8n 中点击 New Workflow,然后按以下步骤添加节点:
节点 1:Schedule Trigger(定时触发)
- 设置:每 30 分钟执行一次
- 参数:Rule --> Every 30 minutes
节点 2:IMAP Email(读取邮件)
- Credential:配置你的邮箱 IMAP 信息
- 参数:
- Mailbox: INBOX
- Mark as Read: true
- Download Attachments: false
节点 3:OpenAI Chat(AI 摘要)
- Credential:你的 OpenAI Key
- Model:gpt-4o-mini
- System Prompt:
你是一个邮件摘要助手。针对每封邮件输出:
1. 发件人
2. 主题
3. 一句话摘要(不超过 50 字)
4. 优先级(高/中/低)
5. 需要回复:是/否
- User Message:
{{ $json.textPlain }}
节点 4:HTTP Request(发送到飞书 Webhook)
- Method:POST
- URL:你的飞书机器人 Webhook 地址
- Body:
{
"msg_type": "text",
"content": {
"text": "{{ $json.message.content }}"
}
}
3.2 测试运行
点击 Execute Workflow 按钮,检查每个节点的输出。
预期效果:飞书群中收到类似消息:
邮件摘要:
1. 发件人:wang@company.com
主题:Q3 季度报告评审
摘要:请在本周五前完成 Q3 报告的评审并反馈意见
优先级:高
需要回复:是
四、工作流二:文档问答机器人(Dify)
目标:上传企业文档,构建知识库,实现精准问答。
4.1 创建知识库
- 登录 Dify,进入"知识库"页面
- 点击"创建知识库"
- 命名为"企业制度手册"
- 上传文档(支持 PDF/DOCX/TXT/Markdown)
配置分段策略:
- 分段方式:自动
- 分段长度:500 tokens
- 重叠长度:50 tokens
- 索引方式:高质量(使用 Embedding 模型)
4.2 创建 AI 应用
- 进入"工作室" --> "创建应用"
- 选择"聊天助手"
- 配置如下:
模型设置:
- 模型:gpt-4o-mini(或 Claude Sonnet)
- Temperature:0.3(问答场景建议低温度)
提示词:
你是企业制度手册的问答助手。
规则:
1. 仅根据知识库中的内容回答,不要编造
2. 如果知识库中没有相关信息,直接说"抱歉,手册中没有相关内容"
3. 回答时引用出处(文档名 + 页码)
4. 回答简洁,控制在 200 字以内
知识库关联:
- 添加刚创建的"企业制度手册"
- 检索模式:混合检索(关键词 + 语义)
- Top K:3
- Score Threshold:0.5
4.3 测试问答
在右侧预览面板输入测试问题:
年假有多少天?
预期输出:
根据《员工休假制度》第三章:
- 工龄 1-10 年:5 天/年
- 工龄 10-20 年:10 天/年
- 工龄 20 年以上:15 天/年
年假可分次使用,但不可跨年累计。
出处:员工休假制度.pdf 第 12 页
4.4 发布为 API
点击"发布" --> "访问 API",获取 API 端点和密钥。
curl -X POST 'http://localhost/v1/chat-messages' \
-H 'Authorization: Bearer app-your-key' \
-H 'Content-Type: application/json' \
-d '{
"inputs": {},
"query": "出差报销流程是什么?",
"response_mode": "blocking",
"user": "test-user"
}'
五、工作流三:社交媒体内容生成流水线(Dify Workflow)
目标:输入一个主题,自动生成小红书文案 + 推文 + LinkedIn 帖子。
5.1 创建 Workflow 应用
- 进入"工作室" --> "创建应用" --> 选择"工作流"
- 命名为"内容生成流水线"
5.2 编排节点
整体流程如下:
开始 --> 主题研究(LLM) --> 并行生成 --> 合并输出 --> 结束
|-- 小红书文案(LLM)
|-- Twitter 推文(LLM)
|-- LinkedIn 帖子(LLM)
节点 1:开始
- 输入变量:
topic(字符串,用户输入的主题)
节点 2:主题研究(LLM 节点)
- 模型:gpt-4o-mini
- 提示词:
针对主题「{{topic}}」,输出:
1. 目标受众画像(一句话)
2. 3 个核心卖点
3. 情感基调(专业/轻松/激励)
4. 5 个相关关键词
用 JSON 格式输出。
节点 3a:小红书文案(LLM 节点)
- 模型:gpt-4o-mini
- 提示词:
你是小红书爆款文案专家。基于以下研究结果生成一篇小红书帖子:
{{research_output}}
要求:
- 标题带数字和情绪词(如"绝了""必看")
- 正文 300-500 字,分段清晰
- 文末加 5-8 个话题标签
- 口语化、真实感、有个人体验
节点 3b:Twitter 推文(LLM 节点)
- 提示词:
基于以下研究结果生成 3 条 Twitter/X 推文(每条不超过 280 字符):
{{research_output}}
要求:简洁有力,包含 1-2 个 hashtag,适合转发。
节点 3c:LinkedIn 帖子(LLM 节点)
- 提示词:
基于以下研究结果生成一篇 LinkedIn 帖子:
{{research_output}}
要求:专业但不枯燥,有洞察,800 字以内,适合 B2B 受众。
节点 4:合并输出(Template 节点)
===== 小红书文案 =====
{{xiaohongshu_output}}
===== Twitter 推文 =====
{{twitter_output}}
===== LinkedIn 帖子 =====
{{linkedin_output}}
5.3 运行测试
输入主题:AI 编程助手对开发者效率的影响
预期输出包含三个平台的完整内容,各自风格迥异但主题统一。
5.4 通过 API 集成到业务系统
import requests
API_URL = "http://localhost/v1/workflows/run"
API_KEY = "app-your-workflow-key"
response = requests.post(
API_URL,
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
},
json={
"inputs": {"topic": "2026年 AI Agent 发展趋势"},
"response_mode": "blocking",
"user": "content-team"
}
)
result = response.json()
print(result["data"]["outputs"]["text"])
六、生产化建议
6.1 监控与告警
- Dify 内置了日志和统计面板,可在"监测"页面查看调用量、延迟、Token 消耗
- n8n 支持将执行日志发送到外部系统(Slack/邮件/数据库)
6.2 成本控制
成本公式 = 调用次数 x 平均 Token 数 x 单价
实际案例(邮件摘要工作流,每天 50 封邮件):
- 输入:平均 500 tokens/封
- 输出:平均 200 tokens/封
- 模型:gpt-4o-mini($0.15/1M input, $0.60/1M output)
- 日成本:50 x (500 x 0.00000015 + 200 x 0.0000006) = $0.01
- 月成本:约 $0.30
6.3 容错设计
- 在 n8n 中为每个 AI 节点添加 Error Handler,失败时发送告警
- 在 Dify Workflow 中使用条件分支节点处理异常情况
- API 调用添加重试逻辑(最多 3 次,指数退避)
常见问题
Q1: Dify Docker 启动失败?
检查 Docker 内存分配是否 >= 4GB。运行 docker compose logs 查看具体报错。常见原因是端口 80 被占用,修改 .env 中的 EXPOSE_NGINX_PORT。
Q2: n8n 中 OpenAI 节点超时? 在节点设置中增加 Timeout 值(默认 60s,建议设为 120s)。也可以在 Credentials 中配置代理。
Q3: 知识库检索结果不准确? 调整分段长度(过长会引入噪音,过短会丢失上下文),通常 300-800 tokens 为佳。同时检查 Embedding 模型是否支持中文。
Q4: 如何在工作流中使用国产模型? Dify 原生支持通义千问、文心一言、智谱等国产模型。n8n 可以通过 HTTP Request 节点调用任意兼容 OpenAI 格式的 API。
Q5: 工作流执行很慢? 检查是否有串行瓶颈。利用并行节点(Dify Workflow 支持并行分支,n8n 支持 Split In Batches)将独立任务并行执行。
Maurice | maurice_wen@proton.me