一、问题背景:为什么你需要扣子工作流?

搞AI应用的开发者,大概率都经历过这种场景——

你让大模型"帮我写篇文章",它一会儿输出格式不对,一会儿漏掉关键信息,偶尔还给你来段废话。纯靠Prompt和AI聊天,结果不可控,稳定性差。

传统解决方案?写代码调API。问题是:你得搭环境、写逻辑、处理异常,一个简单的文本处理流程写下来动辄几百行代码。

扣子工作流(Coze Workflow) 把这件事变了:拖拽节点、连线、配置参数,不需要写代码就能搭出稳定的自动化流程。

本文会带你从零搭建一个"AI内容生成"工作流,只用5个核心节点,跑通从输入到输出的完整链路。

二、核心原理:工作流到底在干什么?

把工作流想象成一条流水线,每个节点就是流水线上的一个工位:

表格

节点类型 类比 干什么
开始节点 接单台 接收你的输入数据
大模型节点 脑力工 生成文本、分析语义、提取关键信息
插件节点 外协工 联网搜索、图片生成等AI做不到的事
代码节点 精加工 数学计算、字符串处理、格式转换
结束节点 出货口 把结果交给你

数据从"开始节点"进来,沿着连线流过每个工位,每个工位处理后往下传,最后从"结束节点"输出。

关键点: 节点之间的数据传递靠的是"变量引用"。上游节点的输出,用 {{节点名.输出字段}} 的方式传给下游。连线是路径,变量是货物。

三、实战步骤:5个节点搭出内容生成工作流

3.1 创建工作流

登录 coze.cn,进入工作空间 → 资源库 → 右上角点"+" → 选择"工作流"。

填写名称(只支持字母数字下划线,比如 content_generator)和描述,确认创建。

进入画布后,默认已有"开始"和"结束"两个节点。

3.2 配置开始节点——定义输入参数

点击开始节点,添加2个输入变量:

表格

变量名 类型 必填 说明
topic String 文章主题
style String 写作风格,默认"技术博客"

小技巧: 必填变量尽量设默认值,避免运行时遗漏导致报错。

3.3 配置大模型节点——核心内容生成

点击画布上的"+"号,选择"大模型"节点,把它连到开始节点后面。

模型选择: 推荐用豆包Pro,性价比高,处理中文任务够用。

系统提示词(决定输出质量的灵魂):

你是一个专业的内容创作助手。根据用户提供的主题和风格,生成结构化的文章内容。

要求:
1. 输出必须是JSON格式
2. 包含三个字段:title(标题)、outline(大纲,数组)、content(正文)
3. 标题不超过25字,包含核心关键词
4. 大纲3-5个要点
5. 正文800-1200字

用户提示词:

主题:{{start.topic}}
风格:{{start.style}}

请按照系统要求生成内容。

输出格式: 选择 JSON,方便下游节点解析。

3.4 配置代码节点——格式化输出

大模型返回的是JSON,但实际使用时往往需要Markdown格式。加一个代码节点做转换。

点击"+"号,选择"代码"节点,连到大模型节点后面。

运行时选 Python,代码如下:

import json

async def main(args: Args) -> Output:
    # 从大模型节点获取输出
    llm_output = args.params['llm_result']
    
    # 解析JSON(兼容大模型可能返回的非标准JSON)
    try:
        data = json.loads(llm_output)
    except json.JSONDecodeError:
        # 尝试提取JSON部分
        import re
        json_match = re.search(r'\{.*\}', llm_output, re.DOTALL)
        if json_match:
            data = json.loads(json_match.group())
        else:
            return {"result": llm_output}
    
    # 拼接为Markdown格式
    md = f"# {data.get('title', '无标题')}\n\n"
    md += "## 大纲\n\n"
    for i, item in enumerate(data.get('outline', []), 1):
        md += f"{i}. {item}\n"
    md += f"\n## 正文\n\n{data.get('content', '')}"
    
    return {"result": md}

为什么加这步? 大模型输出不稳定,JSON解析经常翻车。代码节点做一层容错处理,比直接让大模型输出Markdown靠谱得多。

3.5 配置结束节点——输出结果

把代码节点的 result 变量连到结束节点的输出。

结束节点有两种模式:

  • 返回变量: 直接输出原始数据,适合给其他工作流调用
  • 返回文本: 按模板拼接输出,适合直接展示给用户

这里选"返回文本",配置为:{{code.result}}

3.6 试运行与调试

点击右上角"试运行",输入测试数据:

topic: "Python异步编程入门"
style: "技术博客"

调试三原则:

  1. 逐节点调试:别等全连完再测,每连好一个节点就单独跑一次
  2. 看输出格式:大模型节点重点检查JSON是否可解析
  3. 查变量传递:点开节点看"输入输出",确认数据是否正确流转

四、进阶:从5个节点到生产级工作流

上面的5个节点是骨架,实际项目中你可能需要这些增强:

表格

增强方向 怎么做 解决什么问题
联网搜索 在大模型前加"插件"节点,搜索实时素材 大模型知识截止日期限制
条件分支 加"选择器"节点,判断主题类型走不同路径 不同主题需要不同处理逻辑
批量处理 大模型节点开启"批处理"模式 一次生成多篇文章
错误处理 节点勾选"忽略异常"+设默认输出 某个节点挂掉不阻塞整体流程
子流程封装 把通用逻辑抽成独立工作流,用"工作流"节点调用 复杂流程拆解,方便维护

实战建议: 先跑通基础流程,再逐步加节点。一上来就搭复杂流程,调试起来会崩溃的。

五、常见问题排查

Q1:大模型节点输出格式不稳定怎么办?

两个办法:一是系统提示词里反复强调"只输出JSON,不要有任何其他文字";二是像我上面那样,在代码节点做容错解析。

Q2:变量引用时报错"未找到变量"?

检查连线。没连线的节点之间无法传递数据。另外确认引用写法是 {{上游节点名.输出字段名}},区分大小写。

Q3:试运行成功但发布后Bot不调用工作流?

两件事:一是Bot页面要把工作流添加为技能;二是Bot的人设与回复逻辑里要写明调用规则,比如"当用户要求生成文章时,调用content_generator工作流"。

Q4:代码节点超时了?

代码节点有执行时间限制(通常10秒)。如果处理逻辑复杂,考虑拆成多个代码节点,或者把计算逻辑移到大模型节点里用Prompt实现。

Q5:工作流更新后Bot没生效?

工作流发布新版本后,引用它的Bot需要重新发布才会用上新版本。这是个很容易踩的坑。

总结

扣子工作流的核心思路就一句话:把不确定的AI对话,变成确定性的数据流水线。

5个节点(开始→大模型→代码→结束+调试)能覆盖大部分内容生成场景。后续需要联网搜索、条件分支、批量处理,在这个骨架上加节点就行。

关键记住三点:

  1. 逐节点调试,别攒到最后一起测
  2. 大模型输出做容错,别信任它的格式
  3. 先简单后复杂,跑通再加节点

有问题欢迎评论区交流,下篇我会拆解"带条件分支的智能客服工作流",关注不错过。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