工作流助手
工作流助手是 AI-School 中一种高级的 AI 助手形式。与没有固定结构的自由对话不同,用户会在 AI 的引导下依次完成一系列既定步骤。这使得自动化复杂的多步骤流程成为可能,例如从头到尾完成一整节课。
什么是工作流助手?
工作流助手由通过箭头(edges)连接的可视化工作流节点(nodes)组成。每个节点执行特定任务,例如:
- 开始 / 结束 — 工作流的起点和终点
- 评估 — 分析上下文并将结构化信息存入记忆
- 条件 — 评估表达式并将流程引向正确方向
- LLM — 调用语言模型执行特定任务(可选:等待用户输入)
- 批准 — 提出是/否问题,并根据答案推进流程
- 连接 — 在没有 AI 任务或可见输出的情况下连接路径,便于保持工作流清晰
- 子代理 - 对多个项目并行执行相同任务,例如在每轮批改中按每位学生处理
工作流会在每一步后自动保存其状态。当用户输入时,工作流会准确从中断处继续。
创建工作流助手
打开 助手 并选择 工作流助手 选项卡。在顶部卡片中点击 新建工作流,然后选择 使用 AI 创建或编辑工作流、空白工作流、n8n 工作流 或某个预设。在 快速开始 下,你可以直接启动一个预设,或选择 作为模板使用。
你也可以将现有助手转换为工作流:在助手卡片菜单中选择 以工作流打开。这会生成一个新的、未共享的草稿;原始助手会继续保留。发布前请先检查并测试建议的步骤。
与普通助手一样,工作流助手也可以与群组和同事共享,也可以在编辑器中通过工具栏里的 共享 按钮进行共享。共享给同事时,AI-School 可以自动发送电子邮件通知,让接收者知道该工作流助手已可用。
启动 n8n 工作流
除了 AI 驱动的工作流助手,AI-School 还可以通过 webhook 启动 n8n 工作流。n8n 工作流不会打开聊天:如果没有字段,会直接调用 webhook;如果有字段,会先打开一个表单。管理员可通过 助手 → 工作流助手 → 新建工作流 → n8n 工作流 来创建。
完整说明请参阅 n8n workflows 页面。
常规设置
在创建或编辑工作流时,可通过设置面板配置常规设置。这些设置适用于整个工作流:
- 模型:所有步骤使用的 AI 模型。整个工作流只选择一个模型。
- 工具:工作流中可用的工具(例如:Vastlegging、SLO 搜索、Internet 搜索)。已启用的工具对所有 LLM 步骤可用,除非你在单个步骤中将其关闭。
- MCP servers:工作流中可用的外部连接。
- 文档:LLM 步骤可以查阅的文件。
- 图片:LLM 步骤可以使用的图片。
你还可以设置用户在聊天过程中是否可以自行添加文件或图片。
工作流表单中的文件
工作流可以要求用户提供文件,例如试卷、批改标准或学生提交的作业。在这种文件请求中,用户可以:
- 上传新文件
- 从文件管理中选择已有文件
- 按问题决定哪个文件对应哪个部分
新文件会先被处理。只有处理完成后,工作流才能可靠继续。如果必填文件仍在处理中或处理失败,用户必须等待,或重新选择/上传文件。
通过工作流表单添加的文件会作为该聊天的助手文件可用。它们不会自动作为普通聊天文件被选中。
每步设置
在每个 LLM 步骤中,你可以将全局启用的工具、文件和图片对该特定步骤进行关闭。这让你能精确控制哪些工具可在何处使用。你不能在步骤级别添加任何尚未全局启用的内容。

