ワークフローアシスタント
ワークフローアシスタントは、AI-School の高度な AI アシスタントの形態です。構造が固定された自由対話の代わりに、ユーザーは AI によって指示された定義済みの一連のステップを進行します。これにより、初めから終わりまでの完全なレッスンのような、複雑で多段階のプロセスを自動化できます。
ワークフローアシスタントとは?
ワークフローアシスタントは、矢印(edges)で接続されたノード(nodes)からなる視覚的ワークフローで構成されます。各ノードは以下のような特定のタスクを実行します:
- 開始 / 終了 — ワークフローの開始点と終了点
- 評価 — コンテキストを分析し、構造化された情報を記憶に保存
- 条件 — 式を評価し、フローを正しい方向へ送る
- LLM — 特定のタスクのために言語モデルを呼び出す(任意: ユーザー入力を待機)
- 承認 — はい/いいえの質問をして、回答に基づいてフローを進める
- サブエージェント - 同じタスクを複数のアイテムに対して並列に実行、例: 各生徒の採点ラウンド
ワークフローは毎ステップ後に自動で状態を保存します。ユーザーが入力を提供すると、ワークフローは正確に前回の場所から再開します。
ワークフローアシスタントの作成
Assistenten → Nieuwe assistent へ進み、タイプを Workflow assistent を選択します。空のキャンバスから始めるか、事前設定されたプリセットのいずれかを選ぶことができます。
ワークフローアシスタントは、通常のアシスタントと同じようにグループや同僚と共有できます。同僚と共有すると、AI-School は受信者にワークフローアシスタントが利用可能になったことを知らせるメール通知を自動送信できます。
一般設定
ワークフローの作成または編集時には、設定パネルを通じて一般設定を行います。これらの設定はワークフロー全体に適用されます。
- Model: 全ステップで使用される AI モデル。ワークフロー全体で1つのモデルを選択します。
- Tools: ワークフローで利用可能なツール(例: 記録、SLO 検索、インターネット検索)を選択。有効化したツールは全ての LLM ステップで使用可能で、ステップごとに無効化することも可能です。
- MCP servers: ワークフロー内で利用可能な外部接続。
- Documents: LLM ステップが参照できるファイル。
- Images: LLM ステップが利用できる画像。
チャット中にユーザーが自分でファイルや画像を追加できるかどうかも設定できます。
ワークフローフォームのファイル
ワークフローはユーザーにファイルの提供を求めることがあり、例: テスト、採点モデル、提出物。ファイル質問の際、ユーザーは以下を行えます:
- 新しいファイルをアップロード
- ファイル管理から既存のファイルを選択
- 各質問ごとにどのファイルがどのセクションに対応するかを決定
新規ファイルはまず処理されます。処理が完了して初めて、ワークフローは信頼性を持って続行できます。必須ファイルの質問がまだ進行中か失敗している場合、ユーザーは待つかファイルを再選択/再アップロードする必要があります。
ワークフローフォーム経由で追加されたファイルは、そのチャットのアシスタントファイルとして利用可能になります。通常のチャットファイルとして自動的に選択されることはありません。
ステップ別設定
各LLM ステップで、グローバルに有効化されているツール、ファイル、画像をその特定のステップでオフにすることができます。これにより、どのツールがどのステップで利用可能かを正確に制御できます。ステップごとに、既にグローバルで有効化されていないものを追加することはできません。

