Dify 与扣子低代码智能体
手写代码能让你完全掌控智能体,但对"知识库问答、客服机器人、内容助理"这类常见需求,用低代码平台拖一拖、配一配更快落地。本章对比两大主流平台:Dify(开源 LLMOps 平台,可自托管,数据在自己手里)与扣子 Coze(字节跳动的智能体平台,SaaS 为主、发布渠道多),并给出在 Dify 上搭一个"带知识库与工具"的最小智能体的完整操作步骤。
两个平台是什么
- Dify:开源项目(GitHub: langgenius/dify),提供可视化编排 Agent/工作流、知识库(RAG)、工具/插件、发布为 Web App 或 API。可一键 Docker 自托管,国内可直接对接 deepseek、通义等模型。
- 扣子 Coze:字节跳动旗下平台(国内 coze.cn、海外 coze.com),同样有 Bot 编排、知识、插件、工作流,最大优势是一键发布到豆包、飞书、微信、抖音等渠道。
第一步:Dify 自托管(或用云端版)
Dify 官方提供 docker 目录,一条命令起全套(含数据库、向量库、API/Web 服务):
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env # 按需改端口、密钥
docker compose up -d # 首次会拉取镜像,稍等片刻
# 浏览器打开 http://localhost/ 注册管理员账号即完成安装
不想自己维护可用官方云服务 dify.ai(或国内版 dify.cn,界面一致,可跟随下述步骤)。启动后进入"设置 → 模型供应商",选择 deepseek 或 OpenAI-API-compatible,填入 API Key 与 Base URL,模型即接入。
第二步:建一个"带知识库 + 工具"的最简 Agent
以下文字步骤对应 Dify 界面(各版本文案略异,入口名称大体一致):
- 建应用:首页 →「创建空白应用」→ 应用类型选 Agent,填名称;
- 编排方式:进入编排页后,在顶部把对话推理方式设为 Function Calling(模型不支持时用 ReAct);
- 写提示词:左侧「指令/提示词」文本框写系统提示,如"你是售后客服,只依据知识库回答,并附引用编号";
- 加知识库:先到顶部「知识库」页——创建知识库 → 上传 md/txt/pdf 文件 → 分段设置用默认"自动分段" → 索引方式选高质量(向量检索)→ 完成后回到编排页,在「上下文」区关联该知识库(检索可设 top-k 与相关度阈值);
- 加工具:编排页「工具」区点添加——内置工具有维基百科、天气、网页抓取等;也可用"自定义 OpenAPI 工具"把自建 HTTP 接口(第 09 章那种)导入成工具;
- 调试:点右下角「预览」输入问题测试,观察右侧的"模型推理轨迹",确认它确实检索了知识库、调用了工具;
- 发布:右上角「发布」,应用即上线;在「访问 API」页创建 API 密钥,供外部程序调用。
第三步:用 API 调用 Dify 应用
发布后任何程序都能调它(无需再写 ReAct 循环,平台替你跑了):
curl -X POST http://localhost/v1/chat-messages \
-H "Authorization: Bearer app-xxxx(你的 API 密钥)" \
-H "Content-Type: application/json" \
-d '{"inputs": {}, "query": "保修期内耳机坏了怎么办?", "response_mode": "streaming", "user": "u-001"}'
# 输出:SSE 流,event: message 与逐字 content;blocking 模式则一次返回完整 JSON
Python 侧用 requests 往同一接口 POST 即可;response_mode 支持 streaming(SSE,见第 28 章同款思路)与 blocking 两种。
扣子(Coze)操作对照
- 登录 coze.cn →「创建 Bot」→ 填写人设与回复逻辑(相当于系统提示词);
- 「插件」区从商店添加工具(图片理解、搜索、天气等),或"新建插件"上传 OpenAPI 定义;
- 「知识」区上传文档 → 设置分段与检索方式(平台自动向量化);
- 需要复杂流程时用工作流节点拖拽(开始/大模型/知识库/条件分支),再在 Bot 里引用;
- 右上角「预览」测试,满意后点「发布」,选渠道:豆包、飞书、微信公众号、网页、API 等。
常见问题
- 知识库答不准怎么办? 依次检查:① 分段是否合理(一段尽量是一个完整话题,默认 500 token 可改小);② 索引方式是否选了"高质量(向量检索)"而非仅关键词;③ 检索 top-k 与相关度阈值是否太严/太松——用平台自带的"召回测试"看命中片段是不是想要的;④ 文档量小也可以先不加 Rerank 重排。
- 模型答非知识库内容、还编造来源? 系统提示里写死"只依据知识库回答,无依据就说不知道";Dify 的知识库可在上下文设置中限制"仅在知识库有答案时回答",并开启引用标注,方便对答案溯源。
- 自定义工具调不通? 工具本质是 OpenAPI Schema:先在"工具详情→调试"里直接试一次,确认 URL/方法/鉴权没问题;鉴权 Header 用平台"凭据变量"注入,别写死在 Schema 里。
- 想多个模型混用? 模型供应商页可配置多套 Key 与模型,编排页每个 Agent 单独选模型——贵的任务用强模型、简单闲聊用小模型省钱。
- 上线安全注意什么? API 密钥只保存在平台凭据区;网页嵌入的对话请求最好经你的后端转发(隐藏 app 密钥);成员权限最小化;若资料涉及隐私,评估"云平台合规 vs 自托管"。
- 什么时候该弃低代码回代码? 需要精细多轮状态、私有化强管控、或要跑第 27 章的回归评测持续调优时,就迁回第 28~31 章的代码方案——低代码负责快速验证,代码负责长期演进。 界面文字随版本略有出入,找不到入口时优先用平台站内搜索;下面给出一张选型对照,方便按团队情况拍板。
Agent 模式与工作流怎么选
低代码平台里常遇到两种编排:Agent(自主)模式让模型自己决定"要不要检索、要不要调工具",适合开放问答、不确定流程;工作流(节点)模式按固定顺序跑"开始→检索→生成→结束",结果可控、便宜、好调试。选型经验:流程固定的任务(查订单、导报表)优先工作流;探索型任务(开放咨询)用 Agent;先按工作流搭骨架、再在个别节点换成"模型决策"是常见演进路径。Dify 的对话型应用与 Chatflow、扣子的 Bot 与工作流分别对应这两种形态。
上线后的持续运营
- 定期导出平台对话日志,人工抽检"答错/答非所问"的样本:属于知识库缺资料就补文档,属于提示问题就改系统提示,别只加字面规则;
- 在平台外给关键流程建回归用例(套用第 27 章思路:固定输入 + 期望答案要点),每次改知识库/提示词后跑一遍对比通过率;
- 平台发布通常带版本与回滚:重大改动先在测试应用验证,再对生产应用发布并观察一两天的线上反馈。
概念对照与选型建议
| 能力 | Dify | 扣子 Coze |
|---|---|---|
| 部署 | 开源可自托管 / 云 | SaaS 为主(有企业版私有化) |
| 智能体本体 | 应用(Agent/工作流) | Bot(含工作流) |
| 知识库 | 知识库(分段+向量检索) | 知识(上传+分段) |
| 外部能力 | 工具(内置/自定义 OpenAPI) | 插件(商店/自定义) |
| 调用方式 | Web App + REST API | 渠道发布 + Coze API |
| 渠道分发 | 自建站为主 | 豆包/飞书/微信/抖音等一站发布 |
- 要数据自主可控、深度集成自有系统:选 Dify 自托管,代码方式(前面各章)仍是最终归宿,低代码用于快速验证;
- 要快速铺到 IM/短视频渠道、且可接受平台托管:优先扣子;
- 两者界面与概念都在快速迭代,动手时以官网文档为准;低代码搭出来的应用难以精细调优,规模上去后建议迁回代码方案。 小结:Dify 与扣子把"Agent + 知识库 + 工具 + 发布"变成可视化配置:Dify 胜在开源自托管与 API 自由,扣子胜在渠道分发与开箱即用;先在低代码平台跑通业务流程,再用代码方案做精细化与私有化落地是常见路径。