SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine(コードジン) ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

KubeCon + CloudNativeCon Japan 2026レポート

信頼は「測定されるもの」──Grafana Labsが検証したAIエージェント実用化までの6つの疑い

The Great Doubt: What Building an AI Agent Taught Us About Trust

 Grafana LabsがAIアシスタント「Grafana Assistant」を開発する中で直面したのは、賢さより「いつ信頼してよいか」という問題だった。トレース情報がない状態でも嘘の分析を返すハルシネーションをきっかけに、エージェント・テスト・審査するLLM・スコア・評価の枠組みそのもの、そして自分たち自身へと「疑い」を重ねていった記録を追う。同氏が取り組んだ軌跡を基に、AIエージェントを本番投入する上で本当に必要な検証プロセスを探る。

もっともらしい分析を、まるごと作り上げて答えるAIエージェント

 Grafana LabsのSenior Developer AdvocateであるNicole van der Hoeven氏は、Grafanaに特化したAIエージェント「Grafana Assistant」の開発を振り返るところから講演を始めた。

Grafana Labs Senior Developer Advocate Nicole van der Hoeven氏
Grafana Labs Senior Developer Advocate Nicole van der Hoeven氏

 「Grafana Assistant」は、Grafana上のあらゆるデータについて質問に答え、ダッシュボードを作成・管理し、本番のインシデントを調査し、GitHubへのPR作成やk6での負荷テストといったツールとも連携できる。公開データベースRAWG.ioのゲーム情報をもとに「ダッシュボードを作って」と一言頼むだけで、クエリを一切書かずにダッシュボードが出来上がる──それがAssistantの当初のビジョンだった。

Grafana Assistantのダッシュボード生成デモ
Grafana Assistantのダッシュボード生成デモ

 もっとも、Assistantは元々ハッカソン発のプロジェクトで、フロントエンドのE2Eテスト(エンドツーエンドテスト:システム全体の動作を検証するテスト)と、バックエンドは手動テストしかない状態でリリースされていた。転機になったのは、社員のWilliam Dumont氏が見つけたバグだった。Assistantにはトレーシングバックエンドである「Tempo」からトレースを取得して分析するツールがあったが、ルートスパンが欠けているケースでは、そのトレース自体がAssistantに渡すコンテキストに含まれていなかった。

 問題は、トレースがないという事実そのものではない。Assistantが、あたかもトレースを受け取ったかのように振る舞い、もっともらしい分析をまるごと作り上げて答えてしまったことだ。「トレースが見つかりません」と言ってほしいところを、Assistantは何も疑わずに嘘の分析を返した。van der Hoeven氏は「自分たちが作ったシステムを自分たちで信頼できないなら、顧客に信頼してもらえるはずがない」と、この出来事が「大いなる疑い」の始まりだったと語る。

LLM、LLM-as-judge──「二重の不確実性」がもたらす難しさ

 チームが最初に取り組んだのは「LLM Spec」という社内ベンチマーク兼評価基盤の構築だ。本番の運用会話を蒸留して作った「ゴールデンデータセット」をシナリオとして用意し、Prometheus・Loki・TempoをDocker上で動かした完全に合成された環境で、あらかじめ正解が分かっているタスクとしてAssistantに解かせる。評価の枠組みは、テストにあたる「シナリオ」、その出来を判定する「ジャッジ」(LLM-as-judgeを含む)、そして数値化した「スコア」の3要素で構成されていた。Tempoのバグも、これがあれば検出できたはずだった。

llmspecの画面。ベンチマークの合格率や実行時間、コストが表示される
llmspecの画面では、ベンチマークの合格率や実行時間、コストが表示される

 ところが、ここでも問題が見つかる。1つ目は、LLM Specがすべて緑(合格)と表示していても、個別に応答を確認すると明らかに間違っているケースがあったこと。2つ目は、同じテストを2回実行しただけで結果が変わってしまうことだった。LLMの非決定性がそのまま信頼性の測定を難しくしていた上に、判定に使うLLM-as-judge自体も非決定的だったため、これは「二重の不確実性」だったとvan der Hoeven氏は表現する。一度だけ成功したことを示せても、それは「確実にできる」ことの証明にはならない。

 そこでチームは「pass@3」(3回中1回以上成功)、「pass^3」(3回とも成功)、「0-for-3」(3回とも失敗)という新しい基準を導入した。3回とも失敗する「0-for-3」をあえて2番目に良い結果として扱うのがポイントだ。間違っているとしても、常に同じように間違っているなら対処のしようがある。本当に厄介なのは、成功したり失敗したりを繰り返す「ときどき正しい」状態だ。この基準の導入で、Assistantの挙動とテスト結果のばらつきはかなり抑えられるようになった。

次のページ
LLM-as-judgeそのものが「合格」を演出しようとしていた

この記事は参考になりましたか?

KubeCon + CloudNativeCon Japan 2026レポート連載記事一覧

もっと読む

この記事の著者

中野 佑輔(編集部)(ナカノ ユウスケ)

 金融系SIerでの勤務を経て2025年よりCodeZine編集部所属。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/29208 2026/08/07 09:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー