Share a W&B Weave evaluation
Weave's evaluation view is genuinely good, and it lives inside a Weights & Biases project. Every person who needs to read it needs a seat in that project — which is fine for the ML team and absurd for the one domain expert who can tell you whether answer 14 is actually wrong.
Export the evaluation rows
import weave, pandas as pd
client = weave.init("support-agent")
rows = []
for call in client.get_calls(filter={"op_names": ["Evaluation.predict_and_score"]}):
rows.append({
"input": call.inputs.get("example", {}).get("question"),
"output": (call.output or {}).get("model_output"),
**{k: v for k, v in ((call.output or {}).get("scores") or {}).items()},
})
pd.DataFrame(rows).to_html("weave-eval.html", index=False, float_format="%.3f", escape=True)
Publish the file — drag it into the app, or from the job that ran the eval:
curl -fsS -X PATCH "https://commareports.com/api/v1/reports/$REPORT_ID" \
-H "Authorization: Bearer $COMMA_API_TOKEN" \
-H "Content-Type: application/json" \
-d "$(jq -n --rawfile html weave-eval.html \
--arg title "Support agent eval — $(date +%F)" '{title: $title, html: $html}')"
What you get that a project invite does not give you
- Anchored threads — the objection lands on the row it is about. See commenting on HTML.
- Revisions — one report id per suite, one revision per run, no dashboard to build.
- Access per report — private, team-only, or domain-gated, decided per report rather than per project. See the sharing model.
Close the loop with the agent
Reviewer corrections are the highest-value training data you will get this quarter. An agent can read them back through the MCP server and fold them into the eval set — let an agent respond to comments.
Limits
- Entry HTML: 5 MB. Model outputs dominate the size; truncate them or export per scorer.
- Assets: 25 MB per file, 250 MB and 500 files per report.
- 60 requests/minute per token.
Try it
Comma is free — unlimited reports, unlimited commenters, unlimited revision history.