一、为什么要用工作流
单 Bot 的天花板
你做了一个客服 Bot,用户问:"我下了订单 3 天了还没发货,怎么办?"
理想流程应该是:
- 调用「订单查询」插件,输入用户 ID 和订单号。
- 看返回结果:是真的没发货?还是已经发货但没更新物流?
- 如果真没发货 → 调用「催单系统」自动催商家。
- 如果已发货 → 调用「物流查询」插件返回最新轨迹。
- 最后给用户写一段安抚 + 解决方案的回复。
这 5 步用单 Bot 提示词非常难稳定实现——你写了规则,模型照着执行 9 次 OK,第 10 次就跑偏。
工作流的核心思想是:
把"复杂任务"拆成"显式的步骤图",每一步都有明确的输入、处理、输出,模型只在你允许它"思考"的节点上思考。
可控、可调试、可复用。这就是工作流的价值。
二、工作流和 Bot 的关系
| 维度 | 单 Bot | 工作流 |
|---|---|---|
| 形态 | 一段提示词 + 模型 + 技能 | 一张可视化"流程图" |
| 节点数 | 1 个隐式节点 | 2-30 个显式节点 |
| 控制力 | 弱(靠模型自由发挥) | 强(你定流程) |
| 调试 | 黑盒(看最终输出) | 白盒(每个节点单独看输出) |
| 适合 | 闲聊、Q&A、简单任务 | 报表、自动化、多步骤决策 |
| 调用方式 | 直接对话 | 在 Bot 里挂载 / API 调用 / 触发器 |
黄金搭档:复杂的任务用"工作流"实现,再把工作流挂在 Bot 的"技能"里。Bot 负责自然对话和路由,工作流负责干活。
三、Coze 工作流的全部节点(一图读懂)
┌──────────────────────── 控制类 ─────────────────────────┐
│ 开始节点 / 结束节点 / 条件节点(选择器)/ 循环节点 │
│ Loop / 意图识别节点(最常用) │
└────────────────────────────────────────────────────────┘
┌──────────────────────── AI 类 ────────────────────────┐
│ 大模型节点(LLM)/ 知识库节点 / 文生图节点 │
│ 问答节点(带"等用户输入"功能) │
└────────────────────────────────────────────────────────┘
┌──────────────────────── 工具类 ────────────────────────┐
│ 插件节点 / 工作流节点(嵌套调用)/ 代码节点(写 JS/Python)│
│ HTTP 请求节点(调任意 API) │
└────────────────────────────────────────────────────────┘
┌──────────────────────── 数据类 ────────────────────────┐
│ 变量节点 / 数据库节点 / 文件读取节点 │
│ 消息节点(中间态发消息给用户) │
└────────────────────────────────────────────────────────┘
新手记住下面这 6 个最常用的就够了:
- 开始节点:定义工作流的入参。
- 结束节点:定义工作流的出参。
- 大模型节点(LLM):让 AI 处理一段文本。
- 插件节点:调用插件。
- 选择器节点:条件判断("如果 A 走分支 1,否则走分支 2")。
- 代码节点:写几行 JavaScript / Python 处理数据。
四、动手做:第一个工作流(5 分钟)
我们做最简单的一个:"输入一个城市名,输出今天的天气 + 穿衣建议"。
第 1 步:创建工作流
- 左侧「资源库」→「工作流」→「+ 创建工作流」。
- 名称:
今日天气与穿衣建议 - 描述:
输入城市名,返回今天的天气情况和穿衣建议 - 点 「创建」。
第 2 步:理解画布
进去之后你会看到一个可视化画布:
[开始] [结束]
│ ▲
└───────── 这之间你要拖节点 ───────────┘
左侧栏是节点工具箱,把节点拖到画布上、连线,就完事。
第 3 步:配置开始节点
点击「开始节点」,在右侧面板:
- 添加输入参数
city,类型String,描述城市名,例如"北京"。
第 4 步:拖一个"插件节点",调用天气插件
- 从左侧拖一个「插件」节点到画布。
- 在节点上点"选择插件",搜「天气」,选官方天气插件,挑一个工具如
getWeather。 - 配置参数映射:
city← 引用开始节点.city
第 5 步:拖一个"大模型节点",生成穿衣建议
- 拖一个「大模型」节点到画布,连在天气节点后面。
- 选模型:豆包 1.5 Pro。
- 提示词:
你是一个生活助理。根据下面的天气数据,给出当天的穿衣建议。
天气数据:
{{plugin_output.weather_info}}
输出格式:
- 【今日天气】温度 / 状况 / 风力
- 【穿衣指数】指数 + 一句话解释
- 【推荐穿搭】3 套搭配建议(上装 + 下装 + 鞋子)
- 【出门提醒】1 句话(带伞?防晒?口罩?)
参数映射:
plugin_output← 引用上一步天气节点的输出(具体字段名按你看到的为准)
第 6 步:配置结束节点
- 输出参数
result← 引用大模型节点的输出。
第 7 步:试运行
- 点画布右上角「试运行」。
- 输入
city = 北京。 - 等待几秒,应该能看到完整输出。
第 8 步:发布
- 点画布右上角「发布」。
- 在你的某个 Bot 编辑页 → 「技能」→ 「工作流」→ 「+ 添加」→ 选这个工作流。
- 现在用户在 Bot 里说"北京天气",Bot 就会自动调这个工作流。
🎉 你做出了第一个工作流。
五、3 个完整工作流实战(含完整提示词)
实战 1:自动公众号选题机
场景:每天早上自动给你 5 个高质量选题(带数据 + 大纲 + 标题)。
节点图:
[开始: 行业关键词]
│
▼
[插件: 头条搜索] ← 拉本日 Top 30 文章
│
▼
[插件: 知乎热榜] ← 拉本日 Top 50 问题
│
▼
[大模型 - 选题分析]
提示词:分析两路输入,挑出 5 个"既有热度又有创作空间"的话题。
每个话题给:
- 选题角度
- 受众痛点
- 3 个候选标题
- 一段 200 字大纲
│
▼
[结束: 5 个选题]
关键节点提示词:
# 大模型节点提示词
你是一名资深公众号主编,专门帮 {{ industry }} 行业的小编选题。
# 输入数据
[头条搜索结果] {{ toutiao_results }}
[知乎热榜] {{ zhihu_results }}
# 任务
1. 整合两路数据,识别本日热点。
2. 挑出 5 个最适合做公众号的选题,标准:
- 有热度(至少 2 个数据源同时出现 / 单源高热度)
- 有创作空间(不是纯新闻播报,能延展观点)
- 跟 {{ industry }} 行业相关
3. 每个选题给:
- 选题角度(1 句话)
- 受众痛点(1-2 句)
- 3 个候选标题(标题党 / 干货 / 反差风各一)
- 200 字大纲(按"开篇钩子 - 核心论点 3 条 - 收尾呼吁"结构)
# 输出格式
Markdown,每个选题用二级标题分隔。
效果:每天起床,运行一下这个工作流(或绑定定时任务),5 个选题端到桌前。
实战 2:Excel 数据分析 + 周报生成
场景:上传一份本周销售 Excel,自动生成"成绩 + 问题 + 下周计划"周报。
节点图:
[开始: 上传 Excel 文件]
│
▼
[插件: Excel 读取]
│
▼
[代码节点: 数据清洗]
- 去掉空行
- 转换日期格式
- 计算环比 / 同比
│
▼
[插件: chart-render]
- 生成趋势图(折线)
- 生成 Top 5 客户柱状图
│
▼
[大模型: 写周报]
提示词:基于数据 + 图表,写一份 600 字周报
│
▼
[结束: Markdown 周报 + 图表 URL]
关键节点:代码节点(JavaScript)
async function main({ params }) {
const rows = params.excel_data;
const cleanedRows = rows.filter(r => r.amount > 0);
const totalAmount = cleanedRows.reduce((s, r) => s + r.amount, 0);
const avgAmount = (totalAmount / cleanedRows.length).toFixed(2);
const customerMap = {};
cleanedRows.forEach(r => {
customerMap[r.customer] = (customerMap[r.customer] || 0) + r.amount;
});
const top5 = Object.entries(customerMap)
.sort((a, b) => b[1] - a[1])
.slice(0, 5);
return {
total: totalAmount,
average: avgAmount,
top5_customers: top5,
raw_count: cleanedRows.length,
};
}
注意:Coze 的代码节点支持 JS / Python,你不写也能做——直接让大模型节点处理,只是统计精度不如代码节点。
关键节点:大模型周报提示词
你是 {{ team_name }} 的销售运营经理,根据下方数据写一份本周的销售周报。
# 数据
- 本周总成交额:{{ total }}
- 平均单笔金额:{{ average }}
- 订单数量:{{ raw_count }}
- Top 5 客户:{{ top5_customers }}
# 文档结构(必须遵守)
## 一、本周成绩
(用数据说话,不要堆形容词)
## 二、关键洞察
(3 条,每条 50 字以内)
## 三、问题与风险
(2-3 条)
## 四、下周计划
(3-5 个具体可行的行动项)
# 风格
简洁、客观、第一人称("我们")、避免"显著"、"大幅"等模糊词。
效果:原本 2 小时的周报,3 分钟搞定。
实战 3:智能客服分拣 + 自动回复(多分支)
场景:客户消息进来,按"投诉 / 咨询 / 退款 / 物流 / 闲聊"分类,每类走不同的回复流程。
节点图:
[开始: 客户消息]
│
▼
[大模型: 意图分类]
输出 JSON:{ "category": "退款" / "投诉" / "咨询" / "物流" / "闲聊" }
│
▼
[选择器节点 - 5 路分支]
│
┌────┴────┬─────┬────┬────┐
▼ ▼ ▼ ▼ ▼
[退款流程] [投诉] [咨询] [物流] [闲聊]
│ │ │ │ │
▼ ▼ ▼ ▼ ▼
[查订单+退] [转人工] [查FAQ] [查物流] [简短回复]
│ │ │ │ │
└────┬────┴─────┴────┴────┘
▼
[结束: 统一格式回复]
关键节点:意图分类提示词
# 角色
你是客服意图分类专家。
# 任务
将用户消息分类到下列 5 类之一:
| 类别 | 触发词 / 模式 |
| --- | --- |
| 退款 | 退货、退款、不要了、想退 |
| 投诉 | 差评、投诉、骗子、坑、举报 |
| 咨询 | 怎么用、什么是、问下、请问 |
| 物流 | 几天到、发货、物流、快递、单号 |
| 闲聊 | 你好、谢谢、你叫什么、晚安 |
# 输出格式
严格输出以下 JSON,无任何解释:
{
"category": "退款" | "投诉" | "咨询" | "物流" | "闲聊",
"confidence": 0.0-1.0,
"raw_message": "原文"
}
关键节点:选择器
- 分支 1:
category == "退款"→ 走"退款流程"子工作流。 - 分支 2:
category == "投诉"→ 走"转人工"流程。 - ……
效果:300 条消息分拣,从"人肉看 1 小时"变成"AI 处理 3 分钟 + 人工只看高优先级"。
六、工作流的 5 个高阶技巧
技巧 1:嵌套调用(工作流套工作流)
复杂场景下,把"退款流程"做成单独的子工作流,主流程通过「工作流节点」调用它。
好处:
- 主流程更清晰。
- 子流程可复用(多个 Bot 都能用同一个"退款流程")。
技巧 2:循环节点(批量处理)
要处理 100 个客户消息?用 「循环节点」。
开始 → 循环开始
│
├─ 处理单个消息(LLM 节点)
│
循环结束 → 汇总结果 → 结束
技巧 3:消息节点(中间反馈)
工作流跑得慢?用 **「消息节点」**给用户实时反馈:
- "正在查询订单..."
- "正在联系商家..."
- "正在为您生成方案..."
用户体验立刻好 10 倍。
技巧 4:变量持久化(数据库节点)
如果你想"记住"用户的偏好(比如"小红喜欢甜口、不能吃辣"),用 **「数据库节点」**保存。
下次用户来,先读数据库,再走流程。
技巧 5:失败兜底(try-catch 模式)
每个工具节点都要考虑"失败怎么办":
- 插件挂了?回到"凭脑补回答"模式。
- 知识库没找到?返回"我没找到,建议联系人工"。
- API 超时?记录日志 + 返回兜底答案。
永远不要让用户看到"白屏"或"系统错误"。
七、调试工作流的 5 个技巧
技巧 1:每个节点单独"试运行"
不要一次跑完整流程。先单独测每个节点,确认输入输出对了,再连起来。
技巧 2:查看"每个节点的实际输出"
试运行完成后,画布上每个节点会显示"本次的输入和输出"。这是最强的调试工具。
技巧 3:先用最简单的输入测试
不要一上来就用复杂数据。先用 1 条最简单的输入跑通,再扩展。
技巧 4:版本管理
每个工作流都有"版本历史",每次发布会留一个快照。改坏了能回滚。
技巧 5:日志埋点
在关键节点加 「消息节点」 输出中间变量,方便看流程跑到哪、为啥跑歪。
八、本章一图回顾
工作流 = 把"复杂任务"拆成"可视化步骤图"
6 个最常用节点:
开始 / 结束 / 大模型 / 插件 / 选择器 / 代码
3 个完整实战:
1. 公众号选题机(搜索 + LLM)
2. Excel 周报生成(读取 + 代码 + 出图 + LLM)
3. 客服智能分拣(分类 + 选择器 + 多分支)
5 个高阶技巧:
嵌套 / 循环 / 中间反馈 / 数据库 / 失败兜底
5 个调试技巧:
单节点试运行 / 看每节点输出 / 简单输入起步 / 版本管理 / 埋日志
九、避坑清单
- ❌ 别一开始就搭"20 节点流程"——从 3-5 节点开始。
- ❌ 别忘了"试运行"。每个节点单独测一下,比连起来排错快 10 倍。
- ❌ 别让"大模型节点"做太多事。一个节点一个职责,输出 JSON 用专门的"分类节点",写文案用专门的"创作节点"。
- ❌ 别忘了失败兜底。每个外部调用都要假设它会挂。
- ❌ 别忘了用版本管理。重大改动前先备份。
十、下一步
工作流让单 Bot 能跑复杂任务。但当任务复杂到一个流程都装不下时,你需要的是 多 Agent 协作——让多个 Bot 像"AI 团队"一样分工合作。