eval — AIコーディングエージェント評価フレームワーク

AI/ML

概要

eval は「AI コーディングエージェント(プログラム生成や自動化を行うエージェント)」を、実際の問題やタスクに対して一括で実行・評価できるフレームワークです。README にある通り、手動でのテストでは気付きにくい、システムプロンプトの変更やツール差し替えによる性能低下(サイレントレグレッション)を防ぐことを狙いとしています。TypeScript で書かれた小規模なコードベースで、サンドボックス化された実行環境の下、タスクごとにパス/フェイルを判定して合格率や回帰を測定するワークフローを提供します。CI に組み込みやすく、継続的な品質保証に役立てられる点が魅力です。

GitHub

リポジトリの統計情報

  • スター数: 4
  • フォーク数: 0
  • ウォッチャー数: 4
  • コミット数: 27
  • ファイル数: 7
  • メインの言語: TypeScript

主な特徴

  • 実際のタスクを用いたエンドツーエンド評価を念頭に置くテストフレームワーク
  • エージェントを隔離されたサンドボックスで実行し、回帰を自動検出
  • TypeScript ベースで軽量に導入でき、CI パイプラインへの統合が容易
  • タスク定義やツールの追加・変更に対応する拡張性

技術的なポイント

README の導入部分とリポジトリ構成(TypeScript、src ディレクトリ、package.json など)から読み取れる技術的な要点を整理します。まず目的は「エージェントを現実的なタスクで動かし、合格率を測り、変更で発生する回帰を自動検出する」ことにあります。これを実現するために典型的に必要となる構成要素は以下の通りです(実装詳細はソースを参照してください)。

  • サンドボックス実行基盤: README では「isolated sandboxes」と明示しており、エージェントの副作用や環境汚染を防ぐための隔離が重要視されています。Node の子プロセスや一時ファイル、あるいはコンテナ化(Docker 等)を想定した設計が考えられます。これにより、ツール追加やプロンプト変更による予期せぬ影響を局所化できます。
  • タスクと期待値の定義: 各タスクは入力(課題の説明や初期ファイル)と合格条件(出力の検証ロジック)を持ち、エージェント実行後に結果をパス/フェイルで評価します。自動評価のためのアサーションや正答判定アルゴリズムが鍵になります。
  • 実行ハーネスとメトリクス収集: 複数タスクを一括で実行し、合格率や失敗ケースを集約する実行ハーネスが必要です。これにより、あるコミットやプロンプト変更時の性能比較や回帰検出が可能になります。CI 出力用の JSON やレポート生成が組み込まれていると運用が楽です。
  • 拡張性とツール統合: README に「Add a new tool → existing tasks fail in unexpected ways」とあるように、ツール(外部 API、実行ユーティリティ等)をプラグイン的に差し替えられる設計が想定されます。TypeScript のモジュール設計により、ツールラッパーやストラテジーを容易に追加できます。
  • 再現性と依存管理: package-lock.json を含むことで依存関係を固定し、再現性の高い実行環境を保つ設計になっています。小規模リポジトリであるため、導入コストは低めです。

総じて、eval は「エージェントを実世界タスクで評価するための最低限の構造(隔離→実行→検証→集計)」を意識したフレームワークで、CI に組み込んで継続的に品質を観測する運用に適しています。実際の運用では、評価用タスクの設計(代表性あるケースの網羅)、フェイル時のログ収集、外部ツールや API のモック化などが重要になります。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • README.md: file
  • package-lock.json: file
  • package.json: file
  • src: dir

…他 2 ファイル

src 配下にテストハーネスやタスク定義、サンドボックス実行ロジックが置かれている想定です。package.json を見ることで起動コマンドやスクリプト、依存ライブラリの確認が可能です。

導入のヒント

  • まずは小さな代表タスクを数件登録して、エージェントの基本動作と評価パイプラインを確認してください。
  • CI に組み込む際は、隔離環境のコスト(時間・リソース)を考慮して並列実行の設定やタイムアウトを明確に設定すると安定します。
  • 外部ツールやネットワーク呼び出しを行う場合はモック/スタブを準備して評価の決定性を高めましょう。

まとめ

エージェントの回帰検出と現実タスクでの品質管理に役立つ、軽量な TypeScript ベースのフレームワーク。

リポジトリ情報:

READMEの抜粋:

@judegao/eval

Test AI coding agents with real-world tasks in isolated sandboxes.

Why?

You just spent 3 hours testing your agent manually. It works great! But then you:

  • Update a system prompt → agent breaks on 20% of tasks
  • Switch from Opus to Haiku → silent regression in complex tasks
  • Add a new tool → existing tasks fail in unexpected ways

This framework prevents that. Run your agent against real tasks, measure pass rates, catch regressions automatically.

Quick Start

Req…