Visualize and compare runs in AgentKernelArena#
2026-07-15
2 min read time
AgentKernelArena ships the src.visualization module for comparing experiment
run reports. Reports identify the agent, target GPU, and run timestamp;
model/provider provenance is not currently a dashboard field. This topic covers
how to build the dashboard data and serve it.
What the dashboard reads#
The dashboard scans for report directories that contain:
overall_summary.csvtask_type_breakdown.jsonoverall_report.txt
By default, it scans only visualization-specific report bundles:
.visualization/reports/<report_name>/
Workspace-run reports, which are usually located at
workspace_<gpu>_<agent>/run_<timestamp>/reports/, can also be scanned, but this
is opt-in.
Build the dashboard data and serve it#
After a normal AgentKernelArena run, reports land in
workspace_<gpu>_<agent>/run_<timestamp>/reports/. Pass
--include-workspace-runs so the module picks them up. Run the following from
the AgentKernelArena repository root:
python3 -m src.visualization build --include-workspace-runs
python3 -m src.visualization serve --host 127.0.0.1 --port 8080
Then open:
http://127.0.0.1:8080
Without this flag, the module only scans .visualization/reports/, which is
empty by default, and the dashboard shows no data.
To build and serve with one command, run:
python3 -m src.visualization run \
--include-workspace-runs \
--host 127.0.0.1 \
--port 8080
The equivalent convenience target is make visualization-run.
Serve on port 80#
Port 80 usually requires elevated privileges:
sudo python3 -m src.visualization serve --host 0.0.0.0 --port 80
Rebuild after new runs#
Whenever a run produces new reports, rebuild the dashboard payload with the same flag used at first build:
python3 -m src.visualization build --include-workspace-runs
# or: make visualization-build
The dashboard picks up newly discovered report directories on the next refresh.
If you placed report bundles manually in .visualization/reports/<report_name>/
instead, omit the flag:
python3 -m src.visualization build
Dashboard implementation notes#
The following details apply to the dashboard implementation:
Python code and static frontend assets live under
src/visualization/.Generated
data.jsanddata.jsonfiles are written to.visualization/dashboard/, outside the source tree.Source-file links are exposed through
/artifacts/...and/reports/...routes that only allow.csv,.json, and.txtfiles.If no reports are found yet, the dashboard still builds and shows an empty state.
Directory listings, hidden paths, and path traversal are rejected.