更新时间:2025-07-30 GMT+08:00
分享

快速搭建工作流

整体概述

Agent开发平台的工作流是由多个节点构成的一个任务处理单元。工作流可以集成到Agent应用中,也可以单独使用。工作流中包括开始、结束、大模型、意图识别、提问器、插件、判断、代码、知识检索和消息节点等节点,通过将各节点的编排组合可以实现特定的业务逻辑。

本教程将以“办公助手”工作流为例说明工作流的创建、调试、发布与管理。如下图所示,办公助手工作流整体的编排涉及14个节点,涉及的类别有:开始节点、结束节点、意图识别节点、提问题节点、大模型节点、代码节点、插件。其中最关键的节点是意图识别节点,该节点可以根据用户输入判断用户意图,如差旅规划、翻译等。此示例中存在5类不同的用户意图,分别由5条分支处理。

图1 办公助手工作流示意图

步骤1:创建工作流

创建工作流的步骤为:

  1. 登录Agent开发平台;
  2. 在左侧导航栏中选择“应用管理 > 工作流应用”进入工作流应用开发主页面。该页面包含所有已经创建的工作流应用,可根据搜索框搜索目标工作流应用。
    图2 应用管理-工作流应用 : 应用方框图列表
  3. 在应用管理界面右上角单击“创建应用”。选择创建类型为“对话型工作流”,按照如下描述配置完成后,单击“立即创建”之后,你将进入工作流编排页面。
    工作流名称:办公助手
    英文名称:office_assistant
    工作流描述:办公助手,包含差旅助手、翻译、会议室预定助手、办公领域知识问答助手等。
    图3 创建对话型工作流应用
  4. 创建对话型工作流应用进入工作流编排页面后,如下图所示,初始状态下工作流包含开始节点、一个大模型节点和结束节点。
    图4 初始状态工作流

步骤2:配置开始节点

下面以办公助手工作流为例,详细展示工作流的创建过程。办公助手工作流的开始节点只需保留默认的输入参数query ,表示用户在本轮对话中输入的原始内容。

图5 开始节点

步骤3:配置意图识别节点

选择左侧下方“添加节点”,在弹出的节点列表对话框选择“意图识别”节点至画布中,连接画布中的开始节点和意图识别节点。两个节点之间的连线表明在运行时,意图识别节点是开始节点的后续节点。

单击意图识别节点以打开节点配置页面,意图识别节点配置如下:

  1. 模型配置:从平台提供的大模型列表中按需选择一个大模型用于意图识别。
  2. 输入参数:类型选择“引用”,引用的值选择开始节点传递给意图识别节点的参数query
    图6 意图识别节点-输入参数
  3. 意图配置:通过单击“添加意图”按钮,依次增加以下几个意图:
    • 差旅,涉及差旅流程、交通安排、出差时间规划。
    • 会议室预定,涉及会议室预定、会议室相关资源查询。
    • 办公知识问答,涉及公司办公政策或相关知识的查询或解释。
    • 翻译,涉及文字或语音内容的翻译需求,无论是语言之间的转换还是文字的解释。
    • 其他,大模型闲聊。
  4. 高级配置:填写提示词以实现大模型的意图识别功能,办公助手的意图识别节点的提示词展示如下:
    你是一个功能分类器,你可以根据用户的请求提问,和相应的功能类别描述,选择正确的功能帮助用户解决问题。如果提问涉及公司办公政策或相关知识的查询或解释,选择办公知识问答 功能;如果提问涉及差旅流程、交通安排、出差时间规划,选择差旅 功能;如果提问涉及会议室预定、会议室相关资源查询,选择会议室预定 功能;如果提问涉及文字或语音内容的翻译需求,无论是语言之间的转换还是文字的解释,选择翻译 功能;如果提问涉及工资等敏感类问题拒绝回答,选择拒答 功能;如果提问不涉及上述5个方面,选择其他功能。
  5. 配置完成后,单击确定,意图节点的显示如下:
    图7 意图识别节点

意图识别节点配置的5个意图分支分别对应了5个不同场景,用于处理用户不同的需求。以下步骤将介绍5个场景的配置。

步骤4:配置差旅场景

