AIを使った処理を組むとき、全部AIに任せるか、決まった手順とAI任せの段を混ぜるかで安定性が変わります。
6段の処理で測ったところ、全部AI任せだと同じ結果が出るのは38.2%でした。AI任せを1段に減らすと84.3%まで戻ります。
6段の処理を5,000回ずつ実行しました。全部AI任せで38.2%、1段だけなら84.3%が同じ結果になります。
LangGraphが掲げる「決まった手順とAI任せを混ぜる」という設計が、どれだけ効くのかを実際に回して測りました。題材は6段の処理です。
試行は本当に実行しています。ただし「AI任せの段は同じ入力でも85%でしか同じ出力にならない」という前提は置いた値です。乱数は固定の種から作っているので、何度実行しても同じ結果になります。
const STEPS = 6;
const RUNS = 5000;
// AI任せの段は、同じ入力でも 85% の確率で同じ出力になるものとする
const SAME_RATE = 0.85;
// n段をAI任せにしたグラフを1回実行し、既定の出力と同じになったかを返す
function runOnce(n) {
for (let i = 0; i < STEPS; i++) {
const agentic = i < n;
if (agentic && rand() > SAME_RATE) return false; // その段でぶれた
}
return true;
}
AI任せの段数 決まった手順の段数 出力が一致した割合
0段 6段 100.0%
1段 5段 84.3%
2段 4段 73.2%
3段 3段 61.9%
6段 0段 38.2%
4段目で失敗したときに、やり直す段数
構成 やり直す段数 再開できるか
途中の状態を残さない 6段 不可
各段の結果を記録する 3段 可
落ち方が急でした。1段増やすごとに0.85倍ですから、6段すべてを任せると38.2%まで落ちます。
この数字が、決まった手順と混ぜる設計の根拠になります。決まった手順で書ける段を1つ減らすたびに、全体の安定性が0.85倍ずつ削られるということです。
LangChainの説明でも、手で書いた決まった処理と、AIに判断させる処理を1つのグラフの中で組み合わせることが利点として挙げられています。信頼性が要る箇所は決まった手順で、柔軟さが要る箇所はAIで、という使い分けです。
もうひとつの数字が再開です。4段目で失敗したとき、状態を残していなければ6段すべてをやり直します。各段の結果を記録していれば3段で済みます。
LangChainも、失敗をまたいで動き続け、長時間の実行にも耐え、止まったところから再開できるエージェントを作れる点を挙げています。
先に計画を立てて再開できるようにする考え方はPlan-and-Executeの記事で、決まった手順だけで組む構成は決定的ワークフローの記事で扱っています。
AI任せの段を減らすほど、全体の結果は安定する。
Combine hand-coded, deterministic logic with LLM-driven decision-making in a single graph.原文Docs by LangChain「LangGraph overview」 この内容の有効期限2027-02-18
処理を段に分けてつなぐ土台です。プロンプトや構成そのものは抱え込まず、実行の面倒を見ます。
LangGraphは、処理を段に分け、段のつながりと状態の受け渡しを扱う基盤です。段のことをノード、つながりのことをエッジと呼びます。
説明では、長時間動く、状態を持つ処理やエージェントのための低い層の基盤を提供するものだとされています。
同じ文書では、プロンプトや構成そのものは抽象化しないとも書かれています。何をどう指示するかは、こちらが書くという分担になります。
3番目は実務で効きます。人の承認を挟む設計はHITLの記事で扱っています。
名前が似ているので誤解されやすい点です。LangChainを作った会社が開発しているが、LangChainなしでも使えると明記されています。
使ってみて感じたのは、道具より先に、処理を段に分ける作業のほうが効くということでした。段に分けてみると、決まった手順で書ける段が思ったより多いと分かります。前の節の数字でいえば、そこを1段でも増やすほど全体が安定します。
LangGraph provides low-level supporting infrastructure for any long-running, stateful workflow or agent.原文Docs by LangChain「LangGraph overview」 この内容の有効期限2027-02-18
長く動く処理か、途中で止まって再開したい処理です。数段で終わる処理には土台が重すぎます。
LangGraphを導入するかどうかは、処理が長く動くか、途中で止まりうるかで決まります。
4番目に注意してください。段が1つか2つの処理に土台を入れると、覚えることが増えるだけです。
採用の判断で気になるのが、どこまで縛られるかです。この道具はLangChainなしでも使えると明記されており、プロンプトの書き方も抱え込みません。
とはいえ状態の持ち方と段のつなぎ方は、この道具の形に合わせることになります。移すときに書き直す範囲はそこです。
導入の前に、同じ入力で複数回動かして結果が一致する割合を測ってください。前の節のような数字が出れば、どの段を決まった手順に寄せるべきかが見えます。
測り方はシミュレーション評価の記事で扱っています。ばらつきを多数決で吸収する方法は自己整合性の記事にありますが、1回あたりの正解率が低い場合は逆効果になります。
段が少なく状態も持たないなら、土台を入れる意味は薄い。
LangGraph is built by LangChain Inc, the creators of LangChain, but can be used without LangChain.原文Docs by LangChain「LangGraph overview」 この内容の有効期限2027-02-18
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る