FastGPT 工作流自动化教程|附配置文件
在企业知识库、智能客服、销售线索跟进、内容生成、数据查询等场景中,单纯依靠一个“大模型对话框”往往不够。真实业务通常包含多个步骤:接收用户问题、判断意图、查询知识库、调用接口、整理结果、生成回复、记录日志,甚至还要分支处理异常情况。
FastGPT 的工作流能力,正是为这类复杂业务而设计。它可以把一个 AI 应用拆成多个节点,通过可视化编排的方式,把大模型、知识库、HTTP 请求、条件判断、变量处理等能力组合起来,形成一套稳定、可复用、可扩展的自动化流程。
本文将以“智能知识库客服工作流”为例,系统讲解 FastGPT 工作流的设计思路、节点配置、变量传递、接口调用方式,并附上一份可参考的配置文件模板,帮助你快速搭建自己的自动化 AI 应用。
一、什么是 FastGPT 工作流?
FastGPT 是一款面向企业和个人开发者的 AI 应用构建平台,常见能力包括知识库问答、AI 对话应用、工作流编排、插件调用、API 集成等。
其中,工作流可以理解为一个“AI 自动化流程引擎”。它不是让模型直接回答用户,而是先把业务流程拆解成多个节点,再按照预设逻辑依次执行。
例如,一个客服机器人可以拆成以下步骤:
- 用户输入问题;
- 系统判断用户问题类型;
- 如果是产品咨询,则查询产品知识库;
- 如果是订单问题,则调用订单系统接口;
- 如果问题不明确,则引导用户补充信息;
- 汇总结果后,由大模型生成自然语言回复;
- 将本次会话内容写入日志或 CRM 系统。
这种方式相比单轮问答有明显优势:
- 流程更稳定:关键环节由规则和节点控制,不完全依赖模型自由发挥;
- 业务更可控:可以清楚知道每一步做了什么,便于调试和优化;
- 能力更强:可以连接知识库、数据库、第三方系统、企业内部接口;
- 复用性更好:一个流程可以被 API、网页端、企业微信、飞书等多个入口调用;
- 适合复杂场景:支持条件分支、变量传递、多轮追问、接口调用等高级逻辑。
二、适合使用工作流的典型场景
并不是所有 AI 应用都必须使用工作流。如果只是简单的知识库问答,普通应用已经足够。但如果你的业务包含多个步骤、多个数据源或多种处理逻辑,工作流就非常适合。
1. 智能客服
客服场景通常涉及售前咨询、售后问题、订单查询、退款政策、人工转接等不同类型问题。通过工作流可以先判断用户意图,再进入不同处理分支。
例如:
- 产品问题:查询知识库;
- 订单问题:调用订单接口;
- 投诉问题:生成工单;
- 无法回答:转人工客服。
2. 销售线索收集
销售机器人不仅要回答问题,还要判断用户是否有购买意向,并收集姓名、电话、公司、预算、需求等信息。
工作流可以完成:
- 判断用户意向等级;
- 自动追问缺失信息;
- 整理线索摘要;
- 写入 CRM;
- 通知销售人员跟进。
3. 企业知识库助手
企业内部知识库通常分布在不同文档、制度、FAQ 和系统中。通过 FastGPT 工作流,可以先识别用户问题所属部门,再匹配对应知识库。
例如:
- 人事问题查询 HR 知识库;
- 财务报销查询财务知识库;
- IT 故障查询技术支持知识库;
- 管理制度查询公司制度库。
4. 自动内容生成
内容生成不只是“写一篇文章”这么简单。高质量内容往往需要主题分析、资料检索、结构生成、正文撰写、SEO 优化、标题生成等多个环节。
工作流可以自动完成:
- 分析主题;
- 生成大纲;
- 查询资料;
- 输出正文;
- 生成摘要;
- 生成 SEO 标题和关键词。
5. API 查询与数据分析
如果你的 AI 应用需要实时数据,例如订单状态、库存数量、物流进度、天气信息、财务数据等,就需要通过工作流调用外部接口。
FastGPT 工作流可以通过 HTTP 节点请求外部系统,再让大模型基于接口返回结果生成自然语言解释。
三、工作流设计思路
在真正配置之前,建议先不要急着拖节点,而是先画清楚业务流程。
以“智能知识库客服”为例,我们可以设计如下逻辑:
flowchart TD
A[用户输入问题] --> B[意图识别]
B --> C{问题类型}
C -->|产品咨询| D[查询产品知识库]
C -->|订单问题| E[调用订单接口]
C -->|售后政策| F[查询售后知识库]
C -->|不明确| G[追问用户补充信息]
D --> H[生成最终回复]
E --> H
F --> H
G --> H
H --> I[输出给用户]
这个流程中有几个关键点:
- 输入变量:用户的问题;
- 意图识别节点:判断问题属于哪一类;
- 条件分支节点:根据意图走不同路径;
- 知识库节点:检索相关文档;
- HTTP 节点:调用外部订单接口;
- AI 回复节点:整合上下文,生成最终回答;
- 输出节点:返回结果给用户。
良好的工作流设计应遵循三个原则:
-
让规则做确定性判断
能用条件判断解决的,就不要完全交给模型。例如是否包含订单号、手机号、产品型号等,可以通过变量或正则判断。 -
让模型做语义理解和表达
模型擅长理解自然语言、总结信息、生成回复,因此适合用于意图识别、内容整理、自然语言输出。 -
让接口提供真实数据
涉及订单、库存、价格、物流等实时数据时,不要让模型猜测,应该调用业务系统接口获取准确信息。
四、准备工作
在开始搭建之前,你需要准备以下内容:
1. FastGPT 环境
可以选择官方云服务,也可以自行部署 FastGPT。自部署适合企业私有化场景,便于连接内部系统和保护数据安全。
2. 模型配置
建议准备至少一个可用于对话和推理的大语言模型,例如:
- GPT 系列模型;
- Claude 系列模型;
- Qwen 系列模型;
- DeepSeek 系列模型;
- GLM 系列模型。
如果业务对成本敏感,可以将不同节点使用不同模型:
- 意图识别:使用速度快、成本低的模型;
- 最终回复:使用表达能力更强的模型;
- 内容生成:使用上下文更长的模型。
3. 知识库数据
将企业 FAQ、产品说明、售后政策、使用教程等文档整理后导入 FastGPT 知识库。
建议按业务分类建立多个知识库,例如:
- 产品知识库;
- 售后知识库;
- 内部制度知识库;
- 技术支持知识库。
文档质量会直接影响问答效果。建议每个知识点独立成段,标题清晰,避免把多个主题混在一个文档里。
4. 外部接口
如果需要查询订单、库存、用户资料等数据,需要准备对应 API。
例如订单查询接口:
GET https://api.example.com/orders/{orderId}
Authorization: Bearer YOUR_API_TOKEN
返回示例:
{
"orderId": "A20250101001",
"status": "已发货",
"product": "智能耳机 Pro",
"trackingNo": "SF1234567890",
"deliveryCompany": "顺丰速运"
}
五、搭建工作流的核心步骤
下面以“智能客服工作流”为例,介绍一个完整配置过程。
六、步骤一:创建工作流应用
进入 FastGPT 控制台后,新建一个应用,类型选择“工作流”或类似选项。应用名称可以设置为:
智能客服自动化工作流
建议在描述中写清楚应用目标:
用于处理产品咨询、订单查询和售后政策问答,支持知识库检索、订单接口调用和智能回复生成。
这样后续维护时,可以更快理解该应用的用途。
七、步骤二:配置用户输入节点
用户输入节点是工作流的起点,通常包含用户问题、会话上下文、用户 ID 等信息。
常见变量设计如下:
| 变量名 | 类型 | 说明 |
|---|---|---|
userQuestion |
string | 用户输入的问题 |
userId |
string | 用户 ID,可选 |
sessionId |
string | 会话 ID,可选 |
channel |
string | 来源渠道,例如网页、企微、飞书 |
如果只是基础问答,最重要的是 userQuestion。
示例输入:
{
"userQuestion": "我的订单 A20250101001 发货了吗?",
"userId": "u_10001",
"sessionId": "s_90001",
"channel": "web"
}
八、步骤三:添加意图识别节点
意图识别节点用于判断用户问题属于哪一类。这里可以使用 AI 对话节点,让模型只输出固定枚举值。
推荐分类如下:
product_consulting:产品咨询;order_query:订单查询;after_sales:售后政策;unclear:问题不明确;other:其他问题。
意图识别提示词示例:
你是一个客服意图分类器。请根据用户问题判断其意图类型。
可选类型:
1. product_consulting:产品功能、价格、规格、使用方法等产品咨询
2. order_query:订单状态、物流、发货、退款进度等订单相关问题
3. after_sales:退换货政策、保修、维修、售后流程等问题
4. unclear:用户问题缺少必要信息,无法判断
5. other:不属于以上类型的问题
用户问题:
{{userQuestion}}
请只输出一个类型,不要输出解释。
为了减少模型输出不稳定,建议在节点输出后增加格式限制,例如只允许枚举值。若 FastGPT 支持结构化输出,也可以配置为 JSON:
{
"intent": "order_query"
}
九、步骤四:配置条件分支节点
条件分支节点根据意图识别结果,将流程分到不同路径。
规则可以这样设置:
| 条件 | 流向 |
|---|---|
intent == product_consulting |
产品知识库检索 |
intent == order_query |
订单号提取与接口调用 |
intent == after_sales |
售后知识库检索 |
intent == unclear |
追问补充信息 |
| 其他 | 通用回复 |
这样可以避免所有问题都进入同一个处理逻辑,提高回答准确性。
十、步骤五:配置知识库检索节点
对于产品咨询和售后政策类问题,可以分别连接不同知识库。
产品知识库节点
输入:
{{userQuestion}}
检索范围:
- 产品说明;
- 参数规格;
- 使用教程;
- 常见问题;
- 价格说明。
建议配置:
| 配置项 | 建议值 |
|---|---|
| topK | 5 |
| similarity | 0.65 |
| rerank | 开启 |
| 引用来源 | 开启 |
| 空结果处理 | 返回未检索到 |
售后知识库节点
输入:
{{userQuestion}}
检索范围:
- 退换货政策;
- 保修说明;
- 维修流程;
- 退款规则;
- 售后联系方式。
如果知识库没有检索到有效内容,不建议让模型凭空回答,而应该输出类似:
暂时没有查询到明确政策,建议联系人工客服确认。
十一、步骤六:配置订单号提取节点
订单查询类问题通常需要订单号。如果用户没有提供订单号,应该先追问,而不是直接调用接口。
可以使用一个 AI 节点提取订单号:
请从用户问题中提取订单号。
用户问题:
{{userQuestion}}
要求:
1. 如果存在订单号,输出 JSON:{"hasOrderId": true, "orderId": "订单号"}
2. 如果不存在订单号,输出 JSON:{"hasOrderId": false, "orderId": ""}
3. 不要输出其他内容。
示例输出:
{
"hasOrderId": true,
"orderId": "A20250101001"
}
然后增加条件判断:
- 如果
hasOrderId == true,调用订单接口; - 如果
hasOrderId == false,返回追问内容。
追问示例:
为了帮你查询订单状态,请提供订单号,例如 A20250101001。
十二、步骤七:配置 HTTP 请求节点
当成功提取订单号后,就可以调用外部订单系统接口。
HTTP 节点配置示例:
method: GET
url: https://api.example.com/orders/{{orderId}}
headers:
Authorization: Bearer {{ORDER_API_TOKEN}}
Content-Type: application/json
timeout: 10000
返回数据示例:
{
"orderId": "A20250101001",
"status": "已发货",
"product": "智能耳机 Pro",
"trackingNo": "SF1234567890",
"deliveryCompany": "顺丰速运",
"estimatedDelivery": "2025-01-03"
}
接口调用需要注意三点:
-
不要把密钥写死在提示词里
建议使用环境变量或平台密钥管理能力,例如ORDER_API_TOKEN。 -
处理接口异常
如果接口超时、返回 404 或订单不存在,需要给用户明确提示。 -
不要暴露原始敏感数据
返回给用户时,只输出必要信息,例如订单状态、物流公司和预计送达时间。
十三、步骤八:配置最终回复生成节点
最终回复节点负责整合知识库内容、接口返回数据和用户问题,生成自然、准确、礼貌的回答。
提示词示例:
你是一个专业、友好、严谨的智能客服助手。
请根据以下信息回答用户问题:
用户问题:
{{userQuestion}}
意图类型:
{{intent}}
知识库检索结果:
{{knowledgeResult}}
订单接口结果:
{{orderResult}}
回复要求:
1. 优先依据知识库或接口结果回答;
2. 如果没有可靠信息,不要编造;
3. 语气自然、简洁、有帮助;
4. 如果需要用户补充信息,请明确说明需要补充什么;
5. 涉及订单、物流、退款等信息时,只输出必要字段;
6. 最后可以给出下一步建议。
请直接输出给用户的回复。
如果用户询问订单状态,最终回复可以是:
已帮你查询到订单 A20250101001:商品为“智能耳机 Pro”,当前状态是“已发货”,物流公司为顺丰速运,快递单号为 SF1234567890,预计 2025-01-03 送达。你可以通过顺丰官方渠道查询最新物流进度。
如果知识库没有命中,可以回复:
当前知识库中没有查询到与该问题完全匹配的信息。为了避免误导你,建议联系人工客服进一步确认。你也可以补充产品型号或具体使用场景,我可以继续帮你查找相关说明。
十四、参考工作流配置文件
下面是一份简化版配置文件,用于帮助你理解整体结构。不同版本 FastGPT 的导入格式可能有所差异,实际使用时需要根据平台导入规范调整字段名称。
name: fastgpt-customer-service-workflow
description: 智能客服工作流,支持产品咨询、订单查询、售后政策问答
version: 1.0.0
variables:
userQuestion:
type: string
required: true
description: 用户输入的问题
userId:
type: string
required: false
description: 用户 ID
sessionId:
type: string
required: false
description: 会话 ID
channel:
type: string
required: false
description: 来源渠道
secrets:
ORDER_API_TOKEN:
description: 订单系统 API Token
nodes:
- id: input
type: input
name: 用户输入
outputs:
- userQuestion
- userId
- sessionId
- channel
- id: intent_classification
type: llm
name: 意图识别
model: qwen-plus
temperature: 0
input:
prompt: |
你是一个客服意图分类器。请根据用户问题判断其意图类型。
可选类型:
product_consulting:产品功能、价格、规格、使用方法等产品咨询
order_query:订单状态、物流、发货、退款进度等订单相关问题
after_sales:退换货政策、保修、维修、售后流程等问题
unclear:用户问题缺少必要信息,无法判断
other:不属于以上类型的问题
用户问题:
{{userQuestion}}
请只输出一个类型,不要输出解释。
outputs:
- intent
- id: route_by_intent
type: condition
name: 根据意图分流
conditions:
- expression: intent == "product_consulting"
target: product_knowledge_search
- expression: intent == "order_query"
target: extract_order_id
- expression: intent == "after_sales"
target: after_sales_knowledge_search
- expression: intent == "unclear"
target: ask_for_more_info
- expression: default
target: general_reply
- id: product_knowledge_search
type: dataset_search
name: 产品知识库检索
datasetId: product_knowledge_base
query: "{{userQuestion}}"
topK: 5
similarity: 0.65
rerank: true
outputs:
- knowledgeResult
next: final_reply
- id: after_sales_knowledge_search
type: dataset_search
name: 售后知识库检索
datasetId: after_sales_knowledge_base
query: "{{userQuestion}}"
topK: 5
similarity: 0.65
rerank: true
outputs:
- knowledgeResult
next: final_reply
- id: extract_order_id
type: llm
name: 提取订单号
model: qwen-plus
temperature: 0
input:
prompt: |
请从用户问题中提取订单号。
用户问题:
{{userQuestion}}
要求:
1. 如果存在订单号,输出 JSON:{"hasOrderId": true, "orderId": "订单号"}
2. 如果不存在订单号,输出 JSON:{"hasOrderId": false, "orderId": ""}
3. 不要输出其他内容。
outputs:
- hasOrderId
- orderId
next: check_order_id
- id: check_order_id
type: condition
name: 判断是否存在订单号
conditions:
- expression: hasOrderId == true
target: order_api_request
- expression: default
target: ask_order_id
- id: order_api_request
type: http
name: 查询订单接口
method: GET
url: https://api.example.com/orders/{{orderId}}
headers:
Authorization: Bearer {{ORDER_API_TOKEN}}
Content-Type: application/json
timeout: 10000
outputs:
- orderResult
next: final_reply
- id: ask_order_id
type: reply
name: 追问订单号
content: 为了帮你查询订单状态,请提供订单号,例如 A20250101001。
- id: ask_for_more_info
type: reply
name: 追问补充信息
content: 我还需要更多信息才能准确判断你的问题。请补充产品名称、订单号或你遇到的具体情况。
- id: general_reply
type: llm
name: 通用回复
model: qwen-plus
temperature: 0.4
input:
prompt: |
你是一个友好的智能客服助手。
用户问题:{{userQuestion}}
如果问题不属于产品、订单或售后范围,请礼貌说明你能处理的范围,并引导用户补充信息。
outputs:
- answer
next: output
- id: final_reply
type: llm
name: 最终回复生成
model: qwen-plus
temperature: 0.3
input:
prompt: |
你是一个专业、友好、严谨的智能客服助手。
请根据以下信息回答用户问题:
用户问题:
{{userQuestion}}
意图类型:
{{intent}}
知识库检索结果:
{{knowledgeResult}}
订单接口结果:
{{orderResult}}
回复要求:
1. 优先依据知识库或接口结果回答;
2. 如果没有可靠信息,不要编造;
3. 语气自然、简洁、有帮助;
4. 如果需要用户补充信息,请明确说明需要补充什么;
5. 涉及订单、物流、退款等信息时,只输出必要字段;
6. 最后可以给出下一步建议。
outputs:
- answer
next: output
- id: output
type: output
name: 输出结果
input:
answer: "{{answer}}"
十五、提示词优化建议
工作流搭好之后,效果好不好,很大程度上取决于提示词和数据质量。下面是几个实用建议。
1. 分类节点要低温度
意图识别、订单号提取、JSON 格式化这类节点不需要创造性,应将 temperature 设置为 0 或接近 0,减少随机性。
2. 输出格式要明确
不要只写“帮我判断用户意图”,而要明确告诉模型:
- 可选类型有哪些;
- 每种类型是什么意思;
- 只允许输出什么;
- 不要输出解释;
- 如果不确定应该输出什么。
3. 最终回复要限制幻觉
最终回复节点要明确要求:
如果没有可靠信息,不要编造。
尤其是涉及价格、物流、政策、合同、法律、医疗、金融等场景时,更要避免模型自行推测。
4. 给模型提供角色和边界
例如客服场景中,可以写:
你只能基于知识库和接口结果回答,不得承诺退款、赔偿或特殊售后政策。
这样可以降低业务风险。
十六、常见问题与排查方法
1. 知识库检索不到内容
可能原因包括:
- 文档切分不合理;
- 用户问题和知识库表达差异太大;
- 相似度阈值过高;
- topK 设置过小;
- 知识库内容本身不完整。
解决方法:
- 优化文档标题和段落结构;
- 增加 FAQ 问法;
- 适当降低相似度阈值;
- 开启 rerank;
- 补充高频问题样本。
2. 意图识别不稳定
可能原因:
- 提示词不够明确;
- 分类标签过多;
- 类型之间边界重叠;
- 模型温度过高。
解决方法:
- 减少分类数量;
- 给每个分类写清楚定义;
- 添加典型示例;
- 设置低温度;
- 使用结构化输出。
3. HTTP 接口调用失败
可能原因:
- URL 错误;
- Token 无效;
- 请求头缺失;
- 接口超时;
- 参数格式不正确;
- 内网服务无法被 FastGPT 访问。
解决方法:
- 先用 Postman 或 curl 测试接口;
- 检查 FastGPT 服务网络环境;
- 使用环境变量管理密钥;
- 增加错误分支;
- 对接口返回做字段映射。
4. 模型回答太啰嗦
可以在最终回复提示词中加入:
回复控制在 150 字以内,优先直接回答用户问题,不要重复用户问题。
如果是客服场景,建议默认简洁;如果是教程、方案、报告类场景,再允许更长输出。
十七、上线前检查清单
在正式上线前,建议逐项检查:
- [ ] 是否明确了工作流的业务边界;
- [ ] 是否配置了输入变量;
- [ ] 是否完成意图识别节点;
- [ ] 是否设置了条件分支;
- [ ] 是否连接了正确的知识库;
- [ ] 是否处理知识库无结果情况;
- [ ] 是否配置 HTTP 接口超时;
- [ ] 是否隐藏 API Token;
- [ ] 是否处理订单号缺失场景;
- [ ] 是否限制模型不得编造;
- [ ] 是否测试了常见问题样本;
- [ ] 是否测试了异常输入;
- [ ] 是否检查了最终回复语气;
- [ ] 是否准备人工兜底方案。
十八、推荐测试用例
可以准备一组典型问题测试工作流:
| 测试类型 | 用户问题 | 预期结果 |
|---|---|---|
| 产品咨询 | 这款智能耳机支持降噪吗? | 查询产品知识库并回答 |
| 订单查询 | 我的订单 A20250101001 发货了吗? | 提取订单号并调用订单接口 |
| 缺少订单号 | 帮我查一下订单状态 | 追问订单号 |
| 售后政策 | 收到商品后 7 天内可以退货吗? | 查询售后知识库 |
| 问题不明确 | 我这个怎么办? | 追问补充信息 |
| 超出范围 | 你能帮我写一份合同吗? | 礼貌说明能力范围 |
| 接口异常 | 查询不存在订单号 | 提示未找到订单或建议人工处理 |
测试时不要只看模型是否“能回答”,还要看它是否走对了流程。工作流的核心价值在于流程可控,因此每个节点的输入输出都要检查。
十九、进阶优化方向
当基础工作流稳定后,可以继续做以下优化。
1. 增加会话记忆
如果用户前面已经提供过订单号,后续又问“现在到哪了”,系统应该能从上下文中获取订单号,而不是重复追问。
2. 增加人工转接
当出现投诉、负面情绪、接口异常、连续多次无法回答时,可以自动转人工。
触发条件示例:
- 用户连续两次表示“不满意”;
- 用户出现“投诉”“举报”“赔偿”等关键词;
- 知识库连续无命中;
- 订单接口多次失败。
3. 写入日志系统
可以将每次对话的关键信息写入日志,便于后续分析:
- 用户问题;
- 意图类型;
- 命中的知识库内容;
- 接口调用结果;
- 最终回答;
- 用户满意度。
4. 接入企业微信或飞书
FastGPT 工作流可以作为后端能力,通过 API 接入企业微信、飞书、钉钉、公众号、小程序或官网客服系统。
5. 加入质检节点
对于高风险业务,可以在最终回复前增加一个“质检节点”,检查回答是否包含不合规承诺、是否编造信息、是否暴露敏感字段。
质检提示词示例:
请检查以下客服回复是否存在风险:
回复内容:
{{answer}}
检查标准:
1. 是否承诺了未确认的退款或赔偿;
2. 是否编造订单、物流或政策信息;
3. 是否泄露用户隐私;
4. 是否语气不礼貌;
5. 是否与知识库或接口结果矛盾。
如果无风险,输出 pass。
如果有风险,输出 revise,并说明需要修改的问题。
二十、总结
FastGPT 工作流的核心价值,不只是“让 AI 回答问题”,而是把 AI 放进真实业务流程中,让它与知识库、接口、规则、变量和系统数据协同工作。
对于企业应用而言,一个稳定的 AI 工作流通常具备以下特征:
- 有明确的业务边界;
- 有清晰的输入和输出;
- 有可靠的意图识别;
- 有合理的条件分支;
- 有高质量知识库;
- 有真实数据接口;
- 有异常兜底逻辑;
- 有安全和合规限制;
- 有持续测试和优化机制。
如果你是第一次使用 FastGPT 工作流,建议先从一个简单场景开始,例如“产品 FAQ 自动问答”或“订单状态查询”。等流程稳定后,再逐步增加更多分支、更多接口和更复杂的业务逻辑。
只要设计得当,FastGPT 不仅可以成为一个智能问答机器人,还可以成为企业内部的自动化流程助手,帮助团队降低重复沟通成本,提高响应效率,并把 AI 真正嵌入日常业务。
標籤:
- FastGPT
- 工作流
- 智能客服
- 自动化