当前位置: 首页 > news >正文

第6章:工作流 (Workflow):编排复杂的业务逻辑 - 教程


6.1 工作流的可视化编排界面

内容讲解

如果说提示词定义了 Bot 的“性格”,插件和知识库扩展了它的“能力”,那么工作流(Workflow)则赋予了 Bot 一个“严谨的思维逻辑”。工作流是 Coze 中用于处理复杂、多步骤、有明确逻辑顺序的任务的核心工具。

与完全依赖大模型“自由发挥”的提示词不同,工作流通过一个可视化的拖拽界面,让你能够像画流程图一样,精确地定义每一步操作。这为 Bot 的行为提供了极高的稳定性可控性

何时使用工作流?

  • 当任务需要多个步骤才能完成时(例如:先搜索信息,再处理数据,最后生成报告)。
  • 当任务包含条件判断逻辑时(例如:如果用户是VIP,则执行A流程;否则执行B流程)。
  • 当你需要对大模型的输出进行格式化或结构化处理时。
  • 当你需要稳定、可复现的结果时。

界面导览

  • 画布 (Canvas):中心区域,你将在这里拖拽和连接节点来构建你的流程。
  • 节点面板 (Node Panel):左侧面板,包含了所有可用的节点类型,如大模型、代码、判断等。
  • 配置面板 (Configuration Panel):右侧面板,当你选中一个节点时,这里会显示该节点的详细配置选项。
  • 开始/结束节点:每个工作流都有一个唯一的“开始”节点和一个或多个“结束”节点,代表流程的起点和终点。

6.2 基础节点详解

内容讲解

工作流是由一个个“节点”连接而成的。每个节点代表一个特定的操作。让我们来了解几个最基础、最核心的节点。


6.3 在 Bot 中触发工作流

内容讲解

创建好工作流后,你需要告诉 Bot 在什么情况下应该去“运行”这个工作流。触发工作流的方式非常简单,本质上是把它当作一个“超级插件”来使用。

操作步骤

  1. 创建工作流

    • 在 Coze 工作台左侧导航栏,点击“工作流”,然后“创建工作流”。
    • 让我们创建一个简单的“头条新闻播报”工作流:
      • Start 节点:不需要输入。
      • LLM 节点:提示词写 “总结今天最重要的三条国内新闻头条。”
      • End 节点:将 LLM 节点的输出作为工作流的输出。
    • 保存工作流,命名为 daily_news_workflow
  2. 在 Bot 中添加工作流

    • 进入你的 Bot 编辑页面。
    • 在左侧技能编排区,像添加插件一样,点击“工作流”旁边的“+”号,选择你刚刚创建的 daily_news_workflow
  3. 修改提示词以触发工作流

    • 在“人设与回复逻辑”中,明确指示 Bot 何时使用该工作流。
      # 技能
      - 当用户询问“今天有什么新闻”或类似问题时,你必须调用【daily_news_workflow】工作流来获取新闻内容,并播报给用户。
  4. 调试测试

    • 在预览窗口输入 今天有什么新闻?
    • 在“调试信息”中,你会看到 Bot 准确地调用了 daily_news_workflow,并将工作流的执行结果作为最终回复的内容。

6.4 综合实战:构建“智能招聘助手”工作流

项目目标:设计一个能够自动化处理初步招聘流程的复杂工作流。该工作流需要能够解析候选人信息,根据知识库中的岗位要求进行初步筛选,并调用插件来安排面试。

准备工作

  1. 知识库:创建一个名为 JD_KB 的知识库,里面存放一个 后端工程师JD.txt 文件,内容包括岗位职责和要求(如:要求:精通Python,熟悉Django框架,3年以上工作经验)。
  2. 插件:在 Bot 中添加一个“日历”插件(用于安排面试)和一个“邮件”插件(用于发送通知)。

工作流设计

graph TDA[Start
input: candidate_info] --> B{LLM: 解析简历
Prompt: "从'{{A.candidate_info}}'中提取姓名、联系方式、工作年限、核心技能。"
Output: name, contact, experience, skills};B --> C{Knowledge Retrieval: 检索岗位要求
KB: JD_KB
Query: "后端工程师的任职要求是什么?"
Output: jd_requirements};C --> D{If: 初步筛选
Condition: {{B.experience}} >= 3 AND 'Python' in {{B.skills}}};D -- Pass --> E{Code: 格式化面试信息
Input: {{B.name}}
Code: 生成面试时间、会议链接
Output: interview_time, meeting_link};E --> F[Plugin: 创建日历事件
Tool: Calendar.create_event
Params: title="面试-{{B.name}}", time={{E.interview_time}}];F --> G[Plugin: 发送面试通知
Tool: Email.send
Params: to={{B.contact}}, subject="面试邀请", body="详情见日历"];G --> H[End
output: "已成功为候选人 {{B.name}} 安排面试,并发送了通知邮件。" ];D -- Fail --> I[End
output: "候选人 {{B.name}} 的条件不符合初步要求,已归档。" ];

