AIエージェント・ストラテジスト › Web参考書 › 第4章

ワークフロー設計 変数と条件分岐:If/Else、ルーティング、フィルタリング、フォールバック

第4章 自動化レベルとワークフロー設計 / 節 3

シラバスのキーワード: 変数条件分岐If/ElseルーティングフィルタリングエラーハンドリングフォールバックHuman-in-the-Loop粒度

本文を読んだあと、覚えているか確認してください。

全部の案件に同じ対応をすると、何が起きるか

問い合わせメールに AI が一律で同じ丁寧な長文を返したとします。簡単な質問をした人には長すぎ、クレームを送った人には他人事に見え、法人の大口顧客には担当者から直接返事が欲しかった、となります。顧客の性質に合わない成果物が届くと、信頼を損ないます。だからワークフローには「状況に応じて処理を変える」仕組みが要ります。それが条件分岐で、その判断材料を持っているのが変数です。

変数:名前の付いた箱

変数は、ワークフローの中でデータを一時的に入れておく「名前付きの箱」です。中に入れるデータの出どころは3つあります。

  1. トリガーで受け取った情報: フォームの入力値、メールの送信者。
  2. 外部システムから取得した情報: CRM の顧客属性、在庫数。
  3. 前のアクションの出力結果: AI が分類したカテゴリ、計算した合計金額。

条件分岐は、この箱の中身を見て「次にどこへ進むか」を決めます。

条件分岐の3種類:見分け方は「何方向か」と「通すか遮るか」

種類 何をするか 使う場面
If/Else 二択の分岐 金額が10万円以上か未満か。最も基本で、2択ならまずこれ
ルーティング 3方向以上への振り分け 問い合わせを「請求」「技術」「解約」「その他」の4種類のテンプレートに振り分ける
フィルタリング 通過か遮断かの選別 条件を満たすデータだけを後続に通し、それ以外を除外する

ルーティングは If/Else を入れ子にしても表現できますが、方向が増えるほど複雑になるので、多方向を一箇所でまとめて管理できるルーティングの方が見通しがよくなります。フィルタリングは、処理すべきでないデータを早い段階で除外して、後続の負荷を抑える役割です。

まとめると、2択なら If/Else、3方向以上ならルーティング、通過・遮断ならフィルタリング。試験では「4種類のテンプレートへの振り分け/金額基準での2択/条件を満たすデータのみ通過」の3つを振り分ける問題が出ます。

エラーハンドリングとフォールバック:止まらない設計

外部の API が応答しない、想定外の値が入ってくる、AI の出力が期待と違う形式で返ってくる。ワークフローを本番で動かすと、必ず起きます。エラーハンドリングはこれへの備えで、仕組みとしては If/Else の応用です。「正常に処理できたか」の二択で分岐し、異常ならフォールバック(代替手段)を実行します。

フォールバックの基本は、ワークフロー全体を止めず、業務が完全には止まらない状態を維持することです。たとえば CRM への登録 API が失敗したら、担当者に通知して、手で入力できるフォームを提供する。これなら案件は失われず、担当者が1件だけ手作業すれば済みます。

試験では「API コール失敗時の処理として最も効果的なもの」として、担当者への通知と手動入力フォームの提供、というフォールバックが正解になります。「失敗したら全体を停止する」「失敗を無視して次に進む」は誤りです。

エラーハンドリングは Human-in-the-Loop の設計と直結しています。人に戻すパスを明示的に設計することは、ガバナンスの観点からも欠かせません。完全自動化を目指しながらも、異常時に人が介入できる経路を残しておくことが、安全な運用の条件です。

設計判断:どの変数で、どの粒度で分けるか

分岐で最も重要な判断は 「どの変数で、どの粒度で分岐させるか」 です。

品質と保守性のバランスが取れるのは、成否に最も影響する変数に絞って設計することです。問い合わせ対応なら「顧客区分(法人・個人)」と「内容カテゴリ」の2つで分ければ十分で、「送信時刻」や「メールの長さ」まで分岐に使う必要はありません。

