从 0 到 1 搭建企业级 AI Agent:Dify + LangChain 实战指南

写在前面

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,还能装第三方库。不过注意:别在里面写太复杂的逻辑,超时了会很麻烦。

图片

第五步:测试与迭代

上线前我一般会做三轮测试:

  1. 单元测试:每个节点单独测,确保输入输出符合预期

  2. 场景测试:模拟真实用户对话,覆盖 20+ 常见场景

  3. 压力测试:用脚本并发请求 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 解决了什么问题?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前后端AI实战开发

你的钟意将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值