なぜAIエージェントの成果物を「そのまま使ってはいけない」のか

AIエージェントの出力に問題が生じるとき、大きく二つの原因があります。

一つ目は、事実と異なる内容を生成する問題です。AIは確率的に次の語を予測する仕組みで動いているため、それらしく聞こえる内容であっても、実際の数値や固有名詞が誤っているケースがあります。これはいわゆるハルシネーションと呼ばれる現象です。

二つ目は、手順の逸脱です。「この順番でやってください」と指示しても、エージェントが独自の判断で工程を省いたり、順序を入れ替えたりして進めてしまうことがあります。出力物自体は一見それらしく見えるため、手順の逸脱には気づきにくいのが厄介な点です。

これら二つの問題に共通する構造上の落とし穴があります。それは、「作業した本人に自己採点させる」という設計です。1体のエージェントに「タスクを実行すること」と「その結果を自分でチェックすること」を同時にやらせると、間違いを見逃しやすくなります。エージェントは自分の出力が正しいという前提のもとで次の判断を積み重ねるため、初期の誤りが後段まで伝播してしまいます。

ハルシネーションを現在の技術でゼロにすることはできません。現実解は「ゼロにしようとする」のではなく、「許容できる範囲に抑え、問題が出力の外に漏れないようにする」設計を持つことです。

作る役と確かめる役を分ける

品質を高める最も根本的な手段は、「作る役」と「確かめる役」を別にすることです。人間のチームであれば、コードを書いた人と別の人がレビューする、原稿を書いた人とは別の人が校正する、というのは当たり前の習慣です。同じ原則をAIエージェントにも適用します。

relmeaでは、ある工程の成果物を作るエージェントとは別のコンテキストで、検証専任のエージェントを動かしています。この二つは意図的に情報を分離してあります。実装側が「こうした」と言っても、検証側はその主張を無条件には信じません。検証側は自分で実際に動かして確かめ、期待される結果になっているかを独自に判定します。

「別のコンテキストで動かす」ことが要点

重要なのは「別のコンテキストで動かす」という点です。同じ会話の流れの中で「では次に自己レビューしてください」と追加依頼するだけでは不十分です。実装側の情報や前提を引き継いだ状態でのレビューは、どうしても甘くなります。検証を機能させるには、実装側が何を行ったかという文脈を持たない状態から、成果物だけを見て判断させる必要があります。

検証側が行うチェックの方向性は、おおむね次のとおりです。

  • 出力に含まれる数値・固有名詞・手順が、前提とした情報と一致しているか
  • 指定した手順や制約を飛ばしていないか
  • 動作が期待どおりであることを、主張ではなく実行して確認できるか

「エージェントが合格と言ったから正しい」ではなく、「別のエージェントが自分で確かめて合格と判定した」という違いが、品質の分かれ目になります。

機械で止める、人で止める——二段構えの品質ゲート

検証の仕組みには、自動化できるものとそうでないものがあります。この二つを混同すると、どちらも中途半端になります。

機械に任せてよい検証は、判定が一意に決まるものです。

  • 処理が完了したか、エラーで止まっていないか
  • 出力の数値が想定の範囲内に収まっているか
  • 既知のリストと照合して一致しているか
  • ビルドやテストが通るか

これらは正解が決まっているので、機械が数値や状態を見て合否を出せます。人手を介さずに次の工程へ進んでよいかを自動で判定できます。

一方、人が止める必要があるのは、判断が文脈や価値観に依存するものと、間違いが起きたときのコストが高いものです。relmeaでは、以下のような工程は必ず人の承認を経てから次に進む設計にしています。

  • 外部に公開される文章・資料
  • 金銭・契約に直接かかわる数値や文書
  • 変更を取り消せない操作(送信・削除・公開など)

