AIを使った処理を、画面上で部品をつないで組み立てられる基盤があります。コードを書かずに試せるのが利点です。
ただし条件分岐が増えると画面が膨らみます。条件を5個並べたところ、画面のノードは63個になりました。1つ足すごとに32個増える計算です。
両方の表現を実際に組み立てて数えました。条件5個で画面のノードは63個、コードは9行です。
Difyのように画面で組む基盤で、条件分岐が増えたときに何が起きるのかを数えました。題材は注文の振り分けに使う条件です。
ノード数も行数も、実際に両方の表現を組み立てて数えています。組み立て方はコードに書いてあり、そこを変えれば結果も変わります。
// 画面に置く形: 条件を1つずつ分岐ノードにして、組み合わせを枝で表す
function buildNodes(n) {
// 深さ n の二分木。分岐ノードは 2^n - 1、末端(結果ノード)は 2^n
return { branch: Math.pow(2, n) - 1, leaf: Math.pow(2, n) };
}
// コードで書く形: 条件を式にして、結果は表で持つ
function buildCode(n) {
const lines = ['const flags = {'];
for (let i = 0; i < n; i++) lines.push(` c${i}: check${i}(order),`);
lines.push('};');
lines.push('const key = Object.values(flags).map(Number).join("");');
lines.push('return ROUTES[key] ?? DEFAULT_ROUTE;');
return { lines: lines.length, table: Math.pow(2, n) };
}
条件数 画面の分岐ノード 画面の結果ノード 画面の合計 コードの行数 表の行数 1個 1個 2個 3個 5行 2行 2個 3個 4個 7個 6行 4行 3個 7個 8個 15個 7行 8行 4個 15個 16個 31個 8行 16行 5個 31個 32個 63個 9行 32行 条件を1つ足したときに増える量 条件数の変化 画面のノード増加 コードの行数増加 1個 → 2個 4個 1行 2個 → 3個 8個 1行 3個 → 4個 16個 1行 4個 → 5個 32個 1行
増え方が違います。画面のノードは1つ足すごとに倍近く増え、コードは1行ずつです。
条件が3個までなら、画面のノードは15個です。1画面に収まり、目で追えます。
画面で組む利点はここにあります。処理の流れが見た目で分かるので、書いた人以外も追えます。
ところが5個で63個です。1つ足すたびに32個増えるので、6個目では127個になります。
この規模になると、見た目で分かるという利点が消えます。画面を追うより、条件を書き出して表にしたほうが速くなります。
公平に見ておくと、コードで書く形でも結果を持つ表は32行まで増えます。組み合わせの数そのものは減りません。
違うのは、増えるのが表の行だけという点です。処理の骨組みは9行のままで、条件を1つ足しても1行しか増えません。
条件が3個までなら画面で追える。5個で63個は追えない。
Workflow : Build and test powerful AI workflows on a visual canvas, leveraging all the following features and beyond.原文langgenius/dify README この内容の有効期限2027-02-18
AIを使うアプリを画面上で組み立てる基盤です。処理の組み立てから記録まで、ひととおり揃っています。
Difyは、AIを使うアプリを作るための公開された基盤です。画面上で部品をつないで処理を組み立てられます。
READMEでは、処理の組み立て、検索を組み合わせた仕組み、エージェントの機能、モデルの管理、動きを記録して見る機能などが1つの画面にまとまっているとされています。
試作から本番まで素早く進める、という位置づけです。組み立ての部分については、目に見える画布の上で処理を作って試せると説明されています。
モデルは多くの提供元に対応しているとされています。差し替えを共通の口で吸収する考え方はLangChainの記事でも扱っており、そちらでは変更箇所が5か所から1か所になりました。
画面で組む基盤では、この吸収があらかじめ済んでいる形になります。
使ってみて感じたのは、「見た目で分かる」が成り立つのは画面に収まるあいだだけということでした。前の節の63個は、もう見て分かる状態ではありません。ノード数を定期的に数えて、増えてきたら切り出す判断が要ります。
条件が3個までなら画面で組めます。それを超えたら、判定をひとまとまりに切り出してください。
Difyで画面に組む範囲は、条件分岐がいくつあるかで決めます。前の節の数字が、その目安になります。
条件3個で15個のノードなら、画面で追えます。4個で31個、5個で63個。この間のどこかで、見て分かる状態ではなくなります。
どこで線を引くかは見る人によりますが、増え方が倍々である以上、線を越えるのはあっという間です。
条件が多い場合、組み合わせを全部画面に並べる必要はありません。判定をひとまとまりの部品にして、画面には結果を受け取る部分だけを置く形が取れます。
こうすると、画面の見通しを保ったまま条件を増やせます。手順が決まっている処理を確実に回す考え方は決定的ワークフローの記事で扱っています。
READMEでは、動きを記録して見る機能が最初から含まれているとされています。画面で組む場合でも、何が起きたかを追える手段は要ります。
むしろ画面で組むほうが、どこを通ったかを後から追う必要が出ます。記録の設計はエージェント可観測性の記事で扱っています。
条件が倍々で増える以上、切り出す判断は早めに要る。
Its intuitive interface combines AI workflow, RAG pipeline, agent capabilities, model management, observability features (including Opik , Langfuse , and Arize Phoenix ) and more, letting you quickly go from prototype to production.原文langgenius/dify README この内容の有効期限2027-02-18
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る