
NocoBase AI 员工节点审批机制完全指南通知、批准、修改与拒绝【免费下载链接】nocobaseNocoBase is an open-source AI no-code platform for building business systems fast. Instead of generating everything from scratch, AI works on top of production-proven infrastructure and a WYSIWYG no-code interface, so you get both speed and reliability.项目地址: https://gitcode.com/GitHub_Trending/no/nocobase在 NocoBase 中当工作流里的 AI 员工节点输出完内容后可以接入节点审批环节由人工审核人把关后再让工作流继续流转。本文基于当前仓库中的官方文档 节点审批 与 AI 员工节点结合 plugin-ai 与 plugin-flow-engine 的源码实现系统讲解审批通知从哪来、审批卡片长什么样、Approve / Revise / Reject 三种操作分别做什么以及背后的任务状态机与数据模型。读完本文你将能完整掌握 AI 员工节点的审批闭环并能结合源码理解其底层原理。前置概念什么时候会触发节点审批节点审批并不是一个独立可添加的节点类型而是 AI 员工节点自身的一个可选环节。在配置 AI 员工节点时反馈与通知一栏中的审批设置决定了节点是否需要人工审核共三种模式见 AI 员工节点配置No requiredAI 输出内容不需要人工审核AI 结束输出后工作流自动继续流转Human decisionAI 输出内容必须通知审核人进行人工审核人工审核后工作流才继续流转AI decision由 AI 决定是否通知审核人对输出内容进行人工审核。如果审批模式不是No required则必须为节点配置一个或多个审核人。当 AI 员工节点中的 AI 输出完所有内容后会给该节点配置的所有审核人发送通知只需要被通知的审核人中的一人完成审批操作工作流即可继续流转。这一设计在源码中有明确的常量定义位于 constants.tsexport const REQUIRES_APPROVAL { NO_REQUIRED: no_required, AI_DECISION: ai_decision, HUMAN_DECISION: human_decision, } as const;由此可见前端三种审批模式与后端存储值一一对应no_required、ai_decision、human_decision该值会被写入工作流任务的requiresApproval字段。通知审批人如何感知待审批任务主页红点提示工作流中的 AI 员工节点被触发后节点中配置的审批人可以在主页的 AI 员工入口看到红点提示提示有新的待审批事项需要处理。红点提示对应的底层数据是审核人-任务的关联关系。在 ai-workflow-tasks.ts 中可以看到任务与用户通过多对多关联建立联系{ type: belongsToMany, name: users, target: users, foreignKey: aiWorkflowTaskId, otherKey: userId, through: usersAiWorkflowTasks, }每个被通知的审核人都会在usersAiWorkflowTasks关联表中有一条记录其中携带read标记是否已读。服务端读取任务详情时会把read一并返回见 aiWorkflowTasks.ts前端据此渲染未读 → 红点的提示状态。会话列表中的待审批任务进入 AI 员工会话列表可以看到标记为待审批的工作流任务。点击任务即可进入对应的会话窗口。在服务端任务列表中任务的展示信息来源于aiWorkflowTasks集合其核心字段包括见 ai-workflow-tasks.ts字段类型说明workflowTitlestring工作流标题nodeTitlestring节点标题requiresApprovalstring审批模式no_required/ai_decision/human_decisionstatusstring任务状态见下文状态机acceptedUserIdbigInt接收该任务的审核人用户 IDsessionIduuid对应的 AI 会话 IDmessageIduuid关联的消息 IDjobIdsnowflakeId工作流 Job IDexecutionIdsnowflakeId工作流执行 IDnodeIdsnowflakeId节点 IDworkflowIdsnowflakeId工作流 ID其中sessionId与jobId均带有唯一约束保证一个审批任务唯一对应一个 AI 会话与一个工作流执行。审批进入会话查看 AI 输出点击工作流任务打开会话窗口窗口内展示 AI 员工的历史消息AI 员工最后发送的卡片就是当前节点需要审批的内容。这张卡片在前端由 WorkflowTaskOutputCard.tsx 渲染卡片标题以-分隔展示工作流标题与节点标题卡片内容按照节点配置的结构化输出 Schema 逐字段渲染 AI 生成的结果字符串、数字、布尔值直接展示Markdown 渲染对象类型则按 JSON 格式化展示。卡片顶部提供的操作区即原文档所述的三种操作Approve批准、Revise修改、Reject拒绝。在源码中对应三个动作标识const [action, setAction] useStateapprove | reject | revise | null(null);同时按钮是否可点击受到严格约束见 WorkflowTaskOutputCard.tsxconst disabled toolCall.invokeStatus ! interrupted || Boolean(action) || readonly;也就是说只有当工具调用处于interrupted等待人工介入状态、尚未选择操作、且会话未进入只读时按钮才可点击一旦做出选择或会话变为只读操作按钮即被禁用防止重复审批。三种操作详解Approve批准点击 Approve表示批准使用 AI 生成的内容工作流继续流转。审批完成后会话变成只读状态不可以继续和 AI 员工对话。从状态机的角度看Approve 意味着任务从待审批进入已批准。任务的全部状态定义在 constants.tsexport const AI_WORKFLOW_TASK_STATUS { PROCESSING: processing, PENDING_ACCEPTANCE: pending_acceptance, PENDING_APPROVAL: pending_approval, APPROVED: approved, REJECTED: rejected, ABORTED: aborted, } as const;一个完整任务的典型流转为processing → pending_acceptance → pending_approval → approved批准继续流转 ↘ rejected拒绝停止流转其中pending_acceptance → pending_approval的转换发生在审核人接收任务时。服务端accept动作会校验当前用户是否属于该任务的通知审核人并将status更新为pending_approval、写入acceptedUserId见 aiWorkflowTasks.ts。由于任务要求一人完成审批即可acceptedUserId采用先到先得的原子更新语义只有当acceptedUserId仍为空且状态为pending_acceptance时才允许接收避免多个审核人同时抢单。Revise修改点击 Revise向 AI 提出修改意见发送后 AI 会回复一张新的审批卡片进入新一轮的审批循环。此时会话保持可交互状态AI 会根据修改意见重新生成输出等待再次审批。从交互设计看Revise 是三种操作中唯一允许继续对话的路径——它没有直接终结任务而是把控制权交还给 AI让内容迭代到满足审核要求为止。这与 Approve / Reject 之后会话变成只读的行为形成鲜明对比。Reject拒绝点击 Reject表示拒绝执行 AI 生成的内容工作流停止流转。会话变成只读状态不可以继续和 AI 员工对话。服务端reject动作会将任务状态置为rejected同时将对应工作流 Job 的状态置为JOB_STATUS.REJECTED从而中断工作流的后续节点执行见 aiWorkflowTasks.ts。与accept类似reject同样校验任务必须处于pending_approval且acceptedUserId为当前用户确保只有接收了任务的审核人才能执行拒绝操作。只读状态审批后的会话保护无论 Approve 还是 Reject审批完成后会话都会进入只读状态用户不能再继续与 AI 员工对话。这一约束在前端与服务端都有保障前端chatBoxModel.readonly为 true 时审批卡片按钮禁用见 WorkflowTaskOutputCard.tsx发送消息的入口同样被关闭服务端任务详情接口返回readonly字段其判定逻辑为task.status ! pending_approval || task.acceptedUserId ! userId见 aiWorkflowTasks.ts即任务不在待审批状态、或当前用户不是任务接收人时一律视为只读。这套前端按钮禁用 服务端状态判定的双重保护确保了已终结的审批任务不会被事后篡改或继续对话。小结NocoBase 的 AI 员工节点审批机制可以概括为一条完整闭环配置在 AI 员工节点中设置审批模式No required/Human decision/AI decision非免审模式下配置一个或多个审核人通知AI 输出完成后任务进入待审批状态所有审核人在 AI 员工入口看到红点提示并可在会话列表中找到对应任务审批进入会话查看 AI 生成的审批卡片执行 Approve批准继续流转、Revise提出意见让 AI 重新生成或 Reject拒绝并终止工作流收尾批准或拒绝后会话进入只读状态防止后续修改。这一机制使得AI 自动产出 人工关键把关的分工得以落地AI 负责批量生成内容与结构化输出人在节点层面掌控最终决策权适用于内容审核、业务单据审批、AI 生成结果人工确认等需要人机协同的生产场景。更深入的细节可继续查阅 AI 员工节点配置文档 以及 plugin-ai 中的 任务状态常量、任务集合定义 和 任务资源实现 等源码文件。【免费下载链接】nocobaseNocoBase is an open-source AI no-code platform for building business systems fast. Instead of generating everything from scratch, AI works on top of production-proven infrastructure and a WYSIWYG no-code interface, so you get both speed and reliability.项目地址: https://gitcode.com/GitHub_Trending/no/nocobase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考