写在前面
2026 年开年以来,AI Agent 已经从"锦上添花"变成了"生产力刚需"。上周帮一个电商客户搭建客服 Agent,从需求沟通到上线只用了 3 天——这在两年前根本不敢想。
今天这篇文章,我想聊聊怎么用 Dify + LangChain 快速搭建一个能真正干活的企业级 Agent。不整虚的,直接上代码和踩坑经验。

为什么选 Dify + LangChain?
先说结论:Dify 负责低代码编排,LangChain 负责复杂逻辑定制。
去年我试过纯代码方案(LangChain + FastAPI),也试过纯低代码(Coze、扣子),最后发现:
-
纯代码:灵活但开发周期长,改个提示词都要重新部署
-
纯低代码:上手快,但遇到复杂业务逻辑就捉襟见肘
Dify 的聪明之处在于它把两者结合了——日常用可视化工作流,遇到复杂场景可以嵌入自定义代码节点。

实战:搭建一个智能客服 Agent
第一步:环境准备
# 使用 Docker Compose 一键部署 Dify
git clone https://github.com/langgenius/dify.git
cd dify/docker
docker compose up -d
访问 http://localhost:3000 就能看到管理后台。初次登录会要求设置管理员账号,记得用强密码。
第二步:配置知识库
客服 Agent 的核心是"知道该说什么"。我们先把产品文档、FAQ、售后政策丢进知识库。
Dify 支持多种格式:PDF、Word、Markdown、甚至直接贴 URL。我一般这样处理:
# 商品退换货政策
## 适用条件
- 签收后 7 天内可申请无理由退货
- 商品需保持完好,包装齐全
- 定制类商品不支持退货
## 操作流程
1. 在订单页面点击"申请售后"
2. 选择退货原因并上传照片
3. 等待客服审核(1-2 个工作日)
4. 审核通过后寄回商品
5. 仓库收货后 3 天内退款
踩坑提醒:文档切片大小很关键。我测试过,500-800 token 的切片效果最好。太小了上下文不完整,太大了检索精度下降。
第三步:设计工作流
这是最关键的一步。我的客服 Agent 工作流长这样:
用户提问 → 意图识别 → 分支处理
├─ 查订单 → 调用订单 API
├─ 退换货 → 检索知识库 + 生成回复
├─ 投诉建议 → 转人工 + 记录工单
└─ 闲聊 → 直接回复
在 Dify 里用可视化编辑器拖拽就能完成。重点说两个节点:
1. 意图识别节点
提示词我打磨了 3 个版本,最终用的是这个:
你是一个电商客服意图分类器。请根据用户问题判断意图类型:
可选类型:
- order_query: 查询订单状态、物流信息
- return_exchange: 退换货相关
- complaint: 投诉或建议
- chitchat: 闲聊或其他
用户问题:{{query}}
只返回类型名称,不要解释。
准确率大概 92%,剩下的 8% 靠人工复核。
2. 知识库检索节点
这里有个技巧:**开启"多路召回"**。
单一向量检索容易漏掉关键信息。我配置了:
-
向量检索:Top 3 相关文档
-
关键词检索:Top 2 匹配文档
-
然后让 LLM 自己融合这些信息
第四步:嵌入自定义代码
有些场景工作流搞不定,比如要调用内部 CRM 系统。这时候用 Dify 的"代码节点":
# 代码节点:查询用户会员等级
def main(user_id: str) -> dict:
import requests
# 调用内部 CRM API
response = requests.get(
f"https://crm.internal/api/member/{user_id}",
headers={"Authorization": f"Bearer {CRM_TOKEN}"}
)
if response.status_code == 200:
data = response.json()
return {
"level": data["member_level"],
"points": data["points"],
"discount": data["discount_rate"]
}
else:
return {"error": "用户信息获取失败"}
代码节点支持 Python 和 JavaScript,还能装第三方库。不过注意:别在里面写太复杂的逻辑,超时了会很麻烦。

第五步:测试与迭代
上线前我一般会做三轮测试:
-
单元测试:每个节点单独测,确保输入输出符合预期
-
场景测试:模拟真实用户对话,覆盖 20+ 常见场景
-
压力测试:用脚本并发请求 100 次,看响应时间和错误率
真实数据:我们这套系统上线后,客服人力减少了 60%,用户满意度反而从 4.2 升到了 4.6。
性能优化技巧
跑了一段时间后,我总结了几个优化点:
1. 缓存热点问答
有些问题天天被问(比如"发什么快递"),每次都调 LLM 太浪费。我在 Dify 前面加了层 Redis 缓存:
import redis
import hashlib
cache = redis.Redis(host='localhost', port=6379)
def get_cached_answer(question: str) -> str | None:
key = f"qa:{hashlib.md5(question.encode()).hexdigest()}"
return cache.get(key)
def cache_answer(question: str, answer: str, ttl=3600):
key = f"qa:{hashlib.md5(question.encode()).hexdigest()}"
cache.setex(key, ttl, answer)
缓存命中率能达到 35%,省了不少 token。
2. 流式输出
用户等不起完整的回复。Dify 支持 SSE 流式输出,前端这样接:
const response = await fetch('/api/chat', {
method: 'POST',
body: JSON.stringify({ query: userInput })
});
const reader = response.body.getReader();
while (true) {
const { done, value } = await reader.read();
if (done) break;
const chunk = new TextDecoder().decode(value);
// 逐字显示到界面上
appendToChat(chunk);
}
首屏延迟从 2 秒降到 200 毫秒,体验提升巨大。
3. 模型降级策略
别把所有鸡蛋放一个篮子里。我配置了 fallback:
-
主模型:qwen-max(效果好,贵)
-
备用模型:qwen-plus(效果还行,便宜)
-
兜底模型:本地部署的 Qwen-7B(免费,但慢)
主模型挂了自动切备用,用户基本无感知。

最后说两句
AI Agent 不是银弹。我见过太多团队一上来就要"全自动",结果发现 80% 的场景还是需要人工介入。
我的建议是:从高频、标准化场景切入,先解决 20% 的问题,再慢慢扩展边界。
这套方案我们已经跑通了电商、SaaS、教育三个行业。如果你也在做类似项目,欢迎在评论区交流踩坑经验。
觉得有用?
-
👍 点赞支持一下,让我知道你在看
-
🔔 关注我,下周更新《AI Agent 进阶:多 Agent 协作架构设计》
-
💬 评论区聊聊:你目前用 AI Agent 解决了什么问题?
2697

被折叠的 条评论
为什么被折叠?



