社内でZapierやn8nを使ってAIエージェントを組んでみたはいいが、本番に出してみると3〜5ステップ目で出力がズレ始め、結局ほぼ毎回人間が確認して手直ししている、という担当者は多い。「自動化したのに、以前より手間が増えた」と感じているなら、原因はおそらくどこも同じところにある。エラーが累積していくのに、エージェント自身が気づかないからだ。
なぜ3〜5ステップ目で崩れるのか
エージェントは前のステップの出力を「正しい」と信じて次に渡す。ステップ1で「2026年4月」が「4月2026年」という形式に変換されてしまっても、そのまま次のステップに流れていく。これが積み重なると、5ステップ目に届いた時点でデータは元のものとかなり別物になっている。
人間が同じ作業をするなら、途中で「あれ、何か変だな」と気づいて立ち止まれる。エージェントにその判断はない。ひたすら前に進む。だから「おかしくなったら自分で止まれる仕組み」を、設計の段階で組み込む必要がある。これを「自己検証ループ」と呼ぶ。
ChatGPTに検証役を担わせる具体的な方法
実装はシンプルだ。処理ステップの直後に「検証専用のChatGPTステップ」を挟む。
たとえばこういう流れになる。ステップ1でデータを取得・整形し、ステップ2でChatGPTに「この出力が正しい形式かチェックして。問題があれば理由をJSON形式で返して」と送る。ステップ3でJSONのstatusがokなら次に進み、errorなら再試行、または担当者にSlackで通知して処理を止める。
ZapierならFilterステップで分岐できる。n8nならIF Nodeを使えばいい。Gumloopなら条件分岐のブロックがそのまま使える。ツールを選ばず同じ考え方で実装できる。
検証プロンプトには、期待する出力の形式とNGになる条件を具体的に書くことが重要だ。「メールアドレスが含まれているか」「文字数が50〜200文字の範囲か」「必須項目が欠けていないか」のように条件を列挙するほど、検証の精度が上がる。「おかしければ教えて」という曖昧な指示より、具体的なチェックリストを渡す方が、ChatGPTも判断しやすい。
一度設計してしまえば、あとは使い回せる。最初の手間がのちの確認作業をなくす。
本番に出せるエージェントの条件
「止まれるかどうか」が、エージェントを本番に出せるかどうかの分かれ目だ。止まれないエージェントは誤った状態のまま処理を走らせ続け、最終的に出てくる結果を全部チェックしなければならなくなる。その修正コストは、自動化で節約できる時間よりも高くなる。
自己検証ループを組み込むと、エージェントが「おかしいと気づいて止まれる」ようになる。担当者の仕事は「なぜ止まったか」を確認して次の判断をするだけに絞られる。全ステップを目視確認する必要はなくなる。
最初から完璧なエージェントは作れない。まず動くものを作り、止まった場所に検証ステップを足していく。その繰り返しで管理コストが下がっていく。止まった場所は、設計の弱点を教えてくれる手がかりでもある。本番に出せないのではなく、出せるようになるための設計が足りていなかっただけだ。
エージェントを組んで「なんか動かないな」と感じるの、すごくわかります。
「自分で止まれるかどうか」という視点は、本番運用を考えるときに見落としがちな本質的なポイントだと思います。
まず動かしてみて、止まった場所を直していけば大丈夫です。