LangChainは、他のエージェントの問題を発見・修正するためにLangSmith Engineを構築しました。Engineはバックグラウンドで動作し、エージェントのトレースを分析して問題を特定、クラスタリング、修正します。Engineを改善する際に、変更が実際に問題発見能力を向上させているかを確実に評価するために、グラウンドトゥルースラベル付きのベンチマークが必要でした。そこで、内部向けベンチマークIssueBenchを開発しました。
IssueBenchは、Engineに求められる作業の一部に焦点を当てています。合成問題が混入されたトレースのバッチを入力として、Engineは問題の特定、障害カテゴリの割り当て、既存問題への関連付け、新規障害のグループ化を行います。これにより、チームが本番エージェントの動作をデバッグ、テスト、修正するのに役立つ一連の問題が生成されます。
トレースレベルのラベルだけでは不十分であり、全体レベルの評価が重要です。Engineが10の失敗トレースをフラグしても、同じ根本原因に対して10の別々の問題を作成すればノイズが多くなります。無関係な失敗を1つの広範な問題に統合すれば、詳細が失われます。IssueBenchは、Engineが生のトレースを有用なエンジニアリング作業に変換できるかを測定します。
IssueBenchは15のタスクで構成され、各タスクにはエージェントトレースのバッチと初期の問題セットが含まれます。一部のトレースはクリーンで、他は既知のラベル付き障害を含みます。Engineはトレースと既知の問題の説明を受け取り、トレース内の問題を発見し、妥当な方法で既存問題に関連付けます。トレースと問題は合成環境で生成され、実際のエージェント実行に近いトレースを生成しつつ、制御されたグラウンドトゥルースを提供します。
現在のスイートは、SREログ分析、ソフトウェアエンジニアリング、カスタマーサポートの3ドメインをカバーし、15の問題カテゴリに及びます。同一カテゴリを異なるエージェントタイプで実行することで、Engineがドメイン固有の表面パターンを記憶するのではなく、根本的な障害モードを学習しているかをテストします。
IssueBenchはHarbor上で実行され、各タスクはサンドボックス化され、再現可能で、隠されたグラウンドトゥルースに対してスコアリングされます。これにより、プロンプトやモデルの変更を比較しつつ、評価を実際の本番動作に近づけることができます。
問題カテゴリの固定セットには、PII漏洩、ハルシネーション、システムプロンプトのドリフト、ツールの誤り、機能ギャップ、エラー回復失敗、ツール引数の誤り、エージェントのループ、コンテキスト爆発、ガードレールバイパス、応答の切り詰め、サイレントツールエラー、計画の欠陥、タスク回避、能力認識の欠如が含まれます。明確なカテゴリ割り当ては、その後の対応を決定するため重要です。ハルシネーション、サイレントツールエラー、機能ギャップはいずれも悪いユーザー体験を生む可能性がありますが、通常は異なる修正と担当者を必要とします。
スコアリング方法は、Engineが問題を有用な方法で発見・グループ化しているかを確認します。具体的には、各トレースが問題無しまたは問題ありとして正しくラベル付けされているか、失敗トレースに正しい障害カテゴリが割り当てられているか、一致するトレースが正しい既存問題カードにアタッチされているか、新しい障害が期待される新規カードにクラスタリングされているかを評価します。一般的な障害モード(正しいトレースを検出しても問題グループを更新しない、トレースごとに1カード作成、無関係な失敗を1つの曖昧なカードに統合、既存問題コンテキストを上書き)に対しては減点します。
LangChainは内部でIssueBenchを使用し、プロンプト、モデル、トリアージ動作の変更に伴うEngineの評価を行っています。これにより、リグレッションの捕捉、曖昧な問題カテゴリのデバッグ、問題識別がまだ機能しない箇所の理解が可能になります。また、製品動作の明確化にも役立ちます。Engineがトレースを誤分類した場合、それは単なるモデルの失敗ではなく、カテゴリ境界の不明瞭さ、問題説明の不十分さ、または実際のチームのトリアージ方法と一致しないスコアリングルールを露呈することがあります。
IssueBench構築から得られた教訓として、合成データにより評価の較正が改善されること、実際のエージェントがモックツールや制約に対してステップを実行することで、現実的なトレースと信頼できるラベルの最良のトレードオフが得られること、「問題なし」クラスが失敗と同様に重要であること、理解をテストするために同一の失敗カテゴリを複数ドメインで実行することで、Engineがドメイン固有のアーティファクトではなく抽象的な失敗を認識することを確認できることなどが挙げられます。
IssueBenchは現在、内部開発ベンチマークであり、15の合成タスクを含みます。今後、より多くのエージェントタイプ、大規模なトレースバッチ、リッチな初期ボード、より詳細な問題カード品質のスコアリングへ拡張する予定です。このアプローチを共有するのは、エージェントが本番環境に導入されるにつれて、この種の評価が重要になっているためです。IssueBenchは、本番トレースを実行可能な問題に変換するEngineの能力を測定する方法を提供します。