对大多数用户来说,预设是最好的起点。之后你可以根据自己的需要进行调整。
示例:课程助手
课程助手 是一个为教育场景专门设计的现成预设。它会从头到尾引导用户完成一整节课:从确定主题和水平,到学习目标和讲解,再到练习和总结。
工作流概览
课程助手由以下步骤(节点)组成,顺序如下:
逐步说明
1. 开始
当用户打开聊天并发送第一条消息时,工作流就会启动。
2. 分诊:课程主题 (评估节点)
它做什么? AI 分析用户消息,并尝试确定:
- 主题 — 课程讲什么?(例如“杠杆定律”)
- 水平 — 初级、中级还是高级?
- 信息足够吗? — 是否已有足够上下文可直接制定学习目标?
结果会存储到工作流记忆中。
3. 信息足够吗? (条件节点)
如果信息足够(voldoende_info = true),工作流会直接进入 制定学习目标。
如果信息不足,工作流会进入 收集信息。
4. 收集信息 (LLM 节点,等待输入)
它做什么? AI 会向用户提出定向问题,以了解主题和期望水平。用户回答后,流程会返回到 分诊:课程主题 重新评估。
对话示例:
🤖 “很高兴你来了!为了更好地帮助你,我先问几个简短问题: 1. 你想要一节关于什么主题的课? 2. 你的水平是什么?(初级 / 中级 / 高级)”
👤 “havo 3 natuurkunde, hefboomwet”
回答后,分诊会重新评估并确定:voldoende_info = true。
5. 制定学习目标 (LLM 节点)
它做什么? AI 会为给定主题和水平制定一个编号列表,最多 4 到 5 个具体、可衡量的学习目标。
示例输出:
关于 杠杆定律 – havo 3(中级) 的学习目标:
- 你可以表述杠杆定律并解释公式 F₁ × r₁ = F₂ × r₂。
- 你可以进行计算,求出未知力或力臂长度。
- 你可以将杠杆定律应用于实际例子(剪刀、独轮车、跷跷板)。
- 你可以解释第一类、第二类和第三类杠杆的区别。
6. 批准学习目标 (批准节点)
它做什么? AI 会询问用户这些学习目标是否合适,以及是否可以开始课程。
- 是 → 继续进入课程
- 否 → 返回 制定学习目标 重新表述学习目标
用户可以通过聊天中的可展开菜单查看这些学习目标。
7. 分诊:学习目标 (评估节点)
它做什么? 在每轮课程结束后,AI 会检查用户是否掌握了所有学习目标。这是严格评估:用户必须能明确证明自己理解每个学习目标。
8. 所有学习目标都已理解? (条件节点)
- 是 → 进入 练习代理
- 否 → 进入 课程代理 处理下一个学习目标
9. 课程代理 (LLM 节点,等待输入)
它做什么? AI 会根据已制定的学习目标,逐步讲解该主题。每讲完一个部分,AI 都会提出一个理解问题。只有当用户证明自己理解了该学习目标后,课程才会继续。
用户输入后,流程会返回到 分诊:学习目标 以评估进度。
示例:
🤖 “我们先从学习目标 1 开始:杠杆定律。杠杆是一根围绕支点转动的刚性杆。你所需要的力取决于到支点的距离。公式是:
F₁ × r₁ = F₂ × r₂
你能解释一下这个公式中的 r₁ 和 r₂ 吗?”
10. 练习代理 (LLM 节点,等待输入)
它做什么? AI 会针对每个学习目标至少出一道练习题。用户回答后,流程进入 反馈代理。
11. 反馈代理 (LLM 节点,等待输入)
它做什么? AI 会对已完成的练习给出详细、个性化的反馈。针对每个学习目标,都会说明哪些做得好、哪些还有提升空间。语气要诚实但鼓励。
12. 结束? (批准节点)
AI 会询问用户是否要结束,还是继续额外练习。
- 是 → 进入 总结
- 否 → 返回 练习代理 进行新一轮
13. 总结 (LLM 节点)
它做什么? AI 会清晰总结所有已讲解的内容,并在此基础上给出个性化、激励性的表现反馈。
14. 结束
工作流以一条鼓励性的结束语收尾。
“这节课你表现得很好,我们下次再见!”
完整示例对话
下面是一个围绕 杠杆定律,havo 3 的课程助手精简示例对话:
| 谁 | 消息 |
|---|---|
| 👤 用户 | 你好 |
| 🤖 课程助手 | 很高兴你来了!你想要一节关于什么主题的课,什么水平? |
| 👤 用户 | havo 3 natuurkunde, hefboomwet |
| 🤖 课程助手 | 太好了!我已经制定了 4 个学习目标。你想用这些学习目标开始课程吗? |
| 👤 用户 | 是 |
| 🤖 课程助手 | 我们从学习目标 1 开始:杠杆定律。(讲解 + 理解问题) |
| 👤 用户 | (对理解问题的回答) |
| 🤖 课程助手 | (继续讲解学习目标 2、3、4 ...) |
| 🤖 课程助手 | 你已经完成了所有学习目标!现在进入练习…… |
| 👤 用户 | (回答练习题) |
| 🤖 课程助手 | (个性化反馈) 你想结束还是继续练习? |
| 👤 用户 | 结束 |
| 🤖 课程助手 | (总结 + 激励性结束语) |
查看进度
当你与工作流助手对话时,可以通过聊天输入框右侧的 工作流按钮 查看进度。点击该按钮会打开一个面板,其中包含:
- 工作流的所有步骤(条件节点和注释节点不显示)
- 每个步骤的状态:
- ⬜ 等待:尚未到达
- 🔄 活动中:当前正在执行
- ✅ 完成:已成功完成
- ⏸️ 等待输入:正在等待用户回应
- ⏭️ 已跳过:未执行(例如由于条件判断)
- ❌ 错误:发生了错误
创建分诊节点
评估节点(分诊节点)会从对话中提取信息并将其存入工作流记忆。条件节点随后可以读取这些值,并将流程引向正确方向。
配置
- 向工作流添加一个 评估 节点。
- 编写一条 系统提示词,描述 AI 应该分析什么以及应得出哪些结论。
- 定义输出模式,字段包括:
- 字段名:用于之后检索该值的键(例如
voldoende_info、niveau、route)。 - 类型:
string(文本)、number(数字)、boolean(是/否)或enum(从固定值中选择)。对于enum,请用逗号分隔列出允许的值。
- 字段名:用于之后检索该值的键(例如
- 设置最大迭代次数,以防节点无限运行。
记忆值
保存的值可在条件节点中通过前缀 state. 访问,例如 state.voldoende_info 或 state.niveau。
设置条件节点
条件节点会根据工作流记忆评估表达式,并将流程发送到正确的下一步。
分支
条件节点有一个或多个分支:
- 如果(if):首先评估的条件。
- 否则如果(else-if):可选的附加条件。
- 否则(else):若没有任何条件匹配,则采用的默认路径。
编写表达式
表达式使用 CEL(Common Expression Language) 编写:
| 期望行为 | 表达式 |
|---|---|
字段为 true | state.voldoende_info == true |
| 字段具有固定值 | state.niveau == "gevorderd" |
| 数值比较 | state.score > 7 |
| 多个条件 | state.niveau == "basis" && state.score < 5 |
设置连接
从条件节点为每个分支绘制单独的连接到相应的下一节点。编辑器会为节点上的每个分支显示独立出口。
使用连接节点
连接节点本身不执行 AI 任务。它只会将工作流传递到下一步。当你需要将多个路径整合得更清晰,或者在流程图中需要一个技术性中间步骤时,请使用该节点。
实际示例:
- 将跳过脚本的路径连接到选择图片的步骤
- 让多个审批路径汇聚到同一个后续步骤
- 在不使用注释节点作为连接点的情况下,让长工作流在视觉上更易读
连接节点必须至少有一个入站连接和一个出站连接。该节点不会作为工作流进度中的单独内容步骤显示。
使用子代理节点
子代理节点用于需要以相同方式多次执行的任务。该节点从工作流记忆中获取项目列表,并针对每个项目启动一次独立执行,且上下文相互隔离。
实际应用:
- 按学生批改试卷
- 按文档进行分析
- 为每个填写好的表单生成摘要
- 按部分记录各自的报告
配置
- 确保前面的评估节点已将项目列表保存到工作流记忆中,例如
leerlingen_json。 - 添加一个 子代理 节点。
- 设置项目来源。
- 如有需要,设置标签字段,以便识别进度。
- 设置最大并行执行数。
- 指定结果应保存到哪个记忆键下。
子代理上下文始终只包含当前正在处理的项目。因此,提示词应明确指向当前项目,并避免 AI 同时处理多个项目。
在工作流中进行记录
Vastlegging 工具 在工作流中尤其有用。它可以让 AI 自动将中间结果或最终结果保存为侧边栏中的可编辑文档。
设置
- 在工作流的常规设置中启用 Vastlegging 工具。
- 在目标 LLM 步骤的系统提示词中加入一条指令,要求记录特定内容。并为该步骤开启该工具(或保持全局开启)。
示例
在学习目标步骤中,你可以在系统提示词中写:
“针对给定主题和水平制定学习目标。随后使用 Vastlegging 工具立即将这些学习目标记录下来,标题为‘学习目标’。”
用户可以通过聊天工具栏中的 Vastlegging 按钮(📄)查看已记录的文档。
恢复对话
如果你在课程中间想回到对话的较早位置,可以通过某条较早消息旁边的 恢复按钮(历史图标)来实现。这会删除该位置之后的所有消息,并从那个精确时刻继续工作流。
恢复是不可逆的——被删除的消息将不再可用。
编辑工作流
作为管理员,你可以在 工作流编辑器 中打开并调整现有工作流。点击节点可修改配置,通过右键菜单添加新节点,或将连接拖到其他节点上。
若要创建全新的工作流,可以从空白画布或其他预设开始。
使用 AI 创建或编辑工作流
与 AI 讨论你的工作流。有效的更改会显示在编辑器中。保存或发布前,请检查并测试结果。