编排工作流
从开始节点到输出节点构建可运行的类型化流程
工作流编辑器使用可视化画布:左侧节点面板负责添加节点,中央画布负责连接流程,右侧抽屉负责配置选中节点。工作流支持手动触发、Webhook 触发和定时触发。
工作流构建器界面
布局
- 节点面板(左侧):按类别组织的可用节点类型
- 模型:LLM、媒体生成
- 逻辑:条件、问题分类器、决策、迭代、循环、暂停
- 转换:代码、模板、文件转 URL、变量聚合、变量赋值、参数提取
- 扩展:子工作流、Agent、工具、知识库检索、回答
- 画布(中央):工作流设计区域,支持添加、连接和排列节点
- 属性面板(右侧):节点配置、设置和变量
- 工具栏(顶部):保存工作流、测试(调试)工作流、缩放控制
构建工作流的步骤
- 添加开始节点:每个工作流以开始节点(用户输入或触发器)开始,定义输入参数
- 添加处理节点:添加节点处理数据,参见下方节点类型
- 连接节点:点击源节点的输出端口,拖动到目标节点的输入端口
- 配置节点:在属性面板中配置每个节点的设置
- 添加回答节点:使用回答节点定义工作流返回的最终输出;它是构建器中的输出节点,不是另一个名为“结束”的运行时终止节点
- 测试工作流:点击测试(调试)按钮,输入测试数据,运行并查看结果
- 保存并发布:点击保存保存为草稿,点击发布激活工作流
变量与数据流
- 输入变量:在开始节点定义,从用户或触发器收集
- 节点变量:节点输出,在后续节点中引用
在提示词或条件里使用变量选择器插入引用,不要手写不存在的名称;编辑器只列出当前可用的变量。
错误处理
构建器中没有 try-catch / 重试界面。节点失败后的流程取决于执行逻辑和工作流结构;错误会记录在运行与节点执行中供检查。HTTP 请求默认最多重试 3 次,但构建器没有单独的重试配置项。
工作流模板
内置工作流模板:
- 简单问答机器人:使用 LLM 的基本问答机器人
- RAG 知识机器人:带检索增强的知识库问答
- 意图路由器:基于检测到的意图路由对话
- 代码审查助手:多视角自动代码审查
模板会实例化到新工作流中;实例化时请在编辑器中检查并配置模型、知识库及其他节点引用,不要假设模板里的变量名固定不变。
键盘快捷键
Space + Drag:平移画布Ctrl/Cmd + Scroll:缩放Ctrl/Cmd + 0:重置缩放
创建与保存草稿
- 前往应用 > 创建应用 > 工作流。
- 在工作流设置填写名称、描述、可见性和所属团队。
- 选择开始节点:用户输入适合表单交互,触发器适合 API 或 Webhook 调用。
- 从节点面板拖拽节点到画布,或点击添加节点。
- 拖动源句柄到目标句柄创建连线。开始节点不能删除。
- 选择保存。编辑器会记录最近保存时间和未保存状态。
定义变量
开始节点使用工作流级变量。变量类型包括文本、段落、下拉选项、数字、布尔、数组、对象、文件、图片、多文件和多图片。每个变量可设置必填、默认值、标签和描述。
引用变量时使用编辑器选择器,不要手写不存在的名称。当前定义格式支持原生对象和数组传递。
节点类型
节点面板按四个分类组织,下表按同一分类列出每个节点:
模型节点
| 节点 | 用途 |
|---|---|
| LLM | 调用语言模型进行文本生成和分析 |
| 媒体生成 | 使用兼容模型生成图片或视频 |
逻辑节点
| 节点 | 用途 |
|---|---|
| 用户输入 | 手动执行工作流的入口点(创建工作流时选择,不出现在添加节点菜单中) |
| 触发器 | 触发器执行工作流的入口点(同上) |
| 条件分支 | 基于表达式结果分支执行 |
| 问题分类器 | 用对话模型对输入问题做文本分类 |
| 决策 | 用决策模型对状态做类型化判断,按返回结果选择分支 |
| 迭代 | 遍历列表中的每个项目,逐个执行容器内的子节点 |
| 循环 | 重复执行某个分支直到满足条件 |
| 暂停 | 等待审批或变量输入 |
转换节点
| 节点 | 用途 |
|---|---|
| 代码执行 | 执行 Python 或 JavaScript 自定义代码 |
| 模板 | 渲染模板字符串 |
| 文件转 URL | 将文件转换为可访问地址 |
| 变量聚合 | 合并多个变量值 |
| 变量赋值 | 为变量赋值 |
| 参数提取 | 从文本中提取结构化参数 |
扩展节点
| 节点 | 用途 |
|---|---|
| 子工作流 | 调用另一个已发布的工作流 |
| Agent | 调用已发布的 Agent |
| 工具 | 执行已配置的工具 |
| 知识库检索 | 从知识库检索相关内容 |
| 回答 | 定义工作流的最终输出 |
迭代、循环、暂停不能放进另一个容器:在迭代/循环容器内部打开添加节点菜单时,逻辑分类只剩条件、问题分类器和决策,容器边界由结束标记标出,结束标记不能单独连接。
HTTP 请求与文档提取在引擎中可用,但构建器面板没有对应的节点——只有通过程序提交的定义才会出现这两个类型。
未实现:Transform、Parallel、Wait、Switch、Database、Email、Webhook(作为节点)、Log、Delay、Merge、Input、Output 等节点类型。变量处理通过变量赋值和变量聚合节点完成。
配置节点
按任务配置节点参数:
LLM 节点
- 模型:选择已配置的模型(如 GPT-4 Turbo、Claude 等)
- 提示词:使用
{{variable}}语法引用上游变量 - 温度:通常以
0-2配置,具体可用范围取决于所选模型;控制输出的随机性 - 最大令牌数:限制模型输出的长度
- Top P:通常以
0-1配置,具体可用范围取决于所选模型;核采样参数 - 输出变量:定义存储模型输出的变量名
输出变量: 响应内容、思考过程、Token 用量,以及配置的输出变量。
媒体生成节点
- 媒体类型:图片或视频
- 提示词:支持引用上游变量
- 宽度/高度:(图片)
- 持续时间/宽高比:(视频)
条件分支节点
- 条件表达式:使用 Jinja2 语法,如
{{analysis_result.urgency}} == "high" - True 分支:条件为真时连接的下游节点
- False 分支:条件为假时连接的下游节点
问题分类器节点
将用户输入分类到多个意图/类别之一并相应路由。它把分类写进提示词让对话模型生成 JSON,再从文本里解析类别;需要概率、置信度和“不会答错格式”时改用下面的决策节点。
决策节点
决策节点调用决策模型(非生成式)对一份状态做一次类型化判断,再按判断结果走对应分支。模型不产出散文,只返回选项/等级的概率分布和置信度,因此路由结果不需要从模型输出里解析,也不会因为多写一句话而走错分支。
使用前先接入决策模型:管理员在集成 > 模型供应商中添加 TypeSafe AI(默认地址 https://api.typesafe.ai/v1),并把该模型以决策类型授权给当前团队。节点里的决策模型下拉框只列出当前团队已启用、类型为决策的模型;没有可用模型时会显示“暂无可用模型”。
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| 决策模型 | 模型 | 无(必填) | 团队已启用的决策模型;未选择时检查清单报“未选择模型” |
| 输入状态 | 模板字符串 | 无(必填) | 模型要评估的内容,支持 {{变量}}。最终会渲染成字符串;需要传对象或数组时先用模板/变量赋值节点拼成文本 |
| 问题类型 | 选择一个选项 / 按有序等级评分 / 是-否判断 | 选择一个选项 | 决定分支句柄与可用输出,见下表 |
| 判断说明 | 字符串 | 无(必填) | 一句话说明模型要判断什么,例如“判断该退款单是否应直接批准” |
| 选项 / 有序评分等级 | 字符串列表 | ["yes", "no"] | “选择一个选项”需 1–255 个唯一选项;“按有序等级评分”需 2–10 个有序等级;空串或重名会被检查清单拒绝 |
| 兜底分支 | 字符串 | default | 置信度低于阈值、或未解析出分支时走这里 |
| 置信度阈值 | 数字 0–1 | 不设置(不启用) | 仅在选择/评分类型显示;返回置信度严格小于该值时改走兜底分支 |
问题类型决定分支句柄与输出:
| 问题类型 | 分支句柄 | 置信度 | 适用场景 |
|---|---|---|---|
| 选择一个选项 | 每个选项一个句柄,外加兜底分支 | 有 | 在若干互斥处置中选一个(退款 / 技术支持 / 账单 / 其他) |
| 按有序等级评分 | 每个等级一个句柄,外加兜底分支 | 有 | 等级本身有序(低 / 中 / 高,P0–P3),同时需要数值评分 |
| 是 / 否概率判断 | 固定“是”“否”,外加兜底分支 | 无 | 单一二元判断;概率不低于 0.5 走“是”,否则“否”;不返回置信度,因此阈值对它无效 |
分支句柄与重命名
- “选择一个选项”/“按有序等级评分”的每个选项或等级就是画布上的一个输出句柄,句柄名等于选项/等级文本;兜底句柄名默认为
default。 - 改动选项文本时,只要选项个数不变,编辑器会按位置重映射已有连线;如果改动了个数,残留连线会指向“已过期的输出句柄”,检查清单会报错,必须重新连到当前句柄。
- 不需要连接每个分支,但被连接的分支必须有下游节点;低置信度答案会改走兜底分支,兜底分支没有下游时流程在该节点结束。
兜底分支与置信度阈值
- 阈值只在返回置信度严格小于阈值时生效;等于阈值仍走模型选中的分支。
- 阈值只影响路由,不影响输出:判断结果始终是模型选中的选项/等级,实际分支才是真正走的那条。
- 不设置阈值时,只有“没有解析出分支”才会走兜底;“是 / 否判断”永远不走兜底(它一定返回是或否)。
- 决策节点默认最多重试 2 次(首次失败后等待 1 秒起、指数退避);重试与阈值无关,阈值只处理“答了但不确定”的情况。
输出变量
| 输出 | 说明 |
|---|---|
| 判断结果 | 选中的选项/等级,或是/否 |
| 实际分支 | 实际走的分支句柄(被阈值改道时是兜底句柄) |
| Token 用量 | 本次决策调用的用量 |
| 置信度 / 概率分布 | 选择与评分类型会输出置信度和各选项的概率;是/否类型只输出为“是”的概率 |
下游可以用节点变量记录判断结果,用置信度或概率分布决定是否再套一层人工复核。
失败路径
| 现象 | 触发条件 |
|---|---|
| 校验错误 | 未选模型、输入状态或判断说明为空;问题类型不合法;选项个数越界、为空串或重名 |
| 结果不匹配 | 模型返回的答案类型、选项集合或概率集合与节点配置不一致(例如返回了未配置的选项) |
| 供应商/模型错误 | 团队未授权该决策模型、模型或授权被禁用、地址被模型端点白名单拦截、请求超时(默认 60 秒)、认证或配额错误 |
示例:工单分诊
ticket_text(段落)和 customer_tier(下拉:free/pro/enterprise)。
{{start.ticket_text}};问题类型选选择一个选项;判断说明写“判断这条工单应交给哪个处理团队”;选项填 refund、technical、billing、other。
manual_review,置信度阈值填 0.6——模型置信度低于 0.6 的工单不再自动分派,交给人工。
refund 连到退款审批子工作流,technical 连到技术支持 LLM 节点,billing 连到账单模板节点,manual_review 连到暂停节点(审批模式)等人工处置。other 不连接表示直接结束。
manual_review;在运行追踪里查看该节点的判断结果、置信度和概率分布,再决定 0.6 是否需要上调或下调。
调试决策分支
- 检查清单会逐项报:未选择模型、输入状态为空、判断说明为空、选项/等级数量不足或超限、选项为空或重名、连线使用已过期句柄。
- 运行追踪里看实际分支(实际走的哪条分支)和置信度(是否被阈值改道)。如果总是落到兜底分支,先看概率分布是“两个选项概率接近”还是“模型没理解判断说明”——前者调阈值,后者改判断说明或输入状态。
- 决策节点是一次调用、一个结果,没有中间步骤:调试只能整轮运行,不存在断点或单步执行。
迭代/循环节点
- 集合:要遍历的数组变量
- 项目变量:当前项目的变量名
- 输出变量:结果数组的变量名
暂停节点
暂停执行,直到团队成员提供请求的变量或提交审批决定。暂停可配置为变量模式或审批模式;等待的运行在处理请求后恢复。
- 模式:变量(收集表单字段)或审批(等待通过/拒绝),默认变量
- 标题:审批或填写页显示的名称;留空时用节点名称
- 说明模板:支持
{{变量}}插值,保存前解析;解析不到的引用显示为空字符串,不会向审批人暴露原始占位符 - 输入变量(变量模式):需要收集的字段,每项含名称、类型、必填与说明
- 审批人(审批模式):从团队成员中选择。不选时默认由工作流创建者和团队管理员处理;选了之后只有名单内的成员能提交,超级管理员可越过
- 审批策略:默认关闭——任一人提交即决定结果;开启需要全员通过后,每位审批人都要各自提交,全部通过才恢复运行,任一人拒绝立即失败,同一人重复提交会被拒绝
变量模式的输出就是提交的字段本身;审批模式输出决定(通过/拒绝)、是否通过、审批意见和提交人,拒绝会让运行以“审批被拒绝”失败。等待中的请求与运行轨迹都在运行抽屉里显示,详见工作流节点。
代码执行节点
- 语言:Python 或 JavaScript
- 代码:自定义执行逻辑
- 超时:代码执行器当前固定为
30秒;不是可在构建器中自由设置的1-300秒范围 - 输入变量:传递给代码的变量
- 输出变量:代码执行返回的变量
模板节点
使用变量渲染模板字符串(如 {{variable}} 替换)。
文件转 URL 节点
将文件(如沙箱产物)转换为可下载的站点地址。
变量赋值节点
为变量赋值。
变量聚合节点
聚合值(如将循环迭代结果收集到数组中)。
参数提取节点
使用模型、正则表达式或 JSON 路径从文本中提取结构化参数。
- 提取方法:模型 / 正则 / JSON 路径
- 源变量:要提取的文本
- 参数:需要提取的字段列表
HTTP 请求节点
画布节点面板不提供 HTTP 请求节点;只有通过程序提交的定义可以使用该类型。需要可视化编排时,改用工具节点调用已创建的 HTTP API 工具。
- 方法:GET / POST / PUT / PATCH / DELETE
- URL:目标端点地址
- 请求头:自定义 HTTP 头
- 请求体:JSON 格式的请求负载
- 超时:默认
30秒 - 输出变量:存储响应数据
HTTP 请求默认最多重试 3 次;构建器没有单独的重试配置项。
工具节点
- 工具:选择已配置的工具(内置 / 自定义 / MCP / Skill)
- 参数映射:每个参数一条映射,来源可以是上游变量或常量;常量要声明类型,否则
"10"会以字符串传给工具 - 类型转换:整数、浮点、布尔、数组、对象分别按对应格式解析;非法值会让节点报参数无效
- 网页搜索引擎:选中内置网页搜索时出现引擎下拉,默认项用站点默认,其余只列已启用引擎;执行时重新校验,引擎被禁用即失败
- 输出变量:存储工具执行结果,另有状态与耗时
可用内置工具: 时间与日期、数学计算、单位换算、网页搜索、网页抓取、订阅源读取、文档转换,以及沙箱文件工具。生图与生视频用媒体生成节点;交互式提问由 Agent 能力开关提供,它们都不在工具目录里。
知识库检索节点
- 知识库:选择目标知识库
- 查询模板:使用
{{variable}}引用查询内容 - 返回结果数:默认
5;具体上限取决于接口与配置 - 相似度阈值:默认
0.0,即最低相似度分数 - 检索方式:向量 / 全文 / 混合
子工作流节点
运行另一个工作流作为子步骤并捕获其输出。
Agent 节点
使用消息和可选上下文调用 AI Agent。
回答节点
从工作流返回最终答案/输出。
配置节点时,确保所有输入变量都有明确的来源(上游节点输出或开始节点变量)。未连接的输入变量会被发布前检查清单报告为问题;请在调试和发布前处理。
触发配置
工作流支持三种触发方式:
手动触发
无需额外配置。发布后,具有权限的用户可以在界面中手动触发工作流。
Webhook 触发
将触发类型设为 Webhook 后,系统自动生成一个触发地址和一个触发令牌。把地址提供给调用方,调用方在请求头中携带 clou_ API 密钥发起 POST,请求体直接是工作流的输入变量(原始 JSON 或 {"inputs": {...}} 格式)。
未实现 / 路线图:wh_.../whsec_... 凭证对、IP 白名单、每个 Webhook 的速率限制、重试策略和 Webhook 请求日志当前不可用。
定时触发
将触发类型设为 定时任务 后,界面支持按间隔、每天、每周、每月或自定义表达式配置。执行频率会换算成一条标准表达式(分 时 日 月 周,如 0 9 * * 1-5 表示工作日上午 9 点)。
仅保存定时触发器不会让工作流自动运行:随附部署默认没有调度定时工作流。需要定时执行时,请联系部署维护者启用调度任务,并按部署文档对齐界面保存的表达式;否则只能手动或用 Webhook 触发。详见触发器。
草稿与发布
工作流有三种状态:
草稿
- 正在编辑中的工作流
- 不能被触发执行
- 仅对编辑者可见
- 可随时保存修改
已发布
- 可运行的工作流
- 可以通过界面、API 或 Webhook 触发
- 对所有有权限的用户可见
- 修改前需先取消发布
已归档
- 已停用的工作流
- 不在正常列表中显示
- 配置信息保留
没有启用/停用状态。归档是独立状态,通过更新操作应用;发布/取消发布是管理员生命周期操作。
发布前检查
选择检查清单,解决以下问题后再调试运行和发布:
| 检查项 | 说明 |
|---|---|
| 未选择模型 | LLM 节点未配置模型 |
| 输入变量无来源 | 节点输入未连接到上游变量 |
| 节点无输入 | 必填节点缺少输入连接 |
| 输出未定义 | 回答节点未配置输出变量 |
| 条件分支不完整 | 条件节点缺少 True 或 False 分支 |
| 决策配置不完整 | 决策节点未选模型,或输入状态、判断说明为空,或选项/等级数量与唯一性不合规 |
| 决策分支句柄过期 | 决策节点连线指向已不存在的选项/等级句柄,需要重新连接 |
| 工具必填参数缺失 | 工具节点缺少必填参数映射 |
| 循环容器不完整 | 循环节点未正确配置 |
验证通过后,使用调试运行测试工作流,确认输出符合预期后再发布。
运行工作流
访问工作流
- 导航到应用(
/app/apps)。 - 打开工作流标签页。
- 选择工作流卡片打开
/app/apps/workflow/{id}。 - 选择运行开始手动执行。
工作流列表
列表显示:
| 列 | 说明 |
|---|---|
| 名称 | 工作流名称 |
| 团队 | 拥有工作流的团队 |
| 状态 | 草稿或已发布 |
| 上次运行 | 上次执行时间;运行可能正在暂停节点等待 |
| 操作 | 运行、查看、编辑 |
手动执行
- 打开工作流
- 点击运行按钮
- 如果工作流有输入变量:
- 填写必填输入
- 查看可选输入
- 点击开始
- 实时观看执行过程
- 完成后查看结果
输入变量
工作流可能需要输入:
- 文本:自由格式文本输入
- 数字:数值
- 下拉选项:下拉选项
- 布尔:是/否复选框
观看执行
实时进度:
- ⏸️ 待定:尚未开始
- ⏳ 运行中:正在执行
- ⏳ 等待中:暂停等待外部输入或审批
- ✅ 成功:成功完成
- ❌ 失败:执行失败
- ⏭️ 已跳过:已跳过(条件性)
执行详情: 点击节点查看详细信息,包括状态、持续时间、输入和输出。
流式输出: LLM 节点实时流式输出;执行视图在运行时显示部分内容。
执行结果
成功: 显示执行持续时间、执行的节点数和状态。
失败: 显示失败节点和错误信息。
常见错误:
- 输入格式无效
- API 调用失败
- 超时
- 资源未找到
- 权限被拒绝
停止执行
- 点击停止执行按钮
- 确认停止操作
- 工作流在当前节点停止
工作流变量
输入变量: 启动工作流时提供。
输出变量: 执行期间由回答节点和其他节点输出生成。
查看执行记录
执行历史
- 选择工作流
- 点击执行历史标签页
- 查看运行列表:运行编号、状态、开始时间、持续时间、触发来源、输入与输出
执行详情
点击单个运行查看详细信息:
- 运行信息:运行编号、工作流名称、状态、开始时间、完成时间、持续时间、触发方式
- 节点执行时间线:每个节点的开始时间、完成时间和耗时
- 节点级详情:每个节点的输入、输出、状态与错误
- 实时事件:运行中可查看节点状态更新与 LLM 输出
工作流日志
工作流执行历史可从工作流的日志视图(/app/apps/workflow/{id}/logs)访问。打开应用 > 工作流,选择工作流,然后从工作流菜单中选择日志。
运行详情字段:
| 字段 | 说明 |
|---|---|
| 状态 | 日志界面显示已完成、失败、运行中、待定、已取消或超时 |
| 开始时间 | 执行开始时间 |
| 持续时间 | 总执行时间 |
| 触发者 | 用户或 Webhook |
| 输入 | 提供的输入变量 |
| 输出 | 执行结果 |
| 已执行节点 | 运行的节点数 |
| 错误 | 错误信息(如果失败) |
状态徽章:
| 徽章 | 日志标签 | 说明 |
|---|---|---|
| ✅ | 已完成 | 成功完成 |
| ❌ | 失败 | 执行失败 |
| ⏳ | 运行中 | 正在执行 |
| ⏳ | 待定 | 执行前排队,或停在暂停节点等待处理 |
| ⏹️ | 已取消 | 已停止或取消;当前没有专用筛选控件 |
| ⏱️ | 超时 | 超过执行超时;当前没有专用筛选控件 |
查看节点执行详情
查看逐节点执行:
- 打开运行的节点执行
- 每个节点显示其状态、持续时间、输入、输出和错误(如有)
实时流式
运行中会实时推送事件,包括节点状态更新和 LLM 文本输出;界面据此逐步展示执行过程。
筛选历史
| 筛选 | 选项 |
|---|---|
| 状态 | 所有状态、已完成、失败、运行中、待定 |
| 日期范围 | 所有时间、最近 7 天、最近 30 天、最近 90 天 |
| 运行编号 | 精确匹配 |
执行统计
摘要指标(每个工作流或系统范围):
- 总运行次数
- 成功率
- 失败运行次数
- 平均持续时间
未实现 / 路线图:实时执行仪表盘(运行中/排队执行、成功率、平均执行时间、成本)当前不可用;运行统计在工作流详情页的统计视图查看。
删除历史
- 在历史中找到执行
- 点击 "..." 菜单
- 选择 "删除"
- 确认删除
- 执行被移除
已删除的执行无法恢复。批量删除未实现,也没有自动保留/清理策略设置。
Webhook 管理
创建或重新生成触发令牌
- 编辑工作流
- 将触发类型设为 Webhook
- 保存 - 系统自动生成触发令牌与地址
- 在访问 API页重新生成令牌;旧地址立即失效
测试 Webhook
在访问 API页复制触发地址,用任意 HTTP 客户端向其发起 POST,并在请求头中携带 clou_ API 密钥;请求体直接填写工作流输入字段。触发成功后,这次运行会出现在执行历史中。
Webhook 日志
未实现 / 路线图:没有单独的 Webhook 请求日志视图。触发的运行会出现在工作流运行历史中。
故障排除
工作流执行失败
- 在执行历史中打开失败的运行
- 检查节点执行详情和错误信息
- 常见错误:
- 节点超时:增加超时时间或优化节点
- 输入无效:验证输入变量格式
- API 错误:检查 API 凭证和连接性
- LLM 错误:验证模型可用性和 API 密钥
- 工具错误:检查工具配置
- 修正后重新触发
Webhook 未触发
- 确认工作流触发类型为 Webhook
- 确认使用的是访问 API页显示的当前触发地址
- 确认请求头中包含有效的
clou_API 密钥 - 确认工作流已发布(未发布的工作流会拒绝 Webhook 触发)
定时任务未执行
- 确认工作流已发布且触发类型为定时任务
- 确认已填写有效的表达式
- 联系部署维护者确认调度任务已启用,并按部署文档对齐界面保存的表达式
执行时间过长
- 优化节点:减少 LLM 最大令牌数、使用更快的模型、优化工具调用
- 缩小串行链:同一层的独立节点也是逐个执行,画布上没有并行节点;把可批量化的重复工作收敛进迭代节点,并缩小迭代输入规模
- 设置节点超时:设置合理的超时时间并优雅处理
- 监控性能:通过运行历史查看执行时长统计
工作流无法启动
- 检查工作流是否已发布
- 确认有执行权限
- 确保提供所有必填输入
- 刷新页面重试
执行卡住
- 检查节点是否正在等待外部响应或审批
- 确认外部端点可访问
- 停止并重新启动执行
- 联系管理员
无法查看历史
- 刷新页面
- 检查是否有权限
- 确认工作流已执行
- 检查日期范围筛选
- 联系管理员
缺少执行记录
- 检查筛选(可能隐藏结果)
- 确认日期范围
- 确认执行是否被删除
无法启动新运行
- 确认有执行工作流的权限
- 确认工作流已发布
- 从工作流页面开始新执行
最佳实践
工作流设计
- 保持工作流简单聚焦,避免过度复杂
- 使用描述性节点名称,包含动作动词,具体明确
- 添加错误处理逻辑
- 激活前充分测试
- 记录工作流用途
- 使用变量实现可复用性,避免硬编码值
- 添加日志便于调试
- 设置合理的超时时间
性能优化
- 减少串行步骤:画布上没有并行节点,同一层的独立节点也是逐个执行;合并节点比拆分后“等它并行”更有效
- 控制迭代规模:迭代节点超过上限会截断输入,先筛掉不需要处理的数据项
- 缓存重复操作
- 优化 LLM 提示词
- 选择合适的模型
- 设置合理的超时时间
- 监控执行时间
- 优化工具调用
输入与监控
输入:
- 提供所有必填输入
- 使用正确的数据类型
- 先用样本数据测试
监控:
- 关注执行进度
- 检查节点输出
- 行为异常时停止
错误处理:
- 仔细阅读错误信息
- 检查输入值
- 审查节点配置
- 使用修正后的输入重试
安全
- Webhook 触发需携带 API 密钥;调用方式见 工作流 API
- 被泄露时重新生成触发令牌
- 启用审计日志
- 监控异常活动
未实现 / 路线图:Webhook IP 白名单和速率限制当前不可用。
退出与丢失更改
返回应用列表或关闭页面前,如果存在未保存更改,编辑器会显示确认对话框。选择不保存离开会丢弃当前草稿更改。
这篇文章对你有帮助吗?