Portable eval results: an EvalPort adapter for AgentLab's GAIA/OSWorld tasks + ExpResult traces #338
adhabnr-ux
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Hi — I'm Sahi, an independent contributor working on EvalPort, a small open interchange format for LLM/agent eval data (
TestCase/Graderin,Result/ResultSet/GraderResultout — plain dataclasses + JSON Schema, Python + TS SDKs). Posting here rather than opening a PR because this is a "does the mapping make sense" question before I write any code against your internals.Not affiliated with ServiceNow/AgentLab — just think the fit is close enough to be worth a converter.
Why AgentLab specifically: unlike most agent frameworks, AgentLab already produces a lazily-loaded, tabular result format (
load_result_df/ExpResult.get_exp_record()inanalyze/inspect_results.py) and a full step-level trace format (theTape/tape.jsonmodel inanalyze/tapes.py). That's unusually close to EvalPort's own split between aResultSet(run-level rollup) and per-Resultgrader_results— most of the adapters I've written so far have to synthesize one of those two levels from nothing.Concrete mapping I'd propose
Input side — GAIA task →
TestCase(using the real field names frombenchmarks/gaia.py):Output side —
ExpResult→Result/GraderResult, oneResultSetper study:For the trace side,
tapes.py'sTape.metadata.reward/.task/.errorand the step-levelkind(*_action/*_thought/*_observation) map cleanly intoResult.metadata/GraderResult.metadataif you want step-level detail preserved rather than collapsed to a single pass/fail — happy to sketch that direction too if there's interest, since it's whatagent_xray/episode_to_htmlalready render.Open questions before I'd actually build this:
cum_reward >= 1.0the rightpassedthreshold across all benchmarks, or does e.g. WorkArena L2/L3 use partial credit where that's wrong?agentlab-openeval-adapterpackage (same pattern as the CrewAI adapter — works against your publicExpResult/Tapeshapes from the outside, no changes needed on your side), or is there appetite for a thinagentlab.analyze.openeval_exportmodule in-tree? I lean toward standalone given the [WARNING] in your README about scope, but wanted to ask rather than assume.Genuinely just want to know if this is useful before spending time on it — GAIA + OSWorld would be my first two targets since they already have clean scalar rewards.
— Sahi, independent contributor (not affiliated with this project)
All reactions