AIToday
大規模言語モデルAIコーディングZenn AI/ML掲載日時: 2026年10月15日 10:00

AIエージェントの完了報告を実行ログで検証、半数で不一致

LINEで送る
AIエージェントの完了報告を実行ログで検証、半数で不一致

3つのポイント

  1. 何が起きたか

    構成はTask、Agent、ExecutionLogger、Verifierの4層で、6タスクのデモ実行はVERIFIED 3/6(50%)、UNVERIFIED 2/6(33%)、MISMATCH 1/6(17%)を返した。

  2. なぜ重要か

    完了報告は自己採点のため、証拠と突き合わせて初めて不一致が表面化する。誤った対象に書き込むエージェントを混ぜたチームは、誤実行タスクを未検証タスクとして扱っている可能性がある。

わからないところ、AIに聞けます

質問と回答はこのページに公開されます。

こういう要約が、毎朝あなたのメールに届きます。

背景と解説

著者が出発点にした問題は、エージェントをタスクの束で動かす誰にとっても馴染み深いものだ。エージェントはツール結果を一度も確認しないままバッチを完了と宣言でき、ループの外側では何も止められない。設計上の答えは、判定ロジックをエージェントの外に置くことだ。VerifierはTask仕様、エージェントのCompletionReport、ExecutionLoggerの記録の3つを比較する。

著者の最初の試みは完了報告のテキストをVerifierに渡し、その中に対象パスを探すものだった。これはエージェント自身の文にたまたま正しいパスが含まれるかを見るだけで、捏造されたパスも同様に満たしてしまうため、採用しなかった。判定をTask仕様と実行ログに絞ったことが、システムを自己採点から遠ざけた。ログは各実行前に消去され、古いエントリが誤一致を起こさないようにしている。

3分割は2つ目の行き詰まりから生まれた。検証済みと未検証だけでは、エージェントが実際には書き込むが対象が1文字ずれているwrong_targetケースが「証拠なし」に落ち、実態を表さない。運用上の修正が異なるため(エージェントを疑うか、タスク仕様を疑うか)、結果はVERIFIED、UNVERIFIED、MISMATCHに分けた。集計をログ行の手読みではなく集計値として保つのは、どの種類のタスクが最も頻繁にずれるかを示すためだ。

よくある質問
エージェントの完了報告に正しい対象が書かれているかを見るだけではだめなのか。
著者は報告テキスト(claim_text)をVerifierに渡す方法を試した。これはエージェントが書いた文にたまたま正しいパスが現れたかを見るだけで、捏造されたパスも同じように通ってしまうため、報告は検証される側に移した。
単純な検証済み/未検証の二分ではなく、UNVERIFIEDとMISMATCHを分けるのはなぜか。
fake="wrong_target"のケースは1文字だけ異なる対象に書き込む。証拠があるため、UNVERIFIED(証拠なし)と呼ぶのは実態と合わない。修正の方向も異なる。エージェントの設計を疑うのか、タスク仕様と対象の書き方を疑うのか。
ロガーは実際に何を保存するのか。
ExecutionLoggerは実際に呼び出されたツールごとにexecution_log.jsonlへ1行を追記し、task_id、tool、target、detail、timestampを保持する。実行前にログを消去し、前回実行の残存証拠が誤検知を引き起こさないようにする。
LINEで送る

あなたの仕事に関係するAIニュースを、毎朝お届けします。

業界と使っているAIツールを選ぶと、仕事に関係するニュースが毎朝届きます。

登録無料・Googleアカウントなら30秒・いつでも解除できますAITodayについて →

AIに質問

この記事についてわからないことをAIに質問できます。AIはこの記事・AIToday の過去記事・Wikipedia を読み、出典を付けて答えます。Q&Aはこのページに公開され、他の読者も読めます。

質問と回答はこのページに公開されます。

関連記事

次の記事へWordCraft、Word代替目指し0.6.1へ