feat: initial Braintrust upload support for eval results - #320
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
…st-upload # Conflicts: # apps/framework/package.json # apps/framework/scripts/export-results.ts
mattrossman
marked this pull request as ready for review
September 22, 2026 21:42
Rodriguespn
approved these changes
Sep 23, 2026
Rodriguespn
left a comment
Contributor
There was a problem hiding this comment.
Thanks for putting this together. Approving to unblock you. Only one suggestion regarding the experiment names here
…st-upload # Conflicts: # apps/framework/package.json # apps/framework/scripts/export-results.ts
Collaborator
Author
|
Experiment names updated
Tracking raw transcript uploads in AI-1248. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

ℹ️ Notes on diff size
pnpm-lock.yamlfrom the newbraintrustSDK dependency.export-results.tsinto shared logicAdds an
upload-braintrustscript, carved out of #101, that turnsresults/into Braintrust experiments. Similar to the earlier #89, but it uploads raw per-run results including transcripts and omits CI changes.The initial win we get from this is being able to inspect the transcript what the agent said at each step in Braintrust's "Thread" view:
I'm starting with a single scorer
"passed"for the binary pass/fail score. Note Braintrust's SDK has precedent for an"assertions"scorer however it behaves differently since it produces a fractional score. Eventually we want to support partial credit too, however I think we have different requirements since we might want to assign different weights to each check, and we may want a concept of extra-credit checks, not just equal slices of a whole.Local usage maps to the Metrics uploaded to Braintrust:
results/Experiments are named
<experiment>@<sha7>-<timestamp>(UTC) so runs are identifiable from the experiment list, where the Source and Updated columns aren't always visible.Follow-ups planned
This PR intentionally leaves rough edges. The goal of this step was to provide a starting point for our existing data to get into Braintrust.
From here, I plan to add:
For example fixing the per-LLM step durations, making sure the "Timeline" view in Braintrust reflects the timing of each tool call, cross-linking between a PR, Run, and trace, showing tool calls in the "Thread" view.
Sample output for review
See a sample trace I've uploaded to a dev project on Braintrust: gpt-5.6-luna.
How to run manually
On Braintrust:
Settings / Generaland copy its Project ID.Settings / API keysand create one an API KeyAdd these to
.envasBRAINTRUST_PROJECT_IDandBRAINTRUST_API_KEY.Then run:
It'll produce output like
Closes AI-1239