human_input_required 事件。该事件携带 form_token,集成方可凭其驱动整个表单生命周期,直到工作流恢复执行。
各接口的字段参考,详见 人工介入 API。
流程
下方流程同时适用于 Workflow 和 Chatflow 应用。两者仅在第 1 步的入口接口上有所不同。1
2
获取表单定义
使用
form_token 调用 获取人工介入表单 接口。响应包含渲染后的 Markdown、输入字段定义、可用操作、已预填的默认值,以及一个 expiration_time,超过该时间后表单将无法再提交。将表单呈现给接收者。若表单在提交前过期,暂停的运行会按节点配置的超时行为处理;恢复后的事件流中携带的是 human_input_form_timeout,而非 human_input_form_filled。3
提交响应
调用 提交人工介入表单 接口,附上接收者输入的值、所选的
action 以及你的 user。action 必须是第 2 步表单定义中的某个操作。提交一旦成功即为最终结果:表单随之关闭,工作流沿匹配的操作分支恢复执行,同一个 form_token 无法再次提交。若提交被拒绝(操作无效或缺少必填输入),表单保持不变,修正输入后可用同一个 form_token 重新提交。4
继续监听工作流
若原 SSE 流已关闭,可调用 流式获取工作流事件 重新连接:使用第 1 步中的
workflow_run_id,并携带启动运行时的同一个 user(user 不一致会返回 404)。恢复后的事件流会先携带确认提交的 human_input_form_filled(表单过期时则是 human_input_form_timeout),随后像从未暂停过一样,继续输出其余节点事件直至完成。如需先重放已执行节点的状态,可附带 include_state_snapshot=true。若工作流串联了多个人工介入节点,流默认会在每次暂停时关闭;传入 continue_on_pause=true 可让同一条流跨越所有暂停保持连接。提交方式要求
人工介入 API 仅支持通过人工介入节点的 WebApp 提交方式投递的表单。仅通过邮件投递的表单不会向 API 暴露form_token。
示例:表单提交
本示例的表单包含一个feedback 段落输入,以及 approve / reject 两个操作。