差旅场景包含两个节点:差旅工具提问器和travel_info_tool插件。

选择左侧下方“添加节点”,在弹出的节点列表对话框选择“提问器”和“插件”节点至画布中。将提问器节点命名为“差旅工具提问器”,插件节点命名为“travel_info_tool”。连接画布中的意图识别节点的差旅分支与差旅工具提问器节点。并将travel_info_tool节点放置在提问器节点之后。

差旅工具提问器的配置如下:

  • 模型配置:从平台提供的大模型列表中按需选择一个大模型。
  • 输入和输出参数配置如表1表2
    表1 输入参数说明

    参数名称

    值类型

    参数说明

    inputtext

    引用

    引用“开始”节点的变量query。

    表2 输出参数说明

    参数名称

    展示名称

    类型

    USER_RESPONSE

    用户最近一轮对话输入

    String

    STATUS

    运行状态码

    String

    starttime

    出差开始时间

    String

    endtime

    出差结束时间

    String

    purpose

    出差事由

    String

    traveltool

    交通工具

    String

    location

    出差目的地

    String

    图8 差旅工具提问题-输入输出参数
  • 参数校验配置见下图。starttime/endtime的校验类型均为时间日期 ,校验规则均为指定格式
    图9 差旅工具提问题-参数校验
  • 问题配置:最大回复轮数设置为5,也可以按需自定义。
  • 高级配置:提取约束为:
    如果同时有开始时间和持续时间,请你根据开始时间和持续时间正确计算出结束时间。结束时间=开始时间+持续时间。如果用户发起修改,只改用户修改的变量,不修改的保持原样。
  • 其他配置项保持默认设置。

travel_info_tool插件配置如图10。作为示例,travel_info_tool插件实现的功能只是在所有输入参数都有有效值的情况下返回所有参数。你也可以根据实际应用场景需求使用自己开发的自定义插件。

图10 travel_info_tool插件

步骤5:配置会议室预定场景

会议室预定场景包含两个节点:会议室预定提问器和book_meeting_room_tool。

选择左侧下方“添加节点”,在弹出的节点列表对话框选择“提问器”和“插件”节点至画布中。将提问器节点命名为“会议室预定问器”,插件节点命名为“book_meeting_room_tool”。连接画布中的意图识别节点的会议室预定分支与会议室预定问器节点。并将book_meeting_room_tool节点放置在提问器节点之后。

会议室预定提问器的配置如下:

  • 模型配置:从平台提供的大模型列表中按需选择一个大模型。
  • 输入和输出参数配置如表3表4
    表3 输入参数说明

    参数名称

    值类型

    参数说明

    inputtext

    引用

    引用“开始”节点的变量query

    表4 输出参数说明

    参数名称

    展示名称

    类型

    USER_RESPONSE

    用户最近一轮对话输入

    String

    STATUS

    运行状态码

    String

    starttime

    会议开始时间

    String

    endtime

    会议结束时间

    String

    roomname

    会议室编号

    String

    num

    会议室人数

    String

    图11 会议室预定提问器-输入输出参数
  • 参数校验配置见下图。starttime/endtime的校验类型均为时间日期,校验规则均为自定义格式。
    图12 会议室预定提问器-参数校验
  • 问题配置:最大回复轮数设置为3,也可以按需自定义。
  • 高级配置:提取约束为:
    如果同时有开始时间和持续时间,请你根据开始时间和持续时间正确计算出结束时间。结束时间=开始时间+持续时间。如果用户发起修改,只改用户修改的变量,不修改的保持原样。
  • 其他配置项保持默认设置。

book_meeting_room_tool插件配置如图13。作为示例,book_meeting_room_tool插件实现的功能只是在所有输入参数都有有效值的情况下返回所有参数。你也可以根据实际应用场景需求使用自己开发的自定义插件。

图13 book_meeting_room_tool插件

步骤6:配置办公知识问答场景

办公知识问答包含一个代码节点:格式化代码节点。

拖动左侧节点列表中的代码节点至画布中,连接画布中的意图识别节点的办公知识问答分支与格式化代码节点。

图14 格式化节点

格式化节点配置的python代码示例如下,如需更复杂的处理逻辑,可修改python代码。