試験で問われる観点

この節の練習問題(3問)

答えを見る前に選んでから開いてください。同じ問題は章別演習でランダム出題されます。

  1. 問1
    次の3つの処理を、条件分岐の種類(If/Else・ルーティング・フィルタリング)に分類した組み合わせとして正しいものはどれか。(ア) 顧客の業種に応じて4種類の提案書テンプレートのいずれかに振り分ける。(イ) 見積金額が100万円以上なら上長承認を挟み、未満ならそのまま送付する。(ウ) 受信したメールのうち、案件に関するものだけを後続の処理に通し、それ以外は除外する。
    1. 1(ア) ルーティング、(イ) If/Else、(ウ) フィルタリング
    2. 2(ア) If/Else、(イ) フィルタリング、(ウ) ルーティング
    3. 3(ア) フィルタリング、(イ) ルーティング、(ウ) If/Else
    4. 4(ア) ルーティング、(イ) フィルタリング、(ウ) If/Else
    答えと解説

    正解: 1

    条件分岐は「何方向に分けるか」と「通すか遮るか」で見分けます。2択の分岐はIf/Else、3方向以上への振り分けは一箇所でまとめて管理できるルーティング、条件を満たすデータだけを通過させて後続の負荷を抑えるのがフィルタリングです。金額基準の2択は最も基本的なIf/Else、4種類への振り分けはルーティング、通過・遮断の選別はフィルタリングです。

  2. 問2
    提案書生成ワークフローで、CRMから顧客情報を取得するAPIコールが失敗することがある。失敗時の処理として最も効果的なものはどれか。
    1. 1一度でも失敗した時点でワークフロー自体を無効化し、以後はすべての案件を手作業に戻して、原因が判明するまで自動化を再開しない
    2. 2失敗を検知したらワークフロー全体を停止せず、担当者に通知して手動で情報を入力できるフォームを提供し、業務を継続できるようにする
    3. 3失敗はまれなので特別な処理は用意せず、失敗した案件はワークフローを停止させたまま放置し、次回の定期実行で自動的に再処理されるのを待つ
    4. 4失敗したら顧客情報を空欄のまま提案書を生成して顧客に送付し、後から担当者が気づいた時点で修正版を送り直す運用にする
    答えと解説

    正解: 2

    エラーハンドリングはIf/Elseの応用で、「正常に処理できたか」の二択で分岐し、異常系ではフォールバック(代替手段)を実行します。担当者への通知と手動入力の経路を用意すれば、業務が完全には止まらない状態を維持できます。人間に戻すパスを明示的に設計することはHuman-in-the-Loopの設計と直結し、ガバナンスの観点からも欠かせません。停止したまま放置する、不完全な成果物を送付する、全案件を手作業に戻す対応は適切ではありません。

  3. 問3
    ワークフローの条件分岐の設計思想として、最も適切なものはどれか。
    1. 1分岐は設計を複雑にするため一切設けず、すべての案件を同じ処理で扱って再現性を最優先にする
    2. 2分岐に使う変数はトリガーで受け取った情報に限定し、外部システムから取得した情報や前のアクションの出力は使わない
    3. 3成果物の成否に最も影響する変数に絞って分岐させ、過度に細かい分岐は保守性を下げるため避ける
    4. 4顧客や案件の属性ごとに考えられるすべての組み合わせで分岐させ、あらゆる状況に個別対応できるようにする
    答えと解説

    正解: 3

    変数はトリガーで受け取った情報、外部システムから取得した情報、前のアクションの出力結果を保持する名前付きの箱で、条件分岐の判断材料になります。最も重要なのは「どの変数で、どの粒度で分岐させるか」で、細かく分岐させすぎるとメンテナンスが大変になり、一切分岐しないと顧客の性質に合わない成果物が届いて信頼を損ないます。成否に最も影響する変数に絞るのが品質と保守性のバランスです。