この設計を Human-in-the-Loop(人が判断ループに入る)と呼ぶこともあります。「AIが全部やる」のではなく、人が止めるべき箇所に明示的に承認ゲートを置く設計です。自動チェックが通った後、人の承認ゲートを通過したものだけが次の工程へ進む——この二段構えが、エージェントへの委任と品質保証を両立させる基本構造になります。

「任せてよい仕事」と「人が残すべき仕事」の判断軸

どの仕事をエージェントに委任し、どの仕事を人が持つかは、次の三つの軸で考えると整理しやすくなります。

  • 可逆か不可逆か:やり直しがきく作業はエージェントに任せやすく、取り消せない作業は人が関与すべき度合いが高まります。下書きを作らせることと、顧客にメールを送信することでは、委任のリスクが根本的に異なります。
  • 間違いのコスト:自分の作業時間のロスで済むものと、顧客や外部への影響が出るものでは、同じミスでもダメージが大きく違います。影響が外に出る工程には、確認の層を厚くします。
  • 正解が一意か:合計を計算するような正解が決まった作業はエージェントの得意領域です。一方、「この文章のトーンはこの読者に合っているか」のように文脈と感覚が必要な判断は、現時点ではまだ人が確認する価値があります。

迷うときは、「不可逆・高コスト・正解が一意でない」の三つが重なっていないか確認してください。重なるほど人の目を入れる必要があります。逆に「可逆・低コスト・正解が一意」な作業をすべて人が抱え込んでいるとしたら、それはエージェントに委任できる余地が大きいというサインです。

金銭・契約・外部公開に直接つながる出力は、どんなに精度が高くても人の承認を残すことを原則にしています。これは「エージェントを信頼しない」という意味ではなく、「万が一のときに止める設計を持つ」という意味です。

検証コストとのバランスをどうとるか

検証の仕組みを厚くすればするほど、処理は遅くなり、コストは上がります。全工程に同じ厚さの検証を入れようとすると、エージェントを使う意味が薄れてしまいます。現実的な解は、「リスクの高さに比例して検証を厚くする」ことです。

リスクの低い工程の例としては、情報収集・下書き生成・フォーマット変換・要約などがあります。これらは出力が間違っていてもすぐに気づけて修正できるため、機械チェックのみで十分なケースが多いです。一方、数値を使った意思決定資料、外部送信する文書、取引条件の確認などのリスクの高い工程には、人の確認ゲートを必ず置きます。

もう一つ、検証コストを下げる観点で有効なのは「最初に指示の精度を上げる」ことです。曖昧な指示を与えると、エージェントは解釈の余地を自分で埋めます。後から検証で問題を潰すよりも、最初の指示で曖昧さを排除するほうが、全体のコストは下がります。検証設計と並行して、タスクの定義そのものを精緻にしていくことも品質管理の一部です。

まとめ——「任せる設計」は「疑う設計」とセットで

この記事で取り上げた考え方を整理すると、次のようになります。

  • AIエージェントの出力には、事実の誤りと手順の逸脱という二種類の問題がある
  • 作る役と確かめる役を別のコンテキストに分けることが、検証を機能させる前提になる
  • 機械で止めるゲートと人が止めるゲートを二段構えで設計する
  • 可逆か・間違いのコストが高いか・正解が一意かの三軸でリスクを評価し、委任の範囲を決める
  • 検証コストは全工程に均等にかけず、リスクに比例して傾斜をつける

「任せる設計」と「疑う設計」は矛盾しません。信頼できる状態を作るためにこそ、懐疑的な検証の仕組みが必要です。使い始めたばかりの段階では、まず委任範囲を狭く設定し、検証で問題が見つかるたびに指示か設計を改善していくのが現実的です。一度で完璧な設計を目指すより、小さく動かして修正を重ねるほうが、早く安定します。

なお、ここで前提にした「AIエージェントをチームとして組む」設計そのものについては、別のコラム「Claude Codeで業務をAIエージェントチーム化する設計の考え方」で解説しています。あわせてご覧ください。