# Flowise Iteration 教程：逐人读取可用时段生成志愿者岗位分工表

本次实际运行：Python标准库参考程序、业务边界检查与HTML渲染。未安装或运行Flowise，未调用模型、创建真实自动化、发送消息、建第三方PR或部署。人工基准和错误样稿均明确标注。

## 文件

input.json：原创输入；node-fields.json：字段教材，不能直接当平台导出文件导入；prompt.md：任务约束；schema.json：规范化观察结构；reference.py：本站手写参考；reference-output.json：实际本地输出；reference.html：参考产物；review-template.json：读者填写目标工具结果。

## 本地运行

```bash
python3 reference.py
python3 verify.py
```

用浏览器打开reference.html。不依赖模型或第三方账户。

## 真实平台步骤

1. 识别同名与无可用时段
读取volunteers.csv，V01和V02都叫小林，但时段与技能不同。V05无可用时段，V06没有已核实技能，两个都不能从结果中消失。

2. 在Start初始化完整状态
Flowise3.1.4新建Agentflow V2；Start选择Chat Input，Flow State声明volunteers与results。把六人数组传入volunteers，未声明的状态键不要临时猜名字。

3. 配置Iteration数组入口
添加Iteration，Array Input指向{{ $flow.state.volunteers }}。把处理单人的LLM放入Iteration边界内，检查它拿到的是当前元素，不是整张表重复六次。

4. 让LLM返回可对齐的结构
按schema.json要求volunteer_id、candidate_job_ids和reason。提示词禁止把同名者合并，禁止生成不存在的岗位；LLM输出后用确定性规则再检查时间和技能。

5. 汇总后保留全部六人
在Iteration后读取聚合结果，逐人检查ID唯一和数量6。没有候选岗位要输出空数组及原因，不能只收集模型认为“成功”的人员。

6. 用人工约束表核对建议
打开reference.html，候选岗位由实际运行的本地约束函数得出；V01可J1/J2、V02可J3，其他冲突清楚列出。它不是Flowise执行日志，也不自动解决岗位人数冲突。

7. 记录实际模型结果与人工决定
把自己的原生输出和人工最终分工另存，保留未分配者。扩大人数前统计请求数、失败条和费用；一次六人教材不能证明生产排班效果。

## 版本与许可

Flowise3.1.4；6人只是练习样本，不能推断大规模排班效率。需工具兼容/结构化输出合适模型；循环请求数影响费用。调度约束必须另做确定性检查，不能只信文本理由。

## 来源

- https://docs.flowiseai.com/using-flowise/agentflowv2
- https://docs.flowiseai.com/getting-started

## 验收边界

6个虚构志愿者含ID、可用时段、技能、不能安排的岗位。Iteration每人输出可安排岗位与原因，后续汇总成候选分工表；保留每人ID，不能给不可用时段安排工作，技能不足标待培训，人员冲突交人工确认。验收6入6出、重复姓名不同ID不合并、无可用岗位者仍保留。

目标产品实跑时保存原生输出，不得把本包人工/手写参考改名冒充模型返回。所有人物、订单与规则均为虚构练习数据。

渲染说明：input.html、operation.html、reference.html和figures是随当前原创输入冻结的实际浏览器预览；修改输入后重新运行会更新reference-output.json，静态HTML不会自动重绘。目标软件原生结果请另存。