ほとんどのユーザーにとって、プリセットが最善の出発点です。後で自分のニーズに合わせてプリセットを調整できます。
例: レッスンアシスタント
Les assistent は教育向けに特別設計された、すぐに使えるプリセットです。学習トピックとレベルの決定、学習目標と説明、練習問題、そして締めくくりの要約まで、完全なレッスンを最初から最後までユーザーと共に導きます。
ワークフローの概要
レッスンアシスタントは、以下のノード順のステップで構成されます:
ステップごとの解説
1. Start
ユーザーがチャットを開き、最初のメッセージを送信するとワークフローが開始します。
2. Triage: レッスン主題 (evalueer-node)
何をするか?
AI はユーザーのメッセージを分析し、次を決定します:
- 主題 — レッスンは何についてか?(例:「てこ法則」)
- レベル — 基礎、普通、上級のどれか?
- 十分な情報? — 学習目標を直接作成するのに十分な文脈があるか?
この結果はワークフローのメモリに保存されます。
3. 十分な情報? (条件ノード)
十分な情報がある場合は、ワークフローは直接 学習目標の作成 に進みます。
情報が不足している場合は、情報収集 に進みます。
4. 情報収集 (LLM-ノード、入力待ち)
何をするか?
AI は主題と希望するレベルを特定するために、ユーザーに対して的を絞った質問をします。ユーザーが回答したら、フローは再度Triage: レッスン主題へ戻り、再評価します。
対話例:
🤖 「来てくれてありがとう!適切にサポートするため、短い質問をいくつかします: 1. どの主題についてレッスンを望みますか? 2. レベルはどれですか? (基礎 / 普通 / 上級)」
👤 「havo 3 自然科学、てこ法則」
この回答の後、トライアージョを再評価し、十分な_info = true を決定します。
5. 学習目標の作成 (LLM-ノード)
何をするか?
AI は指定された主題とレベルに対して、最大4〜5個の具体的で測定可能な学習目標を番号付きリストとして作成します。
出力例:
*「Hefboomwet – havo 3(普通)」の学習目標:
- ヒュームのてこ法則を式で表し、式 F₁ × r₁ = F₂ × r₂ を説明できる。
- 未知の力やアームの長さを決定する計算を行える。
- 実践的な例(はさみ、運搬車、ブランコ)にててこ法則を適用できる。
- 第1種・第2種・第3種のてこ法の違いを説明できる。
6. 学習目標の承認 (承認ノード)
何をするか?
AI は作成された学習目標が適切か、授業を始めてよいかをユーザーに尋ねます。
- はい → 授業へ進む
- いいえ → 学習目標の作成へ戻り、再設定
ユーザーはチャットの展開メニューから学習目標を閲覧できます。
7. トライアージョ: 学習目標 (evalueer-node)
何をするか?
各レッスンサイクル後、AI はユーザーがすべての学習目標を理解しているかを確認します。厳密な評価で、各学習目標をきちんと理解したことを示す必要があります。
8. すべての学習目標を理解? (条件ノード)
- はい → 練習エージェントへ
- いいえ → 次の学習目標のために レッスンエージェント へ
9. レッスンエージェント (LLM-ノード、入力待ち)
何をするか?
AI は、設定された学習目標に基づき、段階的に主題についてレッスンを提供します。各セクションの後に理解を問う質問をします。ユーザーが学習目標を理解したと示すと、レッスンは続行します。
ユーザーの入力後、フローは再びTriage: 学習目標へ戻り、進捗を評価します。
例:
🤖 「学習目標1: てこ法則から始めます。てこは支点の周りで回転する剛性な棒です。必要な力は支点からの距離に依存します。式は:
F₁ × r₁ = F₂ × r₂
r₁ と r₂ がこの式で何を意味するか説明できますか?」
10. 練習問題エージェント (LLM-ノード、入力待ち)
何をするか?
AI は各学習目標につき最低1問の練習問題を出します。ユーザーが回答すると、フローはフィードバックエージェントへ進みます。
11. フィードバックエージェント (LLM-ノード、入力待ち)
何をするか?
AI は作成した練習問題に対して、詳細で個別のフィードバックを提供します。学習目標ごとに、うまくいった点と改善点を分かりやすく、誠実かつ励みになるトーンで述べます。
12. 終了? (承認ノード)
AI はユーザーが終了するか、追加で練習したいかを尋ねます。
- はい → サマリー
- いいえ → 練習エージェントへ戻り、新たなラウンド
13. サマリー (LLM-ノード)
何をするか?
AI は扱われた全ての学習内容の明確なサマリーと、パフォーマンスに対する個人的で意欲を高めるフィードバックを提供します。
14. 終了
ワークフローは、励ましの言葉で締めくくられます。
「今回のレッスンお疲れ様でした。次回も頑張りましょう!」
全体の会話例
以下は、レッスンアシスタントについての簡略化した例です。主題は「てこ法則、Havo 3」です。
| 誰 | メッセージ |
|---|---|
| 👤 ユーザー | こんにちは |
| 🤖 レッスンアシスタント | 来てくれて嬉しいです!レッスンの主題とレベルは何ですか? |
| 👤 ユーザー | havo 3 自然科学、てこ法則 |
| 🤖 レッスンアシスタント | 完璧です!4つの学習目標を作成しました。これらの目標でレッスンを開始しますか? |
| 👤 ユーザー | はい |
| 🤖 レッスンアシスタント | 学習目標1から始めます:てこ法則。(説明 + 理解質問) |
| 👤 ユーザー | (理解質問への回答) |
| 🤖 レッスンアシスタント | 次の学習目標のレッスンを進めます(学習目標2, 3, 4 …) |
| 🤖 レッスンアシスタント | すべての学習目標を完了しました!練習に移ります... |
| 👤 ユーザー | (練習問題への回答) |
| 🤖 レッスンアシスタント | (個人的なフィードバック)終了しますか、それともさらに練習しますか? |
| 👤 ユーザー | 終了 |
| 🤖 レッスンアシスタント | (サマリー + 励みの言葉) |
進捗の確認
ワークフローアシスタントと会話をしているときは、チャット入力の右側にあるWorkflow ボタンから進捗を確認できます。このボタンをクリックすると、以下を含むパネルが開きます:
- ワークフローの全ステップ(条件ノードとメモノードは表示されません)
- 各ステップの状態:
- ⬜ 待機: まだ到達していない
- 🔄 アクティブ: 現在実行中
- ✅ 完了: 正常完了
- ⏸️ 入力待ち: ユーザーの反応待ち
- ⏭️ スキップ: 実行されていない(例: 条件による)
- ❌ エラー: エラーが発生
三段階ノードの作成
評価ノード(triage ノード)は、対話から情報を抽出し、ワークフローのメモリに保存します。条件ノードはこの値を読み取り、フローを正しい方向へ送ります。
設定方法
- ワークフローに 評価 ノードを追加。
- AI が分析すべき内容を示す システムプロンプトを作成。
- 出力スキーマを次のフィールドで定義:
- フィールド名: 後で値を取り出すキー(例:
十分な_info,level,route)。 - 型:
string(文字列)、number(数値)、boolean(はい/いいえ)、enum(固定値からの選択)。enumの場合は許容値をカンマ区切りで指定。
- フィールド名: 後で値を取り出すキー(例:
- ノードの最大反復回数を設定して、無限ループを防ぐ。
メモリ値
保存された値は、条件ノードの前置詞 state. を介して参照できます。例: state.十分な_info または state.level。
条件ノードの設定
条件ノードは、ワークフローのメモリに基づく式を評価し、フローを次の正しいノードへ分岐させます。
分岐
条件ノードには、以下の“分岐”があります:
- If(条件): 最初に評価される条件
- Else-if(それ以外なら): 追加の条件
- Else(その他): 条件がいずれも満たされない場合のデフォルトルート
式の記述
式は CEL(Common Expression Language) で記述します:
| 希望する挙動 | 式 |
|---|---|
フィールドが true | state.十分な_info == true |
| フィールドに固定値がある | state.level == "上級" |
| 数値比較 | state.score > 7 |
| 複数条件 | state.level == "基礎" && state.score < 5 |
接続の設定
条件ノードから、各ブランチに対して別々の接続を作成し、適切な次ノードへ向けてください。エディタはブランチごとにノードの出入口を表示します。
サブエージェントノードの使用
サブエージェントノードは、同じ方法で複数回実行するタスクに用いられます。ノードはワークフローのメモリからアイテムのリストを取得し、各アイテムに対して独立したコンテキストで実行を開始します。
実用的な用途:
- 生徒ごとにテストを採点
- ドキュメントごとに分析を行う
- 記入済みフォームごとに要約を作成
- 各セクションごとに個別のレポートを作成
設定方法
- 事前の評価ノードがアイテムのリストをワークフローのメモリに保存していることを確認(例:
生徒リスト)。 - サブエージェント ノードを追加。
- アイテムのソースを設定。
- 進捗を識別するためのラベルフィールドを設定することも可能。
- 並列実行の最大数を設定。
- 結果を保存するメモリキーを指定。
サブエージェントのコンテキストには、常に現在処理中のアイテムのみが含まれます。現在のアイテムを明示的に参照するよう促し、AI が複数アイテムを同時に処理しないようにします。
ワークフローでの固定化(Vastlegging)
Vastlegging-tool(固定化ツール) は、ワークフロー内で特に有用です。AI が途中経過や最終結果を、サイドパネル内の編集可能な文書として自動保存します。
設定
- ワークフローの一般設定から 固定化ツール をオンにします。
- 希望する LLM ステップの systeemprompt に、特定の内容を固定化する指示を追加します。そのステップでツールを有効化する(グローバルに有効のままでも可)。
例
学習目標ステップの systeemprompt に以下を記述できます:
「指定された主題とレベルの学習目標を作成します。その後、すぐに「学習目標」というタイトルで Vastlegging-Tool を使用して固定化します。」
ユーザーはチャットのツールバーにある Vastlegging-ボタン(📄)から固定化された文書を確認できます。
会話の復元
レッスンの途中で過去のポイントに戻りたい場合は、前のメッセージの横にある 復元ボタン(履歴アイコン)を使用します。これにより、それ以降の全てのメッセージが削除され、正確な moment からワークフローを再開します。
復元は不可逆です — 削除されたメッセージは元に戻せません。
ワークフローの編集
管理者は既存のワークフローを開いて ワークフローエディタ で編集できます。ノードをクリックして設定を変更したり、右クリックメニューから新しいノードを追加したり、他のノードへ結合をドラッグします。
新しい完全なワークフローを作成する場合は、空のキャンバスから始めるか、別のプリセットを選択してください。
パススルーノード
パススルーノード は AI タスクを実行せず、表示される出力も生成しません。ワークフローを次のステップへ渡すだけです。たとえば、あるルートがステップをスキップしたあとメインルートに戻る場合など、ルートを整理して接続するために使います。
パススルーノードには、少なくとも 1 つの入力接続と 1 つの出力接続が必要です。ワークフロー進行パネルでは、独立した内容ステップとしては表示されません。