def main(args: dict) -> dict:
    # 写代码进行逻辑处理
    ret = {
        "office_data": args.get('office_data', 'default')
    }
    return ret

此处的示例未进行代码逻辑处理,但在注释处可以进行一些校验和处理。

此处代码为:获取输入参数,即插件的输出(args中的office_data),未做处理,直接在输出参数返回(ret中的office_data)。

步骤7:配置翻译场景

翻译场景包含两个节点:翻译工具提问器和大模型翻译。

选择左侧下方“添加节点”,在弹出的节点列表对话框选择“提问器”和“大模型”节点至画布中。将提问器节点命名为“翻译工具定问器”,大模型节点命名为“大模型翻译”。连接画布中意图识别节点的翻译分支与翻译工具提问器节点。并将大模型翻译节点放置在提问器节点之后。

翻译工具提问器的配置如下:

  • 模型配置:从平台提供的大模型列表中按需选择一个大模型。
  • 输入和输出参数配置见下图:
  • 问题配置:最大回复轮数设置为3,也可以按需自定义。
  • 高级配置:配置项保持默认设置。
图15 翻译工具提问题

下图是大模型翻译节点的配置。该节点的作用是利用提问器提取出来的text,把text的文本翻译成英语。

图16 大模型_翻译节点

提示词配置示例:

你是一名翻译人员,请将用户输入的{{text}}翻译成英语,并将翻译结果返回。

步骤8:配置其他场景

其他场景包含一个大模型节点:大模型闲聊。

选择左侧下方“添加节点”,在弹出的节点列表对话框选择“大模型”节点至画布中。将大模型节点命名为“大模型闲聊”连接画布中的其他节点分支与大模型闲聊节点。

大模型闲聊节点的作用是在用户输入的意图不属于差旅、会议室预定和翻译相关,也不涉及敏感话题时,提供闲聊服务。 下面是该节点的配置。

  • 模型配置:从平台提供的大模型列表中按需选择一个大模型。
  • 输入、输出参数配置和提示词配置见下图:
图17 大模型_闲聊节点

提示词配置示例:

根据你的知识回答客户问题,涉及不知道的知识时回复暂时不涉及这方面知识。
最后提醒客户:请您给出差旅预定、会议室预定、翻译方面的需求。
客户问题是{{query}}

步骤8:配置结束节点

结束节点是工作流的最终节点,用于返回工作流运行后的结果。结束节点支持配置两种参数:输入参数和输出参数,分别对应两种返回方式,文本返回和变量返回。

办公助手工作流的结束节点采用文本返回的形式,在指定回复文本框中以{{variable_name}}的形式插入输入参数。工作流的最终运行结果将按照指定回复中的内容返回。注意,指定回复中输入、输出参数配置和提示词配置见下图:不能插入输出参数。

上述的5个分支的后序节点均为结束节点,结束节点使用它们的输出作为输入参数。

  • traveltool引用travel_info_tool插件的输出。
  • meeting_room引用book_meeting_room_tool插件的输出。
  • office引用格式化节点的输出。
  • translate引用大模型翻译节点的输出。
  • llm引用大模型闲聊节点的输出。

下图是结束节点的配置。

图18 结束节点

步骤10:调试工作流

Agent开发平台支持对整个工作流进行试运行,也支持对工作流的单个节点进行调试。

以调试“意图识别”节点为例,

  • 在工作流编排页面,单击意图识别节点的“ ”,
  • 进入单节点调试页面。编写输入参数内容,单击“开始运行”。
图19 单节点调试

工作流编排完成后,单击右上角,在对话框中输入问题,可查看试运行结果。

在试运行的过程中,可以单击右上角查看调试结果,包括运行结果与调用详情。调试结果示例如下:

图20 调试工作流

步骤12:发布工作流

工作流试运行成功后,可对其进行发布,便于后续使用。发布工作流的步骤与发布智能体应用的流程一致,请参考章节发布工作流

步骤13:管理工作流

在Agent平台中创建工作流之后,你可以管理工作流,单击工作流卡片右上角的"...",执行复制工作流、删除工作流、查看工作流调用路径等操作。

图21 管理工作流

相关文档