节点配置详解

  1. Start 节点

    • 定义一个输入变量 candidate_info,类型为字符串,用于接收用户粘贴的候选人简历文本。
  2. LLM 节点 (解析简历)

    • Prompt:`# 角色
      你是一个专业的HR助理。

任务

从以下候选人信息中,提取姓名、联系方式(邮箱或电话)、工作年限(数字)、核心技能(列表)。以JSON格式输出。

候选人信息:
{{A.candidate_info}} - **输出**:配置name, contact, experience, skills` 四个输出变量,对应 JSON 的键。

  1. Knowledge Retrieval 节点 (检索岗位要求)

    • 知识库:选择 JD_KB
    • 检索查询:输入固定的查询“后端工程师的任职要求是什么?”来获取标准。
    • 输出:将检索到的文本内容赋值给输出变量 jd_requirements
  2. If 节点 (初步筛选)

    • 条件设置:添加一个条件分支。
    • 表达式{{B.experience}} >= 3 && {{B.skills}}.includes('Python') (注意:实际语法取决于 Coze 平台,这里是示意)。这个表达式会判断从简历中提取的工作年限和技能是否满足基本要求。
  3. Code 节点 (格式化面试信息)

    • 输入name (来自B节点)。
    • 代码 (Python)
      from datetime import datetime, timedelta
      def handler(args: dict):
      # 假设安排面试在两天后
      interview_dt = datetime.now() + timedelta(days=2)
      interview_time_str = interview_dt.strftime('%Y-%m-%d %H:%M')
      # 生成一个假的会议链接
      meeting_link = f"https://meet.coze.com/{args['name']}-{datetime.now().timestamp()}"
      return {"interview_time": interview_time_str, "meeting_link": meeting_link}
    • 输出interview_time, meeting_link
  4. 后续插件节点

    • 依次拖入日历和邮件插件节点,并将前面节点生成的 name, contact, interview_time 等变量作为参数传入。

在 Bot 中使用

  • Prompt:`# 技能
  • 当我发送一段简历文本时,你必须调用【intelligent_recruiter_workflow】工作流来处理它。`
  • 使用:直接将一段简历文本粘贴给 Bot,工作流就会被触发,自动完成整个筛选和安排流程。

本章总结

本章我们掌握了 Coze 中最强大的逻辑编排工具——工作流。通过学习,我们不仅熟悉了其可视化的编排界面Start, LLM, Code, If/Else, End 等核心节点的配置,还通过一个复杂的“智能招聘助手”实战项目,体验了如何将大模型、代码、知识库、插件等多种能力在一个工作流中协同配合,实现真正端到端的业务自动化。

掌握了工作流,你就拥有了从简单的问答 Bot 开发者,向着能够构建企业级、高可靠性 AI 应用的架构师迈进的关键能力。

http://www.jsqmd.com/news/27327/

相关文章:

  • 2025年皮带称厂家权威推荐榜单:装载机秤/螺旋秤/定量给料机源头厂家精选
  • 2025年led全彩显示屏制造商权威推荐榜单:led数字显示屏/工业显示屏/led异形显示屏源头厂家精选
  • 全新升级!山海鲸4.6.3版本正式亮相
  • 2025年中国玻璃钢管道厂家排名:高性价比玻璃钢管道厂家深度测评
  • 刚刚 Cursor2.0炸裂发布!这3大亮点必学
  • 2025年10月中型挖掘机品牌推荐:五强综合榜对比排行
  • AT_arc195_d [ARC195D] Swap and Erase
  • ubuntu24.04本地部署stable-diffusion-v1.5
  • 线段树题解
  • 单目相机Matlab参数标定
  • 2025年10月大型挖掘机品牌实力榜:外资在华累计销量与口碑数据公开
  • 2025年10月挖掘机厂家评测榜:五强国四排放对比排行
  • 2025年10月小型挖掘机品牌推荐榜:五强评测对比解析
  • 2025年10月挖掘机品牌推荐榜:迪万伦领衔全品类对比评测
  • Nginx作用以及应用场景
  • 2025年10月中型挖掘机租赁品牌对比榜:性能与服务综合排名
  • 2025年10月挖掘机厂家对比榜:迪万伦高寒施工机型与主流厂家排行
  • 2025年10月中型挖掘机租赁品牌榜:高原施工场景下的五强对比与选择
  • C# 中 Queue 学习笔记
  • Rust 异步错误处理与分布式系统中的实践策略
  • 2025年10月中型挖掘机租赁品牌榜:租赁成本与耐久性综合评测
  • 2025年10月挖掘机品牌推荐榜:迪万伦领衔全型号对比排行
  • 【Java】Bean的生命周期——print大法带你了解Bean的生命周期(初探)
  • 基于containerd部署的k8s集群
  • AE脚本-MoBar v3.5.1 Win 可提高效率的AE快捷命令脚本工具箱
  • “数据筑基” 赋能 “人工智能+”:解构“十五五”新质生产力的核心路径
  • 详细介绍:Win11系统JAVA8与IDEA社区版下载安装与配置
  • 2025 年最新推荐!搬家公司推荐排行榜 ,覆盖玄武秦淮等区域专业搬家公司精选榜单南京搬家公司推荐
  • Golang 镜像拉取与 Docker 部署全教程
  • 2025年推拉棚供应商年度排名,推拉棚源头厂家/推拉棚制造商推荐