# 配置工作流


打开已有活动，选择 **Open builder**（打开构建器）。选中画布节点打开配置面板，设置输入和后续路径；先在面板选择 **Save**（保存），再用画布工具栏的 **Save** 保存工作流。重新打开节点，核对数值和连接。

以一项小型标注工作为例，一条记录可以依次经过 **Entry Gate → Supply（label）→ Accept → Sink**。Gate 检查谁可加入，Supply 展示材料并收集标签，Accept 决定是否接受，Sink 结束已接受的路径。只有工作需要额外检查或字段处理时，才加入 validate、Consensus、Dedup、ETL 或 Agent Task。这是流程示例，仍需配置表单、验收规则并通过[发布检查](/zh/tasks/launch)。

## Entry Gate：参与条件

分别配置适用协议、Required course、资料要求和 Invite code。**System required**（平台必需）按参与者适用主体判断，作者不能移除；额外协议必须来自有已发布版本的目录。所选协议无法解析时，先修正目录绑定，并保留必要条款。

课程绑定已发布的组织课程版本。**Has finished the course**（已学完该课程）认可 passed 或 mastered；**Has mastered the course**（已掌握该课程）需要 mastered。学完课程记录的是 passed，课程编辑器里没有任何设置能产生 mastered；因此把 Gate 设为 **Has mastered the course** 时，目前没有人能通过，应选择 **Has finished the course**。若显示 **No courses published yet**（尚未发布任何课程）、版本不存在或加载失败，先发布或恢复正确课程及版本。历史通过记录的关系见[课程与版本](/zh/learning/learning)。

邀请码与注册推荐码、组织邀请不同。启用邀请码后，通过 **Generate / Copy / Regenerate / Revoke** 管理；这些操作立即生效，不等待画布保存。换码或撤码不会单独移除已兑换的准入，退出后重新加入仍需满足邀请码要求。

## Supply：人工工作

选择 [Task type](/zh/tasks/task-types)，配置工作界面、奖励和额度。

- 普通人工步骤可按每份被接受的提交设置基础报酬。
- 每人额度可以选择 No limit、Per day 或 In total；Per day 按 UTC 零点重置。
- **Items to collect**（采集条数）限制全体收集总量。正在执行或审核中的记录占用额度；被驳回或重复结果会释放相应名额。

不要用 **Concurrent tasks per user**（单人同时进行的任务数）作为已经生效的并发限制；当前该项设置尚未接入执行检查。

## validate 与 Consensus

普通 validate 选择要复核的前序人工步骤，最多配置 1–5 名审核者，一致人数不能超过最多人数。达到一致门槛即可形成结果；一致驳回也可以结束复核，无需再配置 Consensus。

普通 validate 的 Accept 使用 **Auto**（自动）。其奖励若标为 **per item, shared by whoever agreed**，表示同一条目的奖励池由符合一致结果规则的获奖者共同分配。

**Consensus** 用于比较同一对象的多份答案。选定前序步骤、最多答案数、一致门槛和必须匹配的字段。没有选比较字段时，会比较整个答案，包括自由文本；若只需类别一致，就明确选择对应字段。这与复核一份已有提交不同。

## Dedup：重复后的处理

Dedup 的每条规则设置 **Key fields**（关键字段）和比较范围。同一规则中的全部字段要匹配，多个规则命中任一条就可能判重；跨活动的组织范围还需一致的 **Canonical key**（统一键）。包含相应设置的版本部署后，可在某条规则中开启 **Send the duplicate to publisher review**（把重复提交转给发布者人工审核）：关闭时，验收阶段命中该规则会自动标为 Duplicate；开启时，提交保持待审且不结算，直到发布方决定。若同时命中自动判重规则，自动判重优先。

**Agent Task**（Agent 任务）需要组织已接入的 Agent、本活动的指令，以及所需检查或评分门槛。只把节点命名为“AI 检查”不会执行检查。工作流 Agent 的接入状态需在组织中核对；[Agent 访问说明](/zh/api/agent-access)另述程序取数。

## Accept：验收

| Audit mode | 工作到达前要配置 | 到达后核对 |
| --- | --- | --- |
| Auto | 在前序路径安排所需复核或共识 | 使用已有结果，不会凭空增加审核 |
| Manual | 设置最低评分，并安排有权限的审核者 | 保持待审直到人工决定；到 **Reviews**（审核）核对 |
| Automated checks | 选择字段、检查方式或 Agent、失败处理和评分门槛 | 核对各项检查与最终评分 |
| Scripted | 选择已有 **Acceptance check**（验收检查）或使用 **Write a check**（编写检查），设置评分门槛 | 没有选定检查会失败，不会静默接受 |

需要最低接受评分时，配置范围为 1–5。Manual 的已有提交保留开始时的门槛；修改门槛不会重写旧结果。

## ETL 与 Sink：交付

Accept 的接受分支直接连接 **Sink**（落库），或先经 **ETL**（字段转换节点）整理字段再连接 Sink。Sink 是路径末端。JSON / CSV 是 Sink 的输出配置；文件获取要另查交付方式。

API 获取还需满足交付、订阅和授权条件，见[任务产出与数据交付](/zh/data/delivery)。保存工作流后，进入 **2 Test & Launch** 完成[发布检查](/zh/tasks/launch)。

## 其他节点，以及为什么有些是灰色

| 节点 | 用途 |
| --- | --- |
| **Data Source**（数据来源） | 引入平台上已有的数据：新建的节点默认选中 **CSV**，请改选 **Marketplace**（数据市场）。目前没有任何程序读取 **CSV**、**File batch**（文件批量）和 **Webhook**（Webhook 推送），所以它们的路径输入框不可用，已保存的路径也不会带入条目。需要导入 CSV 时，联系 [hello@humanbased.ai](mailto:hello@humanbased.ai) |
| **Code**（代码） | 对每个条目运行自定义 Python 转换。节点面板中已不再提供 Code，只有已经包含 Code 步骤的已保存流程才会显示它 |
| **Routes**（流向） | 分支、循环或抽样 |
| **Agent Task**（智能体任务） | 运行平台智能体检查，按结论把条目送往下游 |

节点面板中有些条目是带锁的灰色，每一项都写明原因和解锁条件。**Labeling**（标注）和 **Validate**（校验）没有自己的执行程序：改用 **Supply**（采集）节点，并选择 `label` 或 `validate` 任务类型。**Evaluate**（评估）还没有执行程序，上线前保持锁定。**Transform**（转换）、**De-identify**（去标识）和 **Policy Gate**（策略门）可以运行，但尚未通过内部验收，验收前保持锁定。

## 检查失败时回到哪里

| 现象 | 回到 |
| --- | --- |
| Contributor 无法加入 | **Entry Gate**（准入门）：协议、课程及版本和可达结果、资料规则、活动邀请码 |
| 人工步骤没有表单 | **Supply**（采集）：Task type、模板绑定和 Preview；普通 validate 核对前序来源 |
| 复核迟迟无法形成结果 | validate 或 Consensus：来源、最多人数、一致门槛和比较字段 |
| 一直待审 | **Accept**（采纳）：模式、待处理审核者、所选检查及失败结果 |
| 已接受但没有预期交付 | 接受分支至 **ETL**（如有）和 **Sink**；再查[交付与访问](/zh/data/delivery) |

修正节点后，分别保存面板和画布，重新打开核对保存值，再运行 **Dry-run**（试跑）。保存后继续试运行，检查通过后再发布。
