Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】I made my agent prove every quote against the source document

2026年09月23日に「Dev.to」が公開したITニュース「I made my agent prove every quote against the source document」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

AIエージェントが、引用が元文書と一致するか厳しく検証し、AIの「幻覚」問題を解決した。自動車の公開データから、NHTSAやメーカーの矛盾する情報も全て提示する。矛盾の解決案は人間が承認することで、より信頼性の高い回答を返すシステムを開発した。

ITニュース解説

このニュース記事は、現代のAIエージェントが直面する重要な課題と、その解決策について述べている。AIエージェント、特にチャットボットのような形式のものは、時に「ハルシネーション」と呼ばれる、事実に基づかない情報を生成する問題が指摘されているが、この記事が取り上げるのはそれとは少し異なる。エージェントが実際に存在する文書から情報を引用する際、その引用が間違っていたり、引用元と内容が一致していなかったり、あるいは引用元の情報を間違って解釈したりするケースである。これは、私たちが情報源の信頼性を判断する上で非常に大きな問題となる。

この記事の著者は、この問題に対処するため「TSB Oracle」というエージェントを開発した。TSB Oracleの主な目的は、自動車の修理に関する公的な記録から質問に答え、その際に情報の食い違いや矛盾があれば、それを明確に示すことだ。一般的な検索エンジンが最適なページを提示するだけであるのに対し、チャットボットがどれか一つの情報を選んで確信的に答えてしまう傾向がある中で、TSB Oracleは全ての関連情報を網羅的に収集し、その情報の出所を明確にし、引用の正確性を検証する。

例えば、あなたの車が勝手にブレーキをかける現象について疑問を持ったとする。TSB Oracleは、その原因を示すサービス速報、その速報の改訂版、さらに多くのモデル年式を対象とした連邦政府の調査、そしてディーラーが「正常」と答えたというオーナーの証言など、あらゆる情報を収集する。これらの情報が同時に存在し、それぞれが真実である状況は珍しくない。TSB Oracleは、これらの情報を全て提示し、それぞれの情報がNHTSA(米国運輸省道路交通安全局)のどのIDから得られたものかを明記する。そして、引用された言葉が実際にその引用元文書に含まれているかをデータセットの原文と照合して確認し、もし二つの情報源があなたの特定の車に関して食い違う場合、その食い違いを曖昧に解決するのではなく、あなたの目の前に提示するのである。

このエージェントは、具体的に2017年から2022年式のHonda CR-Vにおける予期せぬ自動緊急ブレーキの問題をデータセットとして利用している。NHTSAの調査「EA24-002」が2017年から2022年を対象としている一方で、Hondaのソフトウェアアップデート「26-091」は2019年で終了し、LXトリムを除外しているという、実際の矛盾が存在する。2021年式のCR-Vオーナーは、解決策が公開されていない連邦調査の渦中にあり、記録上も新たな解決策が示されていないという状況だ。

TSB Oracleはこのような複雑な状況に対し、次のような機能を提供する。まず、事実に基づいた主張には全てNHTSAのIDを付けて公開記録にリンクさせる。次に、実際に取得できなかった引用には注意喚起として色を付ける。そして、引用された言葉は、参照元として示された文書のデータセット内のコピーと照合して検証する。さらに、矛盾する情報は、その日付と共に並べて表示し、なぜそれらが衝突するのかを平易な言葉で説明する。最終的には、矛盾の解決策を提案するが、それは人間の承認を待つ状態となる。

このシステムは、Sanityというコンテンツプラットフォームを利用して構築されている。データの種類としては、主に四つのタイプがある。tsbはサービス速報、ディーラーメッセージ、調査、オーナーからの苦情といったソース文書を表し、対象モデル年式、除外されるトリム、NHTSA記録へのリンクなどを含む。claimは、それが依拠する正確な言葉を持つ一つの主張である。contradictionは、二つのclaimが矛盾する場合にそれらを結合し、なぜ矛盾するのかを説明する。そしてdecisionは、矛盾がどのように解決されたか、誰が解決したか、そして人間がそれを承認したかどうかを記録する。

ナレッジベースは、tsbとclaimタイプから構築されている。特に重要なのは、contradictionタイプを意図的にナレッジベースから除外した点だ。もしcontradictionを含めていれば、ナレッジベースが既に解決済みの矛盾をエージェントに読み返させてしまう可能性があったため、エージェント自身が情報源から矛盾を見つけ出すように設計された。

TSB Oracleは、Sanityの標準機能だけでなく、独自のツールも使用している。check_applicabilityというツールは、GROQクエリ(Sanityのクエリ言語)を使って、提示された年式、メーカー、モデル、トリムにどの文書が適用されるか、どの矛盾が関連するか、そして解決済みかどうかを判断する。これにより、ナレッジベースだけでは答えられない、「このトリムは除外されるか」「このVINは範囲内か」「この議論は既に解決済みか」といった構造的な質問に答えられる。もう一つのrecord_decisionツールは、エージェントが提案した解決策を記録する。つまり、Sanityのナレッジベースが情報の「内容」を提供するのに対し、GROQは情報の「構造」を提供する役割を担っている。ナレッジベースは速報の内容をエージェントに伝えるが、データセットは、その速報が目の前の車に適用されるかどうかをエージェントに伝えるのだ。

このシステムを構築する過程で、ナレッジベースのビルド時にいくつかの現実的な問題が発見された。例えば、NHTSAの速報要約における専門用語の誤記や、苦情件数と車両総数の数値が誤って統合されている問題などである。これらの問題は、データソースの裏付けとなる情報に基づいて修正され、その修正は以降のすべてのビルドに反映される。

特に注目すべきは、引用の検証方法である。著者は当初、ナレッジベースのエントリが引用を裏付けられると考えていたが、それは正しくないと結論付けた。ナレッジベースのエントリは、複数の文書を一つのトピックに統合し、要約し、脚注を付けるものであるため、引用の正確性を保証するのには向かない。なぜなら、ナレッジベースのエントリには、元文書には存在しないフレーズが含まれる可能性があるからだ。そのため、TSB Oracleは引用された言葉を、データセット内の引用元文書の「原文のコピー」と照合して検証する。これにより、エージェントが速報のバージョン1を引用しながらバージョン2を引用元として示すような、誤った修理につながりかねない間違いを実際に検知することに成功した。

エージェントが解決策を提案する際、それはdecisionとして「提案済み」のステータスで記録される。人間がそれをレビューし、承認または却下することで、その矛盾が解決される。承認されると、その決定は矛盾と一貫した形で更新され、以降その車種について尋ねる人には、解決済みの答えとその根拠が提示される。これは、公開デモの性質上、一回の会話で全てのユーザーの疑問を解決してしまわないよう、人間による最終確認ステップが組み込まれていることを示している。

このニュース記事が示唆するのは、AIエージェントの能力を最大限に引き出しつつ、その信頼性を確保するためには、AIと人間の協調が不可欠であるということだ。データの構造化、矛盾の特定、そして情報の透明な提示は、システムエンジニアが将来的に直面するであろう重要な課題であり、このTSB Oracleはそのための具体的なアプローチを示している。

関連コンテンツ

関連IT用語

関連ITニュース