AI Engineer World's Fair 2026
How We Built an Agent That Improves Itself — Zubin Aysola, Weights & Biases
Slide chapters
21 slide and demo groups · Timestamps are approximate. 4 additional groups were omitted from this pass.
Read the talk
How We Built an Agent That Improves Itself
Zubin Aysola explains how Weights & Biases turns ARIA’s production traces into offline evaluation tasks, compares candidate variants with the deployed agent, and uses the results to guide its next improvement.
From a talk by Zubin Aysola
At a glance
Ideas worth remembering
Use the deployed agent as the offline baseline, and keep research code synchronized with production so experiments measure relevant behavior.
Score both task completion and relative behavior: passing a task and choosing a better interaction style answer different questions.
Turn successful production interactions into tasks alongside failures, so future changes can reinforce behavior worth keeping.
ARIA’s demonstrated self-improvement loop reproduces a production SDK error, creates a regression task, and tests a targeted prompt or skill change.
Automating task construction and evaluation leaves people responsible for deciding what improvement means and which guardrails help.
When the agent and its benchmark change together
An agent harness changes what a model can accomplish: the tools it receives, the context it sees, and the way its work is packaged all affect performance. At Weights & Biases, Zubin Aysola’s team builds ARIA to do research inside the platform. Improving that agent creates a measurement problem almost immediately. Benchmarks, evaluations, and agent configurations all change together. A higher score can reflect a better agent, a different test, or a different way of judging the result.
The useful comparison spans two environments: the deployed agent handling real requests and the offline agent working through simulations. Those simulations need to reproduce enough of production to make improvements meaningful outside the benchmark. This is the familiar simulation-to-real-world problem applied to software agents: success in a constructed environment matters only insofar as it carries into actual use.
W&B Weave connects the two sides through tracing. Offline runs record ARIA’s behavior in simulated environments; production runs log the same kinds of information in the same format. That shared representation lets a production conversation become material for an offline experiment. Once ARIA can inspect traces and run those experiments itself, it can participate in the research loop used to improve its own behavior.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
A production conversation becomes an experiment
The live demonstration begins with a project for ARIA researching itself. ARIA receives a codebase stored as a Weights & Biases artifact and a request to work against the offline evaluation framework. Its job is to inspect production traces, add tasks, run experiments, and try a new variant. The evaluations take time, so the research continues while the presentation moves on.
A second conversation gives the loop a concrete input: take a trace already logged in Weave, put it into the offline evaluations, and run both the candidate and production agents on it. The original interaction now serves two purposes. It records what happened in production, and it supplies a task on which competing versions can be compared. As the evaluations run, their traces appear in Weave too.
This is also the team’s recurring workflow: inspect production traces, evaluate changes in the offline sandbox, and work together to deploy new agent versions. Nightly CI evaluates the production configuration alongside candidate variants, providing a history of relative performance. That infrastructure needs attention of its own; Aysola notes that CI had broken and ARIA had helped fix it the previous night.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Keep the deployed agent inside the research loop
The team mostly improves prompts and skills rather than training the agent with reinforcement learning. Strong underlying models already perform useful platform tasks. The research discipline still borrows from simulation-based learning: define environments carefully, run the agent through them, inspect its trajectory, and adjust behavior against measured results.
The baseline is a byte-for-byte identical agent in production and simulation. Research and production use the same code, with a synchronization job every four hours intended to prevent the research environment from drifting away as people create new variants and skills. This removes one avoidable source of confusion: an offline improvement should be tested against the agent actually being deployed.
Evaluation commands produce scored trajectories: records of the agent’s rollout over time, accompanied by performance metrics. These give the team something more useful than a final answer alone. A person can inspect a rollout, or ARIA can review its own or another rollout, identify what went well or badly, and propose prompting changes that encourage the desired behavior.
The harness makes experimentation cheap to express. A model-agnostic software stack handles context preparation, compaction, and UI payload assembly. YAML defines different agent configurations, allowing multiple variants to run in parallel. An intuition about a better prompt or model becomes a candidate that can be compared with alternatives. The preference is straightforward: make it easy to run more experiments.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Build the environment before running the agent
ARIA’s sandbox gives it broad room to execute work. While preparing the presentation, Aysola asked it to create an environment for parallel executions of its own research loop—a capability he had not been certain it could perform. The attraction is that a general execution environment can support useful behavior that was not individually designed into a narrow tool interface.
A general sandbox still needs a repeatable evaluation setup. The pipeline begins with YAML, loads the live data required by the task, and constructs the environment. That setup can be expensive: tasks may involve full machine-learning training logs, substantial production data, or simulated GPU executions for research work. Parallelizing preparation can therefore matter before the agent even starts.
Why load configuration twice? Some runtime configuration cannot be encoded in the initial YAML specification. After creating the environment, the pipeline puts that runtime data back into the configuration, then runs the production-identical agent and scores the result. The diagram makes this dependency visible: execution waits for both the declared task and the environment’s runtime configuration.
Scoring has two distinct jobs:
- Task completion: A pass/fail judgment asks whether the agent satisfied the task.
- Relative behavior: A comparison asks which variant behaves better. For example, one variant may ask the user questions while another proceeds without asking; relative scoring helps compare those interaction styles.
The team also examines how evaluations drift from production. Identical agent code helps, but the environments and judgments still need scrutiny.
Finally, each run tears down its environment. Cleanup makes repeated parallel experiments possible without clobbering teammates’ work. The full unit of evaluation includes preparation and teardown, as well as the agent call and score.
From declared task to scored execution
Read the diagram as text
- YAML configuration. Declare the evaluation configuration.
- Hydrate and prepare. Load required live data and create the environment.
- Add runtime configuration. Put data unavailable in the initial YAML back into the configuration.
- Run the agent. Execute the same agent version used in production.
- Score the rollout. Measure task completion and compare variant behavior.
- Tear down. Allow fresh runs without interfering with teammates.
- YAML configuration → Hydrate and prepare: Load task data.
- Hydrate and prepare → Add runtime configuration: Resolve runtime configuration.
- Add runtime configuration → Run the agent: Complete configuration.
- Run the agent → Score the rollout: Evaluate results.
- Score the rollout → Tear down: Finish the run.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Test user flows, then preserve useful behavior
An evaluation task describes a starting environment, user configuration, and desired ending condition. That makes the task a user flow with an outcome, rather than a prompt considered in isolation. Two concrete forms appear in the walkthrough:
- Single-request tasks: A text instruction asks ARIA to perform work, such as the research request being converted from the live production trace.
- Simulated conversations: A language model takes a user persona and asks questions in a specified order, creating multi-turn interactions with ARIA.
The team has 886 tasks, categorized by levels and exposed to the product team for review. Product judgment helps determine whether those tasks represent behavior worth measuring. Repeated runs then produce trajectories that can be examined across production and offline environments. Aysola sees conceptual guidance as an existing strength and project error analysis as an area to improve, so the suite includes difficult tasks that push those capabilities.
Failures supply new tasks, but successful production behavior does too. A good interaction is something to preserve and reinforce while changing the agent elsewhere. The evaluation flywheel therefore draws from both kinds of experience: capture behavior, turn it into a task, and use the task to guide the next variant.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
The demo finds an SDK error and creates a targeted candidate
Returning to the demo reveals the observable change: the production trace has become a new task, and ARIA has run and scored it. The research agent also generates a report linking its work. A conversation that previously existed as production history now has an offline evaluation counterpart, including a run of the production variant.
The regression task exposes a specific problem: improper use of the SDK call weave.log in the sandbox. ARIA reproduces the source trace, identifies a target for improvement, and runs agent variants against it. The closing inspection describes the candidate as a small prompt added to the system prompt or a skill to address that SDK error. The demonstrated change is therefore a targeted instruction change; the walkthrough does not establish a source-code patch or quantify a candidate-versus-production gain.
How does that error become something the agent can improve? The diagram follows the same interaction from a recorded failure to a repeatable task and competing executions. The important relationship is the shared test: the proposed instruction change is evaluated against the production variant on the regression task derived from the original trace.
This changes the day-to-day research workflow. Instead of repeatedly writing offline benchmarks by hand, Aysola moves between incoming production traces and the team’s offline evaluations, asking what changed in a skill or variant and inspecting the resulting runs. ARIA handles more of the task construction and execution; the researcher keeps choosing which behavior deserves attention.
One SDK error, two agent variants
Read the diagram as text
- Production trace. Recorded interaction exposes improper weave.log usage in the sandbox.
- Regression task. ARIA converts the trace into an offline task and reproduces it.
- Production variant. comparison — Run the current agent on the task.
- Candidate variant. comparison — Add a targeted prompt to the system prompt or a skill for the SDK error.
- Scored runs and report. Inspect executions and compare production with the candidate.
- Production trace → Regression task: Convert and reproduce.
- Regression task → Production variant: Benchmark current behavior.
- Regression task → Candidate variant: Test targeted change.
- Production variant → Scored runs and report: Production result.
- Candidate variant → Scored runs and report: Candidate result.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Automation leaves the improvement decision with people
“Auto mode” is tempting: let the agent write the implementation, run the evaluations, and do everything it can. Aysola describes relying on Claude to write his code, but the convenience does not remove the need to think through improvements. Automating execution frees time for the harder questions: what should become better, which behavior matters, and how should the system be constrained?
The same research capabilities extend to machine-learning work; Aysola mentions other demonstrations of ARIA training models on H200 GPUs. For this example, though, the practical gain is keeping production observation, offline experiments, and ongoing agent research together. ARIA runs evaluations on the researcher’s behalf while the researcher considers which guardrails will make the system more useful.
The final inspection returns to the actual execution: prediction and scoring work, tool calls, and the candidate’s small prompt change for the SDK error. That is the concrete meaning of an agent improving itself here. Production supplies an interaction to reproduce; simulation makes it testable; the agent proposes and evaluates a change. People still shape the improvement pattern that this machinery follows.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Resources
From the talk
The tracing platform used in the walkthrough to connect production interactions with offline agent rollouts and evaluation results.
Read the complete timestamped transcript
13 slide groups · 8 demo milestones. Extracted from the recording; expand builds to follow changes. Timestamps are approximate. 4 additional groups were omitted from this pass.
- 0:16
Okay. Hello. Thank you for showing up.
- 0:19
Uh my name is Zuben Isola. Uh I work at
- 0:22
Weights and Biases. I'm building the
- 0:24
Arya agent which is something that we
- 0:25
released to general availability on
- 0:28
Monday. You might have seen Tim's talk
- 0:30
uh one of the pe my peers at Weights and
- 0:31
Biases who I work with uh on the main
- 0:33
stage yesterday. So I'm going to give
- 0:35
you a little bit of a deep dive into how
- 0:37
we evaluate and build the Arya agent uh
- 0:39
and in particular uh the evaluation
- 0:41
framework that we use and how we use
- 0:42
Arya to sort of self-reinforce itself in
- 0:44
the loop of doing research for itself uh
- 0:47
and talk about some weights and biases
- 0:49
things. So yeah, this is a rip from some
- 0:51
of the slides that I presented at
- 0:52
Nurups, but uh I think there's some
- 0:54
interesting things about like using uh
- 0:56
agentic harnesses. I I imagine most
- 0:58
people in the audience or at this
- 0:59
conference are all excited to build
- 1:01
agent harnesses or maybe use cloud code
- 1:03
with skills in a variety of different
- 1:04
packages, but there's, you know, pretty
- 1:06
strong differences in the way that you
- 1:07
package these AI agents if you use them
- 1:09
with different tool calls, etc. on a
- 1:11
variety of different benchmarks. And so
- 1:12
inspired by that, we're doing some work
- 1:14
at Weights and Biases to build our own
- 1:15
agent harness to do research for you in
- 1:17
the weights and biases platform. Um, you
What Is a Software Harness, Agent, and More?
The diagram places an agent and its environment inside a workspace. The agent combines LLMs with a system prompt, memory, tools, an execution loop, error handling, and context management.
Text in image
A Brief Interlude on Taxonomy What is a Software Harness, Agent, and More? Workspace AGENT System Prompt Memory System Tools - Tool Defs LLM(s) Execution Loop Error Handling Context Management Environment 4 Interface text: Chrome File Edit View History Bookmarks Profiles Tab Window Help docs.google.com/presentation/d/[illegible] Ask Gemini Work
- 1:19
know, and then there's probably some
- 1:20
other things that I don't need to
- 1:21
convince people of as to like why we
- 1:23
want software agents and why a software
- 1:25
harness as opposed to like just letting
- 1:26
the, you know, LM run free and call
- 1:28
tools or whatever else. Uh, but that's
- 1:29
not for here. Uh, but one big problem
Benchmarks, Evaluations, and Agents Are Covariant
The software harness, dataset and reward affect one another as they change. Aysola says evaluating a changing agent requires measuring performance both offline and in production.
Text in image
The Problem with Building Agents Benchmarks, Evaluations, and Agents are Covariant Software Harness Dataset Reward ??? A change to one affects all others 6 Interface text: Chrome File Edit View History Bookmarks Profiles Tab Window Help docs.google.com/presentation/d/[illegible] Ask Gemini Work Thu Jul 2 11:11 AM
- 1:32
presents itself, which is basically the
- 1:34
thing that I go to bed thinking about
- 1:36
every day, which is, you know,
- 1:38
benchmarks, evaluations, the agents, and
- 1:40
how you configure them are all
- 1:41
covariant. And so like if you're trying
- 1:43
to apply principled evaluations to any
- 1:45
sort of system that dynamically changes,
- 1:47
you need to have good measurement to see
- 1:49
how the system actually performs. And
- 1:51
you really want to see how the system
- 1:52
performs in both your production
- 1:53
environment and your offline
- 1:55
environment. Uh you know if you're RLP
- 1:57
build from a long time ago, you might
- 1:59
think about like the sim tore gap uh
- 2:01
which is like basically how do we
- 2:02
translate simulation environments into
- 2:03
the real world environments etc. Uh and
Introducing W&B Weave for Agents
Aysola’s team tracks offline agent runs in Weave and logs production traces in the same format, then brings those traces into its environments to improve performance and resolve errors.
Text in image
GENERALLY AVAILABLE Introducing W&B Weave for Agents Observability and continuous improvement for production agents ✓ Production agents learn and improve from real-world experience to achieve and maintain reliable quality ✓ Full improvement loop from context and harness engineering to model training ✓ Coding agents like Claude Code can connect to Weave at runtime and run autonomous iteration cycles Product screenshot: Agents Agents · Conversations · Spans · Monitors copy-editor business-proposal summarizer ideation auto-responder multi-modal-image-gen image-understanding Ideation Span volume Conversation volume Token volume Errors [illegible] 7 Interface text: Chrome · File · Edit · View · History · Bookmarks · Profiles · Tab · Window · Help Thu Jul 2 11:12 AM Ask Gemini · Work
- 2:06
so there's sort of two things that I'll
- 2:07
talk about uh and then give a live demo
- 2:09
of which is weights and biases weave for
- 2:12
agents which is basically in my opinion
- 2:13
at least the best observability platform
- 2:15
for both production and offline tracing
- 2:17
of agents. So I use it predominantly
- 2:20
from the offline side where I build
- 2:22
simulation environments run the Arya
- 2:23
agent over them and then track them in
- 2:25
weave and my entire team does that as
- 2:27
well. So I can see all of our
- 2:28
performance in offline metrics. And then
- 2:30
the other half of my team works on the
- 2:31
production side of things, deploying the
- 2:33
agent, logging the same things in the
- 2:34
exact same format so that I can rip
- 2:36
those production traces into our
- 2:38
environments and then hill climb on them
- 2:39
or resolve our errors. And it's a pretty
Introducing CoreWeave ARIA
Aysola says ARIA performs offline hill climbing to help build itself. The slide describes an agent that runs experiments, creates visualizations, and analyzes results.
Text in image
[illegible] with W&B Weave Introducing CoreWeave ARIA, AI Research & Iteration Agent • Turn on self-improvement loops: ARIA is an always-on research partner, running experiments, analyzing outcomes, and continuously improving your models and agents. • Automate complex workspace actions: ARIA creates custom visualizations on the fly to back up its findings, so you don’t need to manually build a new view or chart for every insight surfaced in the data yourself. • Gain deeper experiment insights: ARIA analyzes your runs and provides actionable insights, so you reach a decision in minutes instead of digging for hours. Embedded screenshot: Search panels with regex Panel Section 2 val/loss v. Reverse Index Y-axis ticks: 9, 8.5, 8, 7.5, 7, 6.5, 6 X-axis ticks: [illegible] Charts 7 val_bpb Showing up to 10 runs [illegible] ARIA The 4x-data winner is monotonically improving through step 600, so I’m launching a third wave around that regime: 4x/8x data, longer runs, and mild regularization. This is now exploiting the actual winning curve, not guessing. apply_patch /workspace/submit_scale_data_12_k8s.py Submitting the third 12-run scale-data wave now. shell python /workspace/submit_scale_data_12_k8s.py Submitted. I’ll wait for the wave to finish and then summarize the best result. shell sleep 180; python [illegible] The third wave improved again: best final is now 8.152 bpb with [illegible]. That’s a ~12.4% reduction from the 9.307 parallel-test best final, and ~30% vs the original 160-step loop-1 baseline scale. The winner is also still at its best at the final step, so I’m launching a smaller frontier wave around 8x/16x data + width384/512 to see if we can break 8.0. apply_patch /workspace/submit_frontier_8_k8s.py Submitting the 8-run frontier wave. shell python /workspace/submit_frontier_8_k8s.py Submitted. I’ll wait and rank it when complete. shell sleep 240; python [illegible] Ask ARIA 9 Interface text: Chrome File Edit View History Bookmarks Profiles Tab Window Help Thu Jul 2 11:12 AM docs.google.com/presentation/d/[illegible] Ask Gemini Work aria-researches-aria Workspace – Weights & Biases wandb.ai Memory usage: 582 MB
- 2:41
nice flywheel. And then obviously the
- 2:43
other thing that I'm here to talk about
- 2:44
is Arya, the weights and devices agent
- 2:45
itself, which is basically the thing
- 2:47
that we use to now build itself because
- 2:49
it's sophisticated enough that it can
- 2:50
actually do that offline hill climbing
- 2:52
uh by itself. So I'm going to just jump
- 2:54
into a super quick live demo and then
- 2:55
we'll talk through some other slides uh
- 2:57
about how we built the offline
- 2:58
evaluation framework. So if you hop into
- 3:00
the weights and biases platform, this is
- 3:02
a demo project that I called Arya
- 3:04
researches Arya here. Uh and I'm just
- 3:06
going to chat to Arya and ask it to
- 3:08
basically do auto research for itself.
- 3:10
And so this is a relatively long prompt
- 3:11
that I had it generate in actually one
- 3:12
of these other sessions. Um but if we
- 3:15
look at it, what it's going to do is
- 3:16
it's going to take my codebase that is
- 3:18
logged as a weights and biases artifact
- 3:19
uh which we can see over here. It's
- 3:22
going to launch training jobs uh against
- 3:24
this codebase which is our offline
- 3:25
evaluation framework. It's going to
- 3:27
review production traces that we have,
- 3:29
add new tasks to hill climb against uh
- 3:31
and do stuff like that. And so, you
- 3:33
know, this thing's going to cook for a
- 3:34
little bit. The evaluations take a
- 3:35
little bit of time to run. And so, we'll
- 3:37
see Arya uh basically try to write a new
Evaluations and ARIA activity
To prepare a stage talk track, ARIA reads evaluation and report references, then writes and runs a project-research script. Beside it, the evaluations table shows what Aysola describes as sanitized traces.
Text in image
Evaluations All evaluations All datasets Filter inputs outputs [partially obscured] Trace | Feedback | Status | model » | self » | displa[partially obscured] prod-trace-nanochat-log-qu... | 31c3 | core_wb_agen... | prod-trace-na... prod-trace-nanochat-log-qu... | a0d0 | core_wb_agen... | prod-trace-na... prod-trace-nanochat-log-qu... | edb0 | core_wb_agen... | prod-trace-na... prod-trace-nanochat-log-qu... | ce38 | core_wb_agen... | prod-trace-na... smoke-all__core_wb_agent... | 249b | core_wb_agen... | smoke-all-eval... smoke-all__core_wb_agent... | c7d5 | core_wb_agen... | smoke-all-eval... smoke-all__core_wb_agent... | 964a | core_wb_agen... | smoke-all-eval... ARIA [Beginning clipped] project/artifacts/runs/Weave evals as needed, then give me a stage talk track with links and exact names/scores. End with a short “what to click next” checklist for the live demo. Thinking Researching evaluation tools shell grep -nE [illegible] skills/wbagent/references/WEAVE.md | head -80 && grep -nE [illegible] skills/... shell grep -nE [illegible] skills/wbagent/references/REPORTS.md | head -80 shell sed -n '3,120p' skills/wbagent/references/WEAVE.md && sed -n '153,165p' skills/wbagent/refe... Thinking Exploring project details apply_patch /workspace/research_project.py shell python /workspace/research_project.py Interface text: wandb.ai/wandb/aria-researches-aria/weave/evaluations?view=evaluations_default wandb > Projects > aria-researches-aria > Evaluations wandb-agent-prod Workspace – Weights & Biases wandb.ai Memory usage: 573 MB Workspace Runs More WEAVE Agents Traces Evals Playground Monitors Support Shortcuts Docs New chat Today yoo! aria-researches-aria Aria: run the WBAF smoke eval aria-researches-aria yo we feel comfortable running ari... aria-researches-aria Yesterday suggest a fix for this 019f2016-e160... wb-agent-team/wandb-agent-p... Quickly give a brief summary of th... wb-agent-team/wandb-agent-p... this latest eval was too hard make i... zubin-autoresearch-prompts Hi mom sup cutie. we want to setup some ... wb-agent-team/wandb-agent-p... Last 7 Days gimme a report highlighting the cu... zubin-dump-new I want to simulate the signals prod... zubin-dump-new find me the most unique conversat... wb-agent-team/wandb-agent-p... yo this current trace whats up with ... wb-agent-team/wandb-agent-p... gimme the last autoresearch swee... zubin-dump-new can you gimme a link to this code ... aria-researches-aria Ask ARIA
3:38Demo milestone
- 3:39
variant for itself. The other side of
- 3:41
this equation, right, is the production
- 3:43
side of things. And so, this is a
- 3:45
sanitized view of internal customer
- 3:47
traces or internal traces on Arya. So
- 3:49
we'll actually see very quickly uh that
- 3:51
Arya will actually pop up here the exact
- 3:53
conversation that we're running um right
- 3:55
here. But in this trace I'm going to use
- 3:58
this as an opportunity to take one of
- 4:00
these production traces that are logged
- 4:01
in weave and put them into my offline
- 4:03
evaluation framework so that I can hill
- 4:05
climb on them. And so I'm just going to
- 4:06
do that live. We'll ask you know for a
- 4:07
relatively simple task. Um this is going
- 4:09
to be a little interesting because it's
- 4:10
going to be slightly self-referential
- 4:12
but I'll go here. I'll pop up in a new
Preparing an evaluation request
Zubin asks ARIA to add a production trace to offline evaluations and run both candidate and production agents on it. The request is still being composed.
Text in image
How can I help you today? Help me create a dataset Help me create scorers Did my latest eval improve and why? What should I try next? hey take this trace log it into our ofline evals and then run the canddiate and production agent on it Interface text: wandb.ai/wandb/aria-researches-aria/weave/evaluations?view=evaluations_default wandb > Projects > aria-researches-aria > Evaluations Evaluations Compare All evaluations All datasets Filter inputs outpu[illegible] Trace Feedback Status model self displa[illegible] prod-trace-nanochat-log-qu... [illegible] prod-trace-nanochat-log-qu... [illegible] prod-trace-nanochat-log-qu... [illegible] prod-trace-nanochat-log-qu... [illegible] smoke-all__core_wb_agent... [illegible] smoke-all__core_wb_agent... [illegible] smoke-all__core_wb_agent... [illegible] core_wb_agen... prod-trace-na... smoke-all-eval... ARIA New chat Today yoo! aria-researches-aria Aria: run the WBAF smoke eval aria-researches-aria yo we feel comfortable running ari... aria-researches-aria Yesterday suggest a fix for this 019f2016-e160... wb-agent-team/wandb-agent-p... Quickly give a brief summary of th... wb-agent-team/wandb-agent-p... this latest eval was too hard make i... zubin-autoresearch-prompts Hi mom sup cutie. we want to setup some... wb-agent-team/wandb-agent-p... Last 7 Days gimme a report highlighting the cu... zubin-dump-new I want to simulate the signals prod... zubin-dump-new find me the most unique conversat... wb-agent-team/wandb-agent-p... yo this current trace whats up with ... wb-agent-team/wandb-agent-p... gimme the last autoresearch swee... zubin-dump-new can you gimme a link to this code ... aria-researches-aria Project MODELS Workspace Runs More WEAVE Agents Traces Evals Playground Monitors More Support Shortcuts Docs Zubin Aysola wandb Ask Gemini Work
4:14Demo milestone
- 4:15
Arya tab and I'll just ask it hey take
- 4:17
this trace log it into our offline evals
- 4:22
I don't think spelling matters too much
- 4:23
and then run the candidate and
- 4:26
production agent on it
Running the evaluation request
Aysola asks ARIA to add a trace to offline evals and run the candidate and production agents on it. ARIA begins a shell step; the evaluations are expected to appear in Weave as they run.
Text in image
ARIA hey take this trace log it into our ofline evals and then run the canddiate and production agent on it 019f23fe-e638-7120-8014-a663c7e9dd63 shell grep -nE '^#{1,2} ' skills/wbagent/references/WEAVE.md | head -80 && sed -n '1,220p' skills/w... Interface text: wandb.ai/wandb/aria-researches-aria/weave/evaluations?view=evaluations_default wandb > Projects > aria-researches-aria > Evaluations Evaluations Compare All evaluations All datasets Filter inputs output Trace | Feedback | Status | model >> | self >> | display... prod-trace-nanochat-log-qu... | 31c3 | core_wb_agen... | prod-trace-na... prod-trace-nanochat-log-qu... | a0d0 | core_wb_agen... | prod-trace-na... prod-trace-nanochat-log-qu... | edb0 | core_wb_agen... | prod-trace-na... prod-trace-nanochat-log-qu... | ce38 | core_wb_agen... | prod-trace-na... smoke-all__core_wb_agent... | 249b | core_wb_agen... | smoke-all-eval... smoke-all__core_wb_agent... | c7d5 | core_wb_agen... | smoke-all-eval... smoke-all__core_wb_agent... | 964a | core_wb_agen... | smoke-all-eval... New chat Today hey take this trace log it into o... aria-researches-aria yoo! aria-researches-aria Aria: run the WBAF smoke eval aria-researches-aria yo we feel comfortable running ari... aria-researches-aria Yesterday suggest a fix for this 019f2016-e160... wb-agent-team/wandb-agent-p... Quickly give a brief summary of th... wb-agent-team/wandb-agent-p... this latest eval was too hard make i... zubin-autoresearch-prompts Hi mom sup cutie. we want to setup some ... wb-agent-team/wandb-agent-p... Last 7 Days gimme a report highlighting the cu... zubin-dump-new I want to simulate the signals prod... zubin-dump-new find me the most unique conversat... wb-agent-team/wandb-agent-p... yo this current trace whats up with ... wb-agent-team/wandb-agent-p... gimme the last autoresearch swee... aria-researches-aria Ask ARIA Project MODELS Workspace Runs More WEAVE Agents Traces Evals Playground Monitors Support Shortcuts Docs Zubin Aysola wandb Ask Gemini Work4:28Demo milestone
- 4:29
and we'll have it cook for that as well
- 4:31
and we'll see those evaluations get
- 4:32
logged into weave as they're running um
- 4:34
so that's basically the tight version of
- 4:36
what I do basically every day which is
- 4:38
look at production traces in our weights
- 4:39
and biases weave platform run
- 4:41
evaluations in our codebase which is our
- 4:43
offline client evaluation sandbox uh and
- 4:45
then deploy new versions of the agent uh
- 4:47
and work with my team to do that. And if
Nightly CI evaluation traces
Aysola uses seven weeks of nightly CI traces to compare agent performance over time. This view filters for the production agent on main; he says CI had broken for a while.
Text in image
Nightly CI Evaluation.evaluate Filter: attributes.runner_type equals "ci"; Name contains "wba-all__core_wb_agent.production"; attributes.repo_branch contains "main"; Past 7w Table headers: [obscured] | Called | Status | output …true_fraction | Latency | Feedback | inputs model | self | output display_name | eval_name | …true_count | …max Visible rows, in order. Status and feedback are icons; empty cells are shown as —. Trace | Called | Status icon | …true_fraction | Latency | Feedback icons | …true_count | …max [obscured] a8aa | 10 hours ago | check | 0.0661 | 23m 53s | two icons | 17 | 25 [obscured] 3dc1 | 1 day ago | exclamation | 0 | 3m 58s | — | 0 | N/A [obscured] 91d5 | 2 days ago | exclamation | 0 | 1m 23s | — | 0 | N/A wba-all__core_wb_agent.pr... c907 | 3 days ago | check | 0.0817 | 29m 57s | — | 21 | 30 wba-all__core_wb_agent.pr... f9c7 | 4 days ago | check | 0.0856 | 30m 31s | — | 22 | 30 wba-all__core_wb_agent.pr... a443 | 5 days ago | check | 0.07 | 30m 25s | — | 18 | 35 wba-all__core_wb_agent.pr... f5a2 | 6 days ago | check | 0.0898 | 21m 31s | — | 23 | 35 wba-all__core_wb_agent.pr... db8f | 1 week ago | check | 0.0859 | 21m 5s | — | 22 | 25 wba-all__core_wb_agent.pr... 749c | 1 week ago | check | 0.0902 | 19m 19s | — | 23 | 30 wba-all__core_wb_agent.pr... 291a | 1 week ago | check | 0.0745 | 19m 51s | — | 19 | 30 wba-all__core_wb_agent.pr... 1714 | 1 week ago | exclamation | 0.1012 | 29m 6s | — | 25 | 30 wba-all__core_wb_agent.pr... 5d99 | 2 weeks ago | circular arrow | N/A | — | — | N/A | N/A wba-all__core_wb_agent.pr... 2e3e | 2 weeks ago | circular arrow | N/A | — | — | N/A | N/A wba-all__core_wb_agent.pr... aa72 | 2 weeks ago | exclamation | 0 | 21s | — | 0 | N/A wba-all__core_wb_agent.pr... 7c65 | 2 weeks ago | check | 0.0243 | 35m 6s | — | 6 | 25 wba-all__core_wb_agent.pr... f1b9 | 2 weeks ago | circular arrow | N/A | — | — | N/A | N/A wba-all__core_wb_agent.pr... a096 | 2 weeks ago | check | 0 | 6m 57s | — | 0 | N/A wba-all__core_wb_agent.pr... d167 | 2 weeks ago | exclamation | 0.0132 | 23m 47s | — | 3 | 12 wba-all__core_wb_agent.pr... 5803 | 3 weeks ago | exclamation | 0.0044 | 11m 14s | — | 1 | 12 The model and self columns show truncated entries core_wb_agen... and wba-all-evalua... throughout. The display_name and eval_name columns show wba-all__core_wb_... and wba-all-eval, except on the three circular-arrow rows, where both show N/A. Interface text: wandb > Projects > wbagent-experiments > Traces Reset view; Save view; Visualize; Columns Project; MODELS; WEAVE; Agents; Traces; Evals; Playground; Monitors; More; Support WBAF & the Flywheel — AIE World's Fair - W&B Expo local or shared file Memory usage: 79.4 MB Shortcuts; Docs; 1-46 of 46 Chrome; Ask Gemini; Work; Zubin Aysola; wandb
4:48Demo milestone
- 4:49
we look at our production project, this
- 4:51
is, you know, a bunch of traces that we
- 4:52
have over the last seven weeks of our
- 4:53
nightly uh like CI jobs that run where
- 4:55
we evaluate the agent in its production
- 4:57
format and other candidate variants that
- 4:58
we cut. And so we can see our relative
- 5:00
performance over time. Uh like you know,
- 5:02
for a while the CI broke, we had Arya
- 5:04
have to fix itself last night, but you
- 5:05
know, we're getting about like 66%
- 5:07
performance on some of the tasks, etc.
- 5:08
And so we have a variety of tasks um
- 5:11
that we train the agent to do. And so
- 5:13
now I'm just going to jump into a
Benchmarking the production agent
WBAF runs the production agent against live W&B and Weave in throwaway sandboxes, scores each turn against ground truth, and turns production misses into tests and fixes.
Text in image
HOW WE BUILT IT · WANDB AGENT FACTORY We benchmark the real agent — byte-for-byte — not a proxy. WBAF runs the literal production WBAgent against live W&B & Weave, inside throwaway sandboxes, and scores every turn against ground truth. Then it closes the loop: every production miss becomes a test, then a fix. 886 benchmark tasks 29 eval suites 10 scorer types 1:1 prod-identical code source: WandBAgentFactory/README.md · data/tasks (886 task.yaml) · data/evals (29) · data/scorers (10) WBAF & the Flywheel · AIE World's Fair — W&B Expo ← → or space · F fullscreen 1 / 10 Interface text: Chrome · File · Edit · View · History · Bookmarks · Profiles · Tab · Window · Help File /Users/zaysola/wandb/labs/ai-engineer-preso/wbaf-flywheel.html Ask Gemini · Work aria-researches wandb-agent-p... wbagent-experi... WandBAgentFac... AIE World's Fair... WBAF & the...
- 5:14
material version of the presentation to
- 5:16
go a little bit deeper into the theory
- 5:18
behind building a simulation environment
- 5:19
for offline hill climbing for basically
- 5:21
building a software agent where
- 5:23
traditionally you might expect that you
- 5:24
are really robust if you're doing
- 5:26
reinforcement learning but I mostly
- 5:28
prompt engineer these days because the
- 5:29
sophisticated models are relatively good
- 5:31
at performing tasks at weights and
- 5:32
biases and so we're really working on
- 5:34
building skills for the software agent
- 5:35
more than doing reinforcement learning.
- 5:37
But I think applying the same
- 5:38
methodology to how you build the agent.
- 5:40
So the same robustness of how you
- 5:42
simulate environments uh is really
- 5:43
helpful for our work. So we benchmark a
- 5:46
bite-wise identical version of the agent
- 5:48
in our production environment and our
- 5:49
simulated environment. There's a lot of
- 5:51
text on these slides that I and Claude
- 5:52
sort of slop out. Uh but you know we'll
- 5:54
just go for the graphics. Um so I think
Research and production use the same code
A four-hour sync copies production code into the research harness to prevent drift. Matching files appear in both repositories, and shipping copies the agent repository back to Core without import changes.
Text in image
THE CORE TRICK Research and production are the same code. wandb/core — src/agent_repository/ agent_driver.py agents/bases/looping_agent.py agents/wba_responses · wba_claude · wba_wbi agent_interface_contract/protocols.py ≡ BYTE-IDENTICAL WandBAgentFactory — wb-agents/src/ agent_driver.py agents/bases/looping_agent.py agents/wba_responses · wba_claude · wba_wbi agent_interface_contract/protocols.py NEVER DRIFTS A cron re-clones wb-agents/src/ from Core every 4 hours and clobbers it — the harness can't fall out of sync with prod. SHIPPING = A COPY cp -r wb-agents/src/agent_repository → core Zero import changes. The thing in the harness is the thing in prod. source: README.md §“Relationship to Core” (byte-identical) · docs/quickstart.md (4h sync cron, sync_core_wb_agent.py) WBAF & the Flywheel · AIE World's Fair — W&B Expo 2 / 10 Interface text: Chrome · File · Edit · View · History · Bookmarks · Profiles · Tab · Window · Help File /Users/zaysola/wandb/labs/ai-engineer-preso/wbaf-flywheel.html Ask Gemini · Work aria-researches wandb-agent-p… wbagent-experi… WandBAgentFac… AIE World's Fair WBAF & the… ← → or space · F fullscreen
- 5:56
the exciting part here is that both
- 5:58
using the logging framework from weave
- 5:59
as well as just in the way that we've
- 6:01
designed the system our research and
- 6:02
production code are exactly the same.
- 6:03
And in fact, there's like a 4-hour sync
- 6:05
job that happens between production to
- 6:07
our research environment so that we
- 6:08
don't get any drift when you, you know,
- 6:10
researchers are cutting new variants of
- 6:11
the agent, new skills, etc., and doing
- 6:12
their hill climbing. And so, we have
- 6:14
this nice little tight loop that
- 6:15
basically mirror each other on two sides
- 6:16
of the stack from our deployment layer
- 6:18
and our offline benchmarking layer. Uh,
- 6:21
and then, you know, we expose internally
- 6:23
as a team a bunch of run eval commands
- 6:25
to generate score trajectories. And so
- 6:27
that's what we were talking about with
- 6:29
this like large project where we have a
- 6:30
bunch of trajectory examples where if I
Evaluation trace list
Aysola selects an evaluation trace to inspect its relative scores across metrics. The evaluation panel is still loading in this frame.
Text in image
Nightly CI Trace | Called | Status wba-all__core_wb_agent.pr... | 10 hours ago wba-all__core_wb_agent.pr... | 1 day ago wba-all__core_wb_agent.pr... | 2 days ago wba-all__core_wb_agent.pr... | 3 days ago wba-all__core_wb_agent.pr... | 4 days ago wba-all__core_wb_agent.pr... | 5 days ago wba-all__core_wb_agent.pr... | 6 days ago wba-all__core_wb_agent.pr... | 1 week ago wba-all__core_wb_agent.pr... | 1 week ago wba-all__core_wb_agent.pr... | 1 week ago wba-all__core_wb_agent.pr... | 1 week ago wba-all__core_wb_agent.pr... | 2 weeks ago wba-all__core_wb_agent.pr... | 2 weeks ago wba-all__core_wb_agent.pr... | 2 weeks ago wba-all__core_wb_agent.pr... | 2 weeks ago wba-all__core_wb_agent.pr... | 2 weeks ago wba-all__core_wb_agent.pr... | 2 weeks ago wba-all__core_wb_agent.pr... | 2 weeks ago wba-all__core_wb_agent.pr... | 3 weeks ago wba-all__core_wb_agent.production Evaluation | Call | Feedback | Summary | Use Runtime: 23m53s Created on: 10 hours ago Created by: Zubin Aysola wba-all-evaluation:v152 core_wb_agent.production-runner:v151 wba-all:v56 Loading evaluation data Interface text: wandb > Projects > wbagent-experiments > Traces Reset view Save view Evalua... Filter MODELS Workspace Runs More WEAVE Agents Traces Evals Playground Monitors More Support 1-46 of 46 wandb.ai/wandb/wbagent-experiments/weave/traces?filter=[illegible]
6:31Demo milestone
- 6:32
click into one of these, you know, we
- 6:33
can see like our relative scores of a
- 6:35
variety of different metrics when it
- 6:36
loads. Um, but essentially what we get
- 6:39
is these super robust traces of the
- 6:41
agent rolling out over time. And there's
- 6:43
a lot of signal to reap from this. And I
- 6:44
think the thesis behind this is generate
- 6:46
a ton of traces and then decide
- 6:48
what you're going to do with said
- 6:49
ton of traces as you try to figure out
- 6:51
how the agent performs. you're measuring
- 6:53
emergent properties and then trying to
- 6:55
align the agent in particular
- 6:56
directions. And so the two ways that
- 6:58
that happens is I look manually at the
- 7:00
tasks or like we would do in that first
- 7:02
example, I would ask Arya to review the
- 7:04
roll out that it generated for itself or
- 7:06
review some other rollout and decide
- 7:08
what went wrong or what went well and
- 7:09
try to reinforce that behavior through
- 7:11
prompting or anything else. Uh and then
The agent tool-use loop
A shared loop prepares context, calls the model, executes tool calls and repeats until there are none. Backends swap into the same loop; CLI agents use their own.
Text in image
ONE TURN Every agent runs the same tool-use loop. PREPARE list tools from the environment COMPACT trim history (optional) INVOKE call the LLM — stream_invoke() PARSE extract tool calls → ParsedResponse tool calls? yes ↓ · no → YIELD EXECUTE parallel Environment.step() per call BUILD TURN append to history, loop back ↑ One base class. Three backends. Prod parity. The loop lives in LoopingAgent.do_turn_stream(). Subclasses implement only invoke() · parse() · build_turn(). Swap the backend, keep the loop: OPENAI wba_responses · gpt-5.5 ANTHROPIC wba_claude WBI wba_wbi · Kimi CLI agents (Claude Code, Codex) subclass SubprocessAgent instead — the CLI owns its loop. source: README.md §“The agent loop” · wb-agents/src/.../bases/looping_agent.py::do_turn_stream WBAF & the Flywheel · AIE World's Fair — W&B Expo 4 / 10 Interface text: Chrome File Edit View History Bookmarks Profiles Tab Window Help File /Users/zaysola/wandb/labs/ai-engineer-preso/wbaf-flywheel.html Ask Gemini Work aria-researches wandb-agent-p... wbagent-exper... WandBAgentFa... AIE World's Fair WBAF & the...
- 7:14
you know the actual method behind the
- 7:16
agent is relatively simple. We want to
- 7:18
test on a variety of the different
- 7:20
models both models offered through
- 7:21
corewave inference models offered
- 7:23
through you know the foundation model
- 7:24
players etc. And so we define you know a
- 7:26
relatively agnostic software stack for
- 7:28
how we treat compaction and how we
- 7:30
prepare context and how we assemble UI
- 7:32
payloads etc. And the again mental
- 7:34
pattern behind this is to really try to
- 7:36
make it very very simple to have lots of
- 7:39
mutations of the exact same
- 7:40
configuration. You want to basically
- 7:42
YAML define different configurations of
- 7:43
the agent to sort of get multiple
- 7:45
parallel uh variants and then test them
- 7:47
all and see what happens because
- 7:49
ultimately you can have insight into how
- 7:51
to make the problem better. But if we
- 7:52
take an adage from old reinforcement
- 7:54
learning training or just simple model
- 7:55
training, it's just better to run more
- 7:57
experiments than fewer. And so that's
- 8:00
the thesis behind the agent harness
- 8:01
itself too. And so then you know we talk
The agent environment
Each turn gets a Modal sandbox with file and shell tools, while the agent queries live W&B and host-side scorers check Weave data. A seeded, ephemeral backend is in progress.
Text in image
THE ENVIRONMENT A throwaway box, wired to the real thing. MODAL SANDBOX · PER TURN /workspace/ ├─ skills/wbagent/… └─ (agent workspace) shell() apply_patch() read_file() write_file() lazy-created on first step() · FS snapshotted on finalize() WIRED TO LIVE PROD Creds forwarded; the agent queries api.wandb.ai + trace.wandb.ai — the same W&B you use. SCORED ON GROUND TRUTH Host-side scorers hit live Weave — e.g. a reference check must match the real trace count within 1%. Today: live prod. Next (in progress): a fresh, ephemeral W&B/Weave backend seeded from local data per task — full determinism. source: factory/environment/modal.py (Modal.Sandbox, WANDB_BASE_URL default) · factory/scorers/reference.py (calls_query_stats, 1% tol) · EPHEMERAL_WANDB_PLAN.md (roadmap) WBAF & the Flywheel · AIE World's Fair — W&B Expo 5 / 10 Interface text: Chrome File Edit View History Bookmarks Profiles Tab Window Help /Users/zaysola/wandb/labs/ai-engineer-preso/wbaf-flywheel.html Ask Gemini Work aria-researches wandb-agent-p[illegible] wbagent-exper[illegible] WandBAgentFac[illegible] AIE World's Fair WBAF & the[illegible]
- 8:04
about like the sandbox stack behind the
- 8:06
agent. And I think that you know there's
- 8:08
a lot of mentions of code mode here at
- 8:10
this conference and other things like
- 8:11
that. And one thing that we really want
- 8:12
to see happen because we want to build
- 8:13
the best product for our customers is to
- 8:15
just have a sandbox environment that
- 8:17
they can do anything they wanted. So for
- 8:19
example prior to yesterday I wasn't
- 8:22
entirely certain that Arya was going to
- 8:23
be able to do a bunch of parallel
- 8:25
executions of itself. And so I asked it
- 8:27
both while I was writing this
- 8:28
presentation and preparing for this to
- 8:30
just create the sandbox environment uh
- 8:32
for itself to run a bunch of parallel
- 8:34
executions of its own research loop.
- 8:36
Right. Uh, and so like having that
- 8:38
unconstrained environment is really
- 8:39
useful for getting the agent to do
- 8:41
emergent things.
Execution phases and lanes
Each record moves from configuration through setup, agent execution, scoring, and teardown. Separate run and score lanes allow up to 60 and 30 in flight, so a slow judge does not block the next agent run.
Text in image
THE EXECUTION ENGINE Six phases per record. Two independent lanes. HYDRATE load static config → SETUP acquire / seed the W&B world → REHYDRATE inject URLs into the prompt → RUN agent in the sandbox → SCORE host-side scorers → TEARDOWN release · always runs RUN LANE up to 60 in flight · prediction_semaphore SCORE lane up to 30 in flight · scorer_semaphore Independent lanes — a slow LLM judge never blocks the next agent run, and teardown is guaranteed even on crash. SETUP is the seam the ephemeral, seeded W&B world will hang off. source: factory/eval_loop/imperative.py (SETUP→RUN→SCORE→TEARDOWN · semaphores 60/30) · EPHEMERAL_WANDB_PLAN.md (phase model) WBAF & the Flywheel · AIE World's Fair — W&B Expo 6 / 10 Interface text: Chrome File Edit View History Bookmarks Profiles Tab Window Help /Users/zaysola/wandb/labs/ai-engineer-preso/wbaf-flywheel.html Ask Gemini Work aria-researches wandb-agent-[illegible] wbagent-experi[illegible] WandBAgentFa[illegible] AIE World's Fair WBAF & the [illegible] ← → or space · F fullscreen
- 8:44
And so, you know, I I'm not really sure
- 8:46
what the six phrases per record uh
- 8:47
means, but I think from a theory
- 8:50
standpoint, we want to build then a good
- 8:53
pattern for generating these simulation
- 8:54
environments. And so we have a
- 8:56
relatively agnostic DAG that you might
- 8:58
think about in a traditional machine
- 8:59
learning context, which is like we take
- 9:00
a configuration, which are these YAML
- 9:02
files. We hydrate them. So we load the
- 9:04
live data that we need to. We set up an
- 9:06
environment and the environments and
- 9:07
weights and biases are relatively
- 9:09
expensive because we have lots of
- 9:10
production data that we might want to
- 9:12
test against or other things like that.
- 9:13
These are full machine learning training
- 9:14
logs. We might have to simulate uh GPU
- 9:16
executions if you're doing auto research
- 9:18
etc. That's a relatively intensive
- 9:20
process and so you might want to
- 9:21
parallelize that. Then you would
- 9:22
rehydrate because oftentimes there's
- 9:24
runtime configurations that you can't
- 9:25
encode in a YAML specification and so
- 9:28
you hot patch that data back into the
- 9:30
config config. Uh and then you run the
- 9:32
agent and running the agent is trivial.
- 9:33
You run it, as I mentioned at the
- 9:35
beginning, in the bite-wise identical
- 9:36
version that you have in production, and
- 9:38
then you score it. And scoring is where
- 9:40
I spend a lot of my time, which is
- 9:41
basically trying to think about the
- 9:42
robustness of how you measure results.
- 9:44
Uh, and I imagine most people here are
- 9:46
pretty good at thinking about things
- 9:47
like that. And I think it's really worth
- 9:49
spending the time once you have a
- 9:50
configuration of how to run evaluations,
- 9:52
thinking about the robustness of our
- 9:53
emails. uh a Slack message that I
- 9:55
probably can't show live on the screen
- 9:57
that I got from one of my teammates
- 9:58
today made me very happy where he
- 9:59
basically just spent all of yesterday
- 10:00
thinking about the health of our
- 10:02
evaluations and the drift between our
- 10:04
evaluations and production. Uh and I
- 10:05
think that kind of mental model of like
- 10:07
you know why are things working well why
- 10:08
are things not working well? What are
- 10:10
the gaps that we see in these two
- 10:11
patterns is really useful. Um in our
- 10:13
case weights and biases Arya scores
- 10:15
itself in two patterns which is
- 10:16
normatively which gives us basically did
- 10:18
we pass a task or not and then
- 10:20
relativistically where we can set styles
- 10:22
based on one variant where it asks
- 10:24
questions to the user and one variant
- 10:25
where it doesn't ask questions to the
- 10:26
user and we can sort of see which one
- 10:28
behaves better uh with a relative
- 10:30
scoring. So a pretty traditional
- 10:31
formulation from a reinforcement
- 10:33
learning standpoint. And then of course
- 10:34
if you're running this in parallel you
- 10:36
got to tear it down because you want to
- 10:37
start it again and you don't want to
- 10:38
clobber your teammates's work etc. Uh
- 10:40
and so we'll see what happens in this
- 10:42
project because a bunch of my teammates
- 10:43
are running eval right now and so we'll
- 10:44
see how Arya performs.
Evaluation at scale
Evaluation expands tasks into trials, runs agents in parallel sandboxes, then scores and aggregates results into a Weave eval. The slide lists 886 tasks across 29 eval suites.
Text in image
AT SCALE Eval = tasks × trials, fanned out and judged. eval spec scenarios + tasks → rows × trials dataset build → ≈60 parallel Modal sandboxes run the agent → scorers rubric · reference regex · code · ... → aggregate task→scenario→eval → Weave one eval URL 886 tasks (L0–L3) 29 eval suites 10 scorers 60 / 30 run / score parallelism source: README.md §“The eval pipeline” · factory/eval_loop/imperative.py (semaphores 60/30) · MultiTurnAgentRunner (@weave.op) WBAF & the Flywheel · AIE World's Fair — W&B Expo 7 / 10 Interface text: Chrome File Edit View History Bookmarks Profiles Tab Window Help File /Users/zaysola/wandb/labs/ai-engineer-preso/wbaf-flywheel.html Ask Gemini Work Thu Jul 2 11:20 AM
- 10:47
Uh and then you know more traditionally
- 10:49
on tasks I think the eval tasks are just
- 10:51
YAML specifications that we define as a
- 10:53
starting condition of an environment
- 10:55
with a bunch of user configurations as
- 10:57
well as then an ending condition that we
- 10:58
sort of want to get to. Uh in our case
- 11:00
tasks are flows from users. So we
- 11:02
simulate them in three ways. Uh we do
- 11:04
just simple text which is like hey
- 11:06
here's an instruction to Arya. You might
- 11:08
imagine that the task that it generates
- 11:09
in this chat over here um where it's
- 11:12
logging a specific trace from production
- 11:14
uh into our local framework actually
- 11:16
looks like you know just a simple
- 11:19
question that I asked it basically which
- 11:20
was that question of Arya doing auto
- 11:21
research itself um we can just ask it to
- 11:24
continue
- 11:26
um as it does that and that task is just
- 11:29
a single question to it there's other
- 11:31
variants of the tasks that exist as well
Evaluation at scale
The eval runs tasks across repeated trials in parallel sandboxes, scores and aggregates the results, and collects them in Weave. Its 886 tasks include simulated multi-turn interactions.
Text in image
AT SCALE Eval = tasks × trials, fanned out and judged. eval spec scenarios + tasks → rows × trials dataset build → ≈60 parallel Modal sandboxes run the agent → scorers rubric · reference regex · code · ... → aggregate task→scenario→eval → Weave one eval URL 886 tasks (L0–L3) 29 eval suites 10 scorers 60 / 30 run / score parallelism source: README.md §"The eval pipeline" · factory/eval_loop/imperative.py (semaphores 60/30) · MultiTurnAgentRunner (@weave.op) WBAF & the Flywheel · AIE World's Fair — W&B Expo 7 / 10 ← → or space · F fullscreen Interface text: Chrome File Edit View History Bookmarks Profiles Tab Window Help File /Users/zaysola/wandb/labs/ai-engineer-preso/wbaf-flywheel.html Ask Gemini Work aria-researches wandb-agent-p[illegible] wbagent-experi[illegible] WandBAgentFac[illegible] AIE World's Fair WBAF & the [illegible] Thu Jul 2 11:21 AM
- 11:33
where we simulate a language model that
- 11:35
has a persona from a user and we ask it,
- 11:38
hey, pretend to be this user, ask
- 11:39
certain questions in a particular order
- 11:40
so that we can simulate multi-turn
- 11:42
environments and interactions with our
- 11:43
agent. Uh, and then you just run a bunch
- 11:45
of these. So, we have 886 tasks. We
- 11:47
categorize them by levels. We expose
- 11:48
them to our product team so that they
- 11:49
can decide whether or not the tasks are
- 11:51
good enough or they reflect things that
- 11:52
we care about from our benchmarks, etc.
- 11:54
And then we just run them a bunch of
Reading failures
BehaviorTrace analyzes production and offline trajectories. Issue detectors and clustering group shared failures before an LLM drafts a coverage-checked task.
Text in image
HOW WE READ FAILURES Every trajectory becomes a diagnosable object. Trajectory Every turn, from Weave → BehaviorTrace symbolic · features · vector views → Issue detectors deterministic taxonomy → Cluster by shared failure → Draft a task LLM · coverage-checked A wall of logs becomes a structured, queryable failure — and that structured failure is exactly what the flywheel consumes next. source: factory/behaviortrace/core.py (symbolic + interpretable + vector) · docs/behaviortrace-framework.md (issue taxonomy) · eval_proposal.py::build_eval_proposals WBAF & the Flywheel · AIE World's Fair — W&B Expo 8 / 10 Interface text: Chrome File Edit View History Bookmarks Profiles Tab Window Help File /Users/zaysola/wandb/labs/ai-engineer-preso/wbaf-flywheel.html Ask Gemini · Work aria-researches wandb-agent-p[illegible] wbagent-experi[illegible] WandBAgentFac[illegible] AIE World's Fair WBAF & the [illegible] ← → or space · F fullscreen Thu Jul 2 11:22 AM
- 11:55
times.
- 11:57
Yeah. And then, you know, the ultimate
- 11:59
thing here is that the trajectory is
- 12:00
like the meat and the data that I live
- 12:02
behind. And so I look at our production
- 12:04
traces that exist in our traffic and our
- 12:05
offline traces that exist. And I really
- 12:07
try to exploit the behavior patterns
- 12:09
from both of those. And so we build
- 12:11
tooling ourselves to understand our
- 12:13
traces. Uh we have like this behavior
- 12:14
trace project etc that we run in both
- 12:16
prod and offline.
The production feedback loop
A production miss becomes a task for WBAgent: the team diagnoses it, iterates on a candidate, benchmarks it against a baseline, and ships a fix. Steps 1–2 are automated; steps 3–5 involve a human today.
Text in image
THE FLYWHEEL Every production miss becomes a test — then a fix. 01 Production miss a real failure, seen in Weave 02 Diagnose & propose BehaviorTrace clusters + drafts a task 03 Iterate the candidate skill · prompt · config 04 Benchmark vs baseline regression gate, in the sandboxes 05 PR into wandb/core → ships to production WBAgent closes its own loop steps 1–2 automated (BehaviorTrace + LLM) · steps 3–5 human-in-the-loop today · fully autonomous = RAVO (research north star) source: factory/behaviortrace + [illegible] Interface text: File /Users/zaysola/wandb/labs/ai-engineer-preso/wbaf-flywheel.html WBAF & the Flywheel · AIE World's Fair — W&B Expo 9 / 10
- 12:19
And yeah that's the eval flywheel. So
- 12:21
you know fundamentally every production
- 12:23
miss or every production goodness as
- 12:24
well because I think it's useful to hill
- 12:26
climb in a positive direction uh becomes
- 12:27
a task for our agent framework. And so
- 12:29
we use that to sort of define the agent
- 12:31
and make it better.
- 12:33
And these are, you know, our real scores
- 12:35
straight from weave. So we have a bunch
- 12:37
of different categories that we measure
- 12:38
ourselves on. I think the agent is
- 12:40
really good at conceptually guiding you.
- 12:41
We want to make it better at doing some
- 12:43
error analysis for projects. You know,
- 12:44
we try to make these as difficult as
- 12:46
possible for the agent to really test
- 12:47
the metal of how this thing performs.
- 12:50
And so I'll hop back to Arya now.
- 12:52
There's sort of five minutes left um
- 12:53
with sort of a demo of what it's
Running the evaluation request
Aysola asks ARIA to add a trace to offline evals and run the candidate and production agents on it. ARIA begins a shell step; the evaluations are expected to appear in Weave as they run.
Text in image
ARIA hey take this trace log it into our ofline evals and then run the canddiate and production agent on it 019f23fe-e638-7120-8014-a663c7e9dd63 shell grep -nE '^#{1,2} ' skills/wbagent/references/WEAVE.md | head -80 && sed -n '1,220p' skills/w... Interface text: wandb.ai/wandb/aria-researches-aria/weave/evaluations?view=evaluations_default wandb > Projects > aria-researches-aria > Evaluations Evaluations Compare All evaluations All datasets Filter inputs output Trace | Feedback | Status | model >> | self >> | display... prod-trace-nanochat-log-qu... | 31c3 | core_wb_agen... | prod-trace-na... prod-trace-nanochat-log-qu... | a0d0 | core_wb_agen... | prod-trace-na... prod-trace-nanochat-log-qu... | edb0 | core_wb_agen... | prod-trace-na... prod-trace-nanochat-log-qu... | ce38 | core_wb_agen... | prod-trace-na... smoke-all__core_wb_agent... | 249b | core_wb_agen... | smoke-all-eval... smoke-all__core_wb_agent... | c7d5 | core_wb_agen... | smoke-all-eval... smoke-all__core_wb_agent... | 964a | core_wb_agen... | smoke-all-eval... New chat Today hey take this trace log it into o... aria-researches-aria yoo! aria-researches-aria Aria: run the WBAF smoke eval aria-researches-aria yo we feel comfortable running ari... aria-researches-aria Yesterday suggest a fix for this 019f2016-e160... wb-agent-team/wandb-agent-p... Quickly give a brief summary of th... wb-agent-team/wandb-agent-p... this latest eval was too hard make i... zubin-autoresearch-prompts Hi mom sup cutie. we want to setup some ... wb-agent-team/wandb-agent-p... Last 7 Days gimme a report highlighting the cu... zubin-dump-new I want to simulate the signals prod... zubin-dump-new find me the most unique conversat... wb-agent-team/wandb-agent-p... yo this current trace whats up with ... wb-agent-team/wandb-agent-p... gimme the last autoresearch swee... aria-researches-aria Ask ARIA Project MODELS Workspace Runs More WEAVE Agents Traces Evals Playground Monitors Support Shortcuts Docs Zubin Aysola wandb Ask Gemini Work12:54Demo milestone
- 12:55
actually doing. So right now it's going
- 12:56
to run a bunch of code as it's trying to
- 12:58
rip this production trace and log it
- 12:59
into the framework. If I hop into this
- 13:02
uh live demo that I just triggered with
- 13:03
that nice long prompt, you know, Arya is
- 13:05
going to tell me the research runs that
- 13:06
it did. So we can click through some of
- 13:08
these links. Uh I asked it to write a
- 13:10
report using weights and biases reports
- 13:11
from the uh run that it just had. If we
- 13:14
scrub this, we can see that this is the
- 13:15
most recent production trace that it
Candidate evaluation
The candidate evaluation shows one example: it passed, with an average score of 0.996. The task asks the agent to explain what happened in a nanochat run using its logs.
Text in image
prod-trace-nanochat-log-query__core_wb_agent.candidate Evaluation Runtime: 1m52s Created on: 1 hour ago Created by: Zubin Aysola prod-trace-nanochat-log-query-evaluation:v1 core_wb_agent.candidate-runner:v0 prod-trace-nanochat-log-query:v0 Scorers output succeeded 100.0% scorer passed 100.0% score 0.996 avg row_summary model_latency 97.68 avg Select a scorer from the sidebar to view its distribution and filter examples 1 examples #1 name prod-trace/nanochat-log-query instruction You are on the W&B Logs tab for run `uoui38bv` in project `wandb/nanochat`. Query this log and explain what happened. Page context: - URL: https://wandb.ai/wan... output: trajectory [{"role":"user","content":"You are on the W&B Logs tab for run `uoui38bv` in project `wandb/nanochat`.\nQuery this log and explain what happened.\n\nPage conte... Interface text: wandb > Projects > aria-researches-aria > Evaluations Evaluations Reset view Save view Compare All evaluations Evaluation Call Feedback Summary Use Trace Feedback Status View traces View results Most failing first Project Workspace Runs More Agents Traces Evals Playground Monitors Support 1–7 of 713:16Demo milestone
- 13:17
just logged. It wrote itself a new task,
- 13:19
ran it, and then scored it. And so this
- 13:21
is like the production variant getting
- 13:22
benchmarked on our specific task. If we
- 13:24
look at the report that it generated,
Trace-to-evaluation report
The demo turns a production support trace into a regression task. Both agents pass, with the candidate scoring 0.9960 versus production’s 0.9933; the report recommends using supported Weave primitives to replace the invalid logging call.
Text in image
Last updated: July 2, 2026 ARIA researches ARIA: trace → eval → hillclimb 🔥 The live demo in one sentence We mine a real production WB Agent trace, turn it into a WBAF regression task, run production vs candidate, and use the resulting Weave Evaluation to choose the next agent hillclimb. Verdict | Production | Candidate | Delta Score | 0.9933 | 0.9960 | +0.0027 Passed | True | True | — Must-pass OK | True | True | — Punchline: candidate narrowly wins, both pass, and the remaining improvement is crisp: explicitly recommend supported Weave primitives when replacing invalid weave.log(...). 💡 Demo beat: this is not a toy benchmark — it starts from a real production support trace and becomes a reusable regression eval. 1. The production trace we turned into a task • Source trace: https://wandb.ai/wb-agent-team/wandb-agent-prod/weave/agents/conversations/019f2387-5343-7860-afa7-1b87b46d7ff0?filters[custom_attrs_string:wb_agent.wandb_organization]=wandb • User problem: diagnose a failed wandb/nanochat run from Logs-tab data. • Run: wandb/nanochat/uoui38bv • Root cause: AttributeError: module 'weave' has no attribute 'log' • Failure site: /workspace/nanochat/core_eval.py:200, inside Interface text: Chrome; File; Edit; View; History; Bookmarks; Profiles; Tab; Window; Help wandb.ai/wandb/aria-researches-aria/reports/ARIA-researches-ARIA-—-trace-to-eval-demo--[illegible] Ask Gemini; Work wandb › Projects › aria-researches-aria › Reports › ARIA researches ARIA — tr... Zubin Aysola; wandb aria-researches; ARIA researc...; wandb-agent-p...; wbagent-experi...; WandBAgentFac...; AIE World's Fair...; WBAF & the Fly...
13:25Demo milestone
- 13:25
this is the demo that I asked it to do.
- 13:27
Um, so you know, it ran a real womb
- 13:30
agent trace, turned it into a WBF
- 13:32
regression task. WBAF is the factory
- 13:34
that I build, which is the weights and
- 13:36
biases agent factory. That's the
- 13:37
principle behind our offline
- 13:38
benchmarking. It identified that the
- 13:40
problem was that we weren't calling
- 13:41
weave.log, one of our SDK calls properly
- 13:43
in the sandbox. It replicates the source
- 13:45
trace, which we can click into here, uh,
- 13:47
and then runs a bunch of variants of the
- 13:49
agent to see how it makes itself better.
- 13:50
And so, you know, it added a hill climb
Next improvement target
The proposed hillclimb asks the candidate to name supported replacements for invalid weave.log(...) calls. Both agents locate the exception; recommendation specificity is the only non-perfect rubric item.
Text in image
5. Hillclimb target The next candidate patch is small: When diagnosing invalid weave.log(...), explicitly name supported Weave alternatives: weave.attributes(...), weave.get_current_call(), or weave.log_call(...), depending on the user's intent. Why this is a good hillclimb: - all must-pass behaviors already work; - both agents correctly query logs and locate the exception; - the only non-perfect rubric item is recommendation specificity; - the candidate already edges production, so this is a safe polish patch. Links: - Weave Evaluations: https://wandb.ai/wandb/aria-researches-aria/weave/evaluations - Report asset run: https://wandb.ai/wandb/aria-researches-aria/runs/[illegible] - Persistent artifact: wandb/aria-researches-aria/wbaf-rapid-refresher:latest 6. Meta task: ARIA researches this demo live This turns the demo into a self-referential eval: the agent is dropped into wandb/aria-researches-aria and must rediscover the demo package from live W&B / Weave data. Persisted paths in wandb/aria-researches-aria/wbaf-rapid-refresher:latest: Interface text: Chrome wandb > Projects > aria-researches-aria > Reports > ARIA researches ARIA — tr... Ask Gemini Work Zubin Aysola wandb 1-1 of 1
13:52Demo milestone
- 13:52
target uh which was basically like
- 13:54
here's what to do to fix it. Ran the
- 13:56
trace and then we can see if it gives us
- 13:58
a little explanation of exactly what
- 13:59
happened at the end. Uh how did the prod
- 14:03
versus candidate variant perform
- 14:07
and you know this is now what I live in.
- 14:09
And so I think the flywheel here is
- 14:11
exceptionally compelling for me where
- 14:13
instead of going back to my cloud code
- 14:14
and writing offline benchmarks and
- 14:16
trying to think about what I want the
- 14:17
agent to do, I'm just going to live in
- 14:18
this platform instead and hop between my
- 14:21
production tracing project where I'm
- 14:22
looking at traces roll in as they come
- 14:24
through over time where AR is, you know,
- 14:26
building itself and then hop back into
- 14:27
my offline evaluation project to sort of
- 14:29
see what my team is doing, what I'm
- 14:31
doing, and what changes I want to make.
- 14:32
what change did we make to the prod
- 14:35
skill or to the agent variant
- 14:39
etc. And you know to sort of like watch
- 14:42
this thing roll out. I think a big
- 14:44
challenge that we have is it's really
- 14:45
easy to go like auto mode for some of
- 14:47
these tasks where you want to just see
- 14:48
the agent do everything. And I haven't
- 14:50
written a line of code in maybe eight
- 14:51
months because I just tell Claude to
- 14:53
write all my code for me. And that's a
- 14:54
really nice pattern, but it doesn't
- 14:56
absolve yourself of the thought behind
- 14:57
how we want to make improvements. And I
- 14:59
think using these tools to improve
- 15:01
themselves is very valuable because you
- 15:02
get to spend more of your time in the
- 15:04
gray of actually trying to think how we
- 15:06
make this system better, right? And so
- 15:08
if you're building an agent, I implore
- 15:09
you to use weights and biases to both
- 15:10
track that agent etc. Uh we have a
- 15:12
really excellent model tracking platform
- 15:14
as well. So some of the other demos that
- 15:16
we've shown here are Arya training
- 15:17
machine learning models on H200's
- 15:19
running on core infrastructure and doing
- 15:21
auto research for Karpathy's nano chat
- 15:23
etc or full-scale production projects.
- 15:25
But I think the exciting thing in this
- 15:26
case for me is that I don't need to
- 15:28
leave this platform in order to do my
- 15:30
job now right. I have full observability
- 15:31
from a production standpoint. I have
- 15:33
full observability from an offline
- 15:34
standpoint. And if we look at, you know,
- 15:35
the things that Arya is saying, it's
- 15:37
running lots of evaluations on my behalf
- 15:39
to improve itself. And that auto mode
- 15:41
that I just mentioned is really exciting
- 15:44
because now I get to spend all of my
- 15:45
time thinking about how I can make this
- 15:46
system reinforce itself better. The
- 15:48
tight little guard rails that I can put
- 15:49
around it to make it a more useful tool
- 15:51
for all of you and then inherently for
- 15:53
me. Um, but yeah, that's a that's a
- 15:56
quick demo. We can we can look at the
- 15:58
production call trace that we have here
- 15:59
from Arya. This is the evaluation that
- 16:01
it just ran. So if we look into like the
- 16:03
actual trace, we'll see that, you know,
- 16:04
AR did a bunch of work. It ran this
- 16:06
predict and score column. We have a
- 16:07
bunch of tool calls that ran. Uh and you
- 16:09
know, if we hop back into the chat,
- 16:10
we'll see the actual variant that it
- 16:11
ran. Um it looks like the candidate
- 16:13
variant just had a tight little prompt
- 16:15
that we injected into the system prompt
- 16:16
or in one of the skills to sort of solve
- 16:18
that exact SDK error uh and mitigate it.
- 16:21
And that kind of replication from
- 16:22
production to simulation to agent then
- 16:25
defining the improvement pattern is the
- 16:27
thing that I really would like to leave
- 16:28
everybody with.
Introducing CoreWeave ARIA
Aysola says ARIA performs offline hill climbing to help build itself. The slide describes an agent that runs experiments, creates visualizations, and analyzes results.
Text in image
[illegible] with W&B Weave Introducing CoreWeave ARIA, AI Research & Iteration Agent • Turn on self-improvement loops: ARIA is an always-on research partner, running experiments, analyzing outcomes, and continuously improving your models and agents. • Automate complex workspace actions: ARIA creates custom visualizations on the fly to back up its findings, so you don’t need to manually build a new view or chart for every insight surfaced in the data yourself. • Gain deeper experiment insights: ARIA analyzes your runs and provides actionable insights, so you reach a decision in minutes instead of digging for hours. Embedded screenshot: Search panels with regex Panel Section 2 val/loss v. Reverse Index Y-axis ticks: 9, 8.5, 8, 7.5, 7, 6.5, 6 X-axis ticks: [illegible] Charts 7 val_bpb Showing up to 10 runs [illegible] ARIA The 4x-data winner is monotonically improving through step 600, so I’m launching a third wave around that regime: 4x/8x data, longer runs, and mild regularization. This is now exploiting the actual winning curve, not guessing. apply_patch /workspace/submit_scale_data_12_k8s.py Submitting the third 12-run scale-data wave now. shell python /workspace/submit_scale_data_12_k8s.py Submitted. I’ll wait for the wave to finish and then summarize the best result. shell sleep 180; python [illegible] The third wave improved again: best final is now 8.152 bpb with [illegible]. That’s a ~12.4% reduction from the 9.307 parallel-test best final, and ~30% vs the original 160-step loop-1 baseline scale. The winner is also still at its best at the final step, so I’m launching a smaller frontier wave around 8x/16x data + width384/512 to see if we can break 8.0. apply_patch /workspace/submit_frontier_8_k8s.py Submitting the 8-run frontier wave. shell python /workspace/submit_frontier_8_k8s.py Submitted. I’ll wait and rank it when complete. shell sleep 240; python [illegible] Ask ARIA 9 Interface text: Chrome File Edit View History Bookmarks Profiles Tab Window Help Thu Jul 2 11:12 AM docs.google.com/presentation/d/[illegible] Ask Gemini Work aria-researches-aria Workspace – Weights & Biases wandb.ai Memory usage: 582 MB
- 16:30
So that's coreweave Arya. Uh welcome to
- 16:33
weights and biases. I hope that was an
- 16:35
interesting talk in sort of how we
- 16:36
decide to build uh our offline
- 16:38
evaluation metrics, how we reap data
- 16:39
from production and the flywheel of
- 16:41
trying to build these agents and the
- 16:42
things that I think about on a
- 16:44
day-to-day basis. Uh and yeah, let's get
- 16:46
started. Thank you all so much.
- 17:04
>> [music]