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.

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

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

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

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

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

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

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
Work

4:28Demo milestone

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

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...

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

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

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...

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]

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

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

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

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

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

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 7

13:16Demo milestone

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

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

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.

Source frame: When the agent and its benchmark change togetherOpen full source frame
Source frame: When the agent and its benchmark change together

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.

1:061:07
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

0:16 · section reference included

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.

Source frame: A production conversation becomes an experimentOpen full source frame
Source frame: A production conversation becomes an experiment

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.

3:023:04
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

2:54 · section reference included

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.

Source frame: Keep the deployed agent inside the research loopOpen full source frame
Source frame: Keep the deployed agent inside the research loop

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.

5:185:19
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

5:13 · section reference included

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.

Source frame: Build the environment before running the agentOpen full source frame
Source frame: Build the environment before running the agent

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

YAML configurationDeclare the evaluation configuration.
Hydrate and prepareLoad required live data and create the environment.
Add runtime configurationPut data unavailable in the initial YAML back into the configuration.
Run the agentExecute the same agent version used in production.
Score the rolloutMeasure task completion and compare variant behavior.
Tear downAllow fresh runs without interfering with teammates.
Environment preparation supplies runtime configuration that the initial YAML cannot contain. Scoring and teardown follow the agent rollout.
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.
8:128:13
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

8:04 · section reference included

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.
Source frame: Test user flows, then preserve useful behaviorOpen full source frame
Source frame: Test user flows, then preserve useful behavior

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.

10:4910:51
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

10:47 · section reference included

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.

Source frame: The demo finds an SDK error and creates a targeted candidateOpen full source frame
Source frame: The demo finds an SDK error and creates a targeted candidate

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

Production traceRecorded interaction exposes improper weave.log usage in the sandbox.
Regression taskARIA converts the trace into an offline task and reproduces it.
Production variantcomparison — Run the current agent on the task.
Candidate variantcomparison — Add a targeted prompt to the system prompt or a skill for the SDK error.
Scored runs and reportInspect executions and compare production with the candidate.
The production trace supplies a regression task. The current agent and a candidate with a targeted instruction change are tested against that task.
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.
13:0513:06
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

12:50 · section reference included

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?

Source frame: Automation leaves the improvement decision with peopleOpen full source frame
Source frame: Automation leaves the improvement decision with people

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.

14:4214:44
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

14:42 · section reference included

Resources

From the talk

  • W&B WeaveReference2:09

    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.

  1. 0:16

    Okay. Hello. Thank you for showing up.

  2. 0:19

    Uh my name is Zuben Isola. Uh I work at

  3. 0:22

    Weights and Biases. I'm building the

  4. 0:24

    Arya agent which is something that we

  5. 0:25

    released to general availability on

  6. 0:28

    Monday. You might have seen Tim's talk

  7. 0:30

    uh one of the pe my peers at Weights and

  8. 0:31

    Biases who I work with uh on the main

  9. 0:33

    stage yesterday. So I'm going to give

  10. 0:35

    you a little bit of a deep dive into how

  11. 0:37

    we evaluate and build the Arya agent uh

  12. 0:39

    and in particular uh the evaluation

  13. 0:41

    framework that we use and how we use

  14. 0:42

    Arya to sort of self-reinforce itself in

  15. 0:44

    the loop of doing research for itself uh

  16. 0:47

    and talk about some weights and biases

  17. 0:49

    things. So yeah, this is a rip from some

  18. 0:51

    of the slides that I presented at

  19. 0:52

    Nurups, but uh I think there's some

  20. 0:54

    interesting things about like using uh

  21. 0:56

    agentic harnesses. I I imagine most

  22. 0:58

    people in the audience or at this

  23. 0:59

    conference are all excited to build

  24. 1:01

    agent harnesses or maybe use cloud code

  25. 1:03

    with skills in a variety of different

  26. 1:04

    packages, but there's, you know, pretty

  27. 1:06

    strong differences in the way that you

  28. 1:07

    package these AI agents if you use them

  29. 1:09

    with different tool calls, etc. on a

  30. 1:11

    variety of different benchmarks. And so

  31. 1:12

    inspired by that, we're doing some work

  32. 1:14

    at Weights and Biases to build our own

  33. 1:15

    agent harness to do research for you in

  34. 1:17

    the weights and biases platform. Um, you

  35. 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
  36. 1:19

    know, and then there's probably some

  37. 1:20

    other things that I don't need to

  38. 1:21

    convince people of as to like why we

  39. 1:23

    want software agents and why a software

  40. 1:25

    harness as opposed to like just letting

  41. 1:26

    the, you know, LM run free and call

  42. 1:28

    tools or whatever else. Uh, but that's

  43. 1:29

    not for here. Uh, but one big problem

  44. 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
  45. 1:32

    presents itself, which is basically the

  46. 1:34

    thing that I go to bed thinking about

  47. 1:36

    every day, which is, you know,

  48. 1:38

    benchmarks, evaluations, the agents, and

  49. 1:40

    how you configure them are all

  50. 1:41

    covariant. And so like if you're trying

  51. 1:43

    to apply principled evaluations to any

  52. 1:45

    sort of system that dynamically changes,

  53. 1:47

    you need to have good measurement to see

  54. 1:49

    how the system actually performs. And

  55. 1:51

    you really want to see how the system

  56. 1:52

    performs in both your production

  57. 1:53

    environment and your offline

  58. 1:55

    environment. Uh you know if you're RLP

  59. 1:57

    build from a long time ago, you might

  60. 1:59

    think about like the sim tore gap uh

  61. 2:01

    which is like basically how do we

  62. 2:02

    translate simulation environments into

  63. 2:03

    the real world environments etc. Uh and

  64. 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
  65. 2:06

    so there's sort of two things that I'll

  66. 2:07

    talk about uh and then give a live demo

  67. 2:09

    of which is weights and biases weave for

  68. 2:12

    agents which is basically in my opinion

  69. 2:13

    at least the best observability platform

  70. 2:15

    for both production and offline tracing

  71. 2:17

    of agents. So I use it predominantly

  72. 2:20

    from the offline side where I build

  73. 2:22

    simulation environments run the Arya

  74. 2:23

    agent over them and then track them in

  75. 2:25

    weave and my entire team does that as

  76. 2:27

    well. So I can see all of our

  77. 2:28

    performance in offline metrics. And then

  78. 2:30

    the other half of my team works on the

  79. 2:31

    production side of things, deploying the

  80. 2:33

    agent, logging the same things in the

  81. 2:34

    exact same format so that I can rip

  82. 2:36

    those production traces into our

  83. 2:38

    environments and then hill climb on them

  84. 2:39

    or resolve our errors. And it's a pretty

  85. 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
  86. 2:41

    nice flywheel. And then obviously the

  87. 2:43

    other thing that I'm here to talk about

  88. 2:44

    is Arya, the weights and devices agent

  89. 2:45

    itself, which is basically the thing

  90. 2:47

    that we use to now build itself because

  91. 2:49

    it's sophisticated enough that it can

  92. 2:50

    actually do that offline hill climbing

  93. 2:52

    uh by itself. So I'm going to just jump

  94. 2:54

    into a super quick live demo and then

  95. 2:55

    we'll talk through some other slides uh

  96. 2:57

    about how we built the offline

  97. 2:58

    evaluation framework. So if you hop into

  98. 3:00

    the weights and biases platform, this is

  99. 3:02

    a demo project that I called Arya

  100. 3:04

    researches Arya here. Uh and I'm just

  101. 3:06

    going to chat to Arya and ask it to

  102. 3:08

    basically do auto research for itself.

  103. 3:10

    And so this is a relatively long prompt

  104. 3:11

    that I had it generate in actually one

  105. 3:12

    of these other sessions. Um but if we

  106. 3:15

    look at it, what it's going to do is

  107. 3:16

    it's going to take my codebase that is

  108. 3:18

    logged as a weights and biases artifact

  109. 3:19

    uh which we can see over here. It's

  110. 3:22

    going to launch training jobs uh against

  111. 3:24

    this codebase which is our offline

  112. 3:25

    evaluation framework. It's going to

  113. 3:27

    review production traces that we have,

  114. 3:29

    add new tasks to hill climb against uh

  115. 3:31

    and do stuff like that. And so, you

  116. 3:33

    know, this thing's going to cook for a

  117. 3:34

    little bit. The evaluations take a

  118. 3:35

    little bit of time to run. And so, we'll

  119. 3:37

    see Arya uh basically try to write a new

  120. 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

  121. 3:39

    variant for itself. The other side of

  122. 3:41

    this equation, right, is the production

  123. 3:43

    side of things. And so, this is a

  124. 3:45

    sanitized view of internal customer

  125. 3:47

    traces or internal traces on Arya. So

  126. 3:49

    we'll actually see very quickly uh that

  127. 3:51

    Arya will actually pop up here the exact

  128. 3:53

    conversation that we're running um right

  129. 3:55

    here. But in this trace I'm going to use

  130. 3:58

    this as an opportunity to take one of

  131. 4:00

    these production traces that are logged

  132. 4:01

    in weave and put them into my offline

  133. 4:03

    evaluation framework so that I can hill

  134. 4:05

    climb on them. And so I'm just going to

  135. 4:06

    do that live. We'll ask you know for a

  136. 4:07

    relatively simple task. Um this is going

  137. 4:09

    to be a little interesting because it's

  138. 4:10

    going to be slightly self-referential

  139. 4:12

    but I'll go here. I'll pop up in a new

  140. 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

  141. 4:15

    Arya tab and I'll just ask it hey take

  142. 4:17

    this trace log it into our offline evals

  143. 4:22

    I don't think spelling matters too much

  144. 4:23

    and then run the candidate and

  145. 4:26

    production agent on it

  146. 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
    Work

    4:28Demo milestone

  147. 4:29

    and we'll have it cook for that as well

  148. 4:31

    and we'll see those evaluations get

  149. 4:32

    logged into weave as they're running um

  150. 4:34

    so that's basically the tight version of

  151. 4:36

    what I do basically every day which is

  152. 4:38

    look at production traces in our weights

  153. 4:39

    and biases weave platform run

  154. 4:41

    evaluations in our codebase which is our

  155. 4:43

    offline client evaluation sandbox uh and

  156. 4:45

    then deploy new versions of the agent uh

  157. 4:47

    and work with my team to do that. And if

  158. 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

  159. 4:49

    we look at our production project, this

  160. 4:51

    is, you know, a bunch of traces that we

  161. 4:52

    have over the last seven weeks of our

  162. 4:53

    nightly uh like CI jobs that run where

  163. 4:55

    we evaluate the agent in its production

  164. 4:57

    format and other candidate variants that

  165. 4:58

    we cut. And so we can see our relative

  166. 5:00

    performance over time. Uh like you know,

  167. 5:02

    for a while the CI broke, we had Arya

  168. 5:04

    have to fix itself last night, but you

  169. 5:05

    know, we're getting about like 66%

  170. 5:07

    performance on some of the tasks, etc.

  171. 5:08

    And so we have a variety of tasks um

  172. 5:11

    that we train the agent to do. And so

  173. 5:13

    now I'm just going to jump into a

  174. 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...
  175. 5:14

    material version of the presentation to

  176. 5:16

    go a little bit deeper into the theory

  177. 5:18

    behind building a simulation environment

  178. 5:19

    for offline hill climbing for basically

  179. 5:21

    building a software agent where

  180. 5:23

    traditionally you might expect that you

  181. 5:24

    are really robust if you're doing

  182. 5:26

    reinforcement learning but I mostly

  183. 5:28

    prompt engineer these days because the

  184. 5:29

    sophisticated models are relatively good

  185. 5:31

    at performing tasks at weights and

  186. 5:32

    biases and so we're really working on

  187. 5:34

    building skills for the software agent

  188. 5:35

    more than doing reinforcement learning.

  189. 5:37

    But I think applying the same

  190. 5:38

    methodology to how you build the agent.

  191. 5:40

    So the same robustness of how you

  192. 5:42

    simulate environments uh is really

  193. 5:43

    helpful for our work. So we benchmark a

  194. 5:46

    bite-wise identical version of the agent

  195. 5:48

    in our production environment and our

  196. 5:49

    simulated environment. There's a lot of

  197. 5:51

    text on these slides that I and Claude

  198. 5:52

    sort of slop out. Uh but you know we'll

  199. 5:54

    just go for the graphics. Um so I think

  200. 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
  201. 5:56

    the exciting part here is that both

  202. 5:58

    using the logging framework from weave

  203. 5:59

    as well as just in the way that we've

  204. 6:01

    designed the system our research and

  205. 6:02

    production code are exactly the same.

  206. 6:03

    And in fact, there's like a 4-hour sync

  207. 6:05

    job that happens between production to

  208. 6:07

    our research environment so that we

  209. 6:08

    don't get any drift when you, you know,

  210. 6:10

    researchers are cutting new variants of

  211. 6:11

    the agent, new skills, etc., and doing

  212. 6:12

    their hill climbing. And so, we have

  213. 6:14

    this nice little tight loop that

  214. 6:15

    basically mirror each other on two sides

  215. 6:16

    of the stack from our deployment layer

  216. 6:18

    and our offline benchmarking layer. Uh,

  217. 6:21

    and then, you know, we expose internally

  218. 6:23

    as a team a bunch of run eval commands

  219. 6:25

    to generate score trajectories. And so

  220. 6:27

    that's what we were talking about with

  221. 6:29

    this like large project where we have a

  222. 6:30

    bunch of trajectory examples where if I

  223. 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

  224. 6:32

    click into one of these, you know, we

  225. 6:33

    can see like our relative scores of a

  226. 6:35

    variety of different metrics when it

  227. 6:36

    loads. Um, but essentially what we get

  228. 6:39

    is these super robust traces of the

  229. 6:41

    agent rolling out over time. And there's

  230. 6:43

    a lot of signal to reap from this. And I

  231. 6:44

    think the thesis behind this is generate

  232. 6:46

    a ton of traces and then decide

  233. 6:48

    what you're going to do with said

  234. 6:49

    ton of traces as you try to figure out

  235. 6:51

    how the agent performs. you're measuring

  236. 6:53

    emergent properties and then trying to

  237. 6:55

    align the agent in particular

  238. 6:56

    directions. And so the two ways that

  239. 6:58

    that happens is I look manually at the

  240. 7:00

    tasks or like we would do in that first

  241. 7:02

    example, I would ask Arya to review the

  242. 7:04

    roll out that it generated for itself or

  243. 7:06

    review some other rollout and decide

  244. 7:08

    what went wrong or what went well and

  245. 7:09

    try to reinforce that behavior through

  246. 7:11

    prompting or anything else. Uh and then

  247. 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...
  248. 7:14

    you know the actual method behind the

  249. 7:16

    agent is relatively simple. We want to

  250. 7:18

    test on a variety of the different

  251. 7:20

    models both models offered through

  252. 7:21

    corewave inference models offered

  253. 7:23

    through you know the foundation model

  254. 7:24

    players etc. And so we define you know a

  255. 7:26

    relatively agnostic software stack for

  256. 7:28

    how we treat compaction and how we

  257. 7:30

    prepare context and how we assemble UI

  258. 7:32

    payloads etc. And the again mental

  259. 7:34

    pattern behind this is to really try to

  260. 7:36

    make it very very simple to have lots of

  261. 7:39

    mutations of the exact same

  262. 7:40

    configuration. You want to basically

  263. 7:42

    YAML define different configurations of

  264. 7:43

    the agent to sort of get multiple

  265. 7:45

    parallel uh variants and then test them

  266. 7:47

    all and see what happens because

  267. 7:49

    ultimately you can have insight into how

  268. 7:51

    to make the problem better. But if we

  269. 7:52

    take an adage from old reinforcement

  270. 7:54

    learning training or just simple model

  271. 7:55

    training, it's just better to run more

  272. 7:57

    experiments than fewer. And so that's

  273. 8:00

    the thesis behind the agent harness

  274. 8:01

    itself too. And so then you know we talk

  275. 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]
  276. 8:04

    about like the sandbox stack behind the

  277. 8:06

    agent. And I think that you know there's

  278. 8:08

    a lot of mentions of code mode here at

  279. 8:10

    this conference and other things like

  280. 8:11

    that. And one thing that we really want

  281. 8:12

    to see happen because we want to build

  282. 8:13

    the best product for our customers is to

  283. 8:15

    just have a sandbox environment that

  284. 8:17

    they can do anything they wanted. So for

  285. 8:19

    example prior to yesterday I wasn't

  286. 8:22

    entirely certain that Arya was going to

  287. 8:23

    be able to do a bunch of parallel

  288. 8:25

    executions of itself. And so I asked it

  289. 8:27

    both while I was writing this

  290. 8:28

    presentation and preparing for this to

  291. 8:30

    just create the sandbox environment uh

  292. 8:32

    for itself to run a bunch of parallel

  293. 8:34

    executions of its own research loop.

  294. 8:36

    Right. Uh, and so like having that

  295. 8:38

    unconstrained environment is really

  296. 8:39

    useful for getting the agent to do

  297. 8:41

    emergent things.

  298. 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
  299. 8:44

    And so, you know, I I'm not really sure

  300. 8:46

    what the six phrases per record uh

  301. 8:47

    means, but I think from a theory

  302. 8:50

    standpoint, we want to build then a good

  303. 8:53

    pattern for generating these simulation

  304. 8:54

    environments. And so we have a

  305. 8:56

    relatively agnostic DAG that you might

  306. 8:58

    think about in a traditional machine

  307. 8:59

    learning context, which is like we take

  308. 9:00

    a configuration, which are these YAML

  309. 9:02

    files. We hydrate them. So we load the

  310. 9:04

    live data that we need to. We set up an

  311. 9:06

    environment and the environments and

  312. 9:07

    weights and biases are relatively

  313. 9:09

    expensive because we have lots of

  314. 9:10

    production data that we might want to

  315. 9:12

    test against or other things like that.

  316. 9:13

    These are full machine learning training

  317. 9:14

    logs. We might have to simulate uh GPU

  318. 9:16

    executions if you're doing auto research

  319. 9:18

    etc. That's a relatively intensive

  320. 9:20

    process and so you might want to

  321. 9:21

    parallelize that. Then you would

  322. 9:22

    rehydrate because oftentimes there's

  323. 9:24

    runtime configurations that you can't

  324. 9:25

    encode in a YAML specification and so

  325. 9:28

    you hot patch that data back into the

  326. 9:30

    config config. Uh and then you run the

  327. 9:32

    agent and running the agent is trivial.

  328. 9:33

    You run it, as I mentioned at the

  329. 9:35

    beginning, in the bite-wise identical

  330. 9:36

    version that you have in production, and

  331. 9:38

    then you score it. And scoring is where

  332. 9:40

    I spend a lot of my time, which is

  333. 9:41

    basically trying to think about the

  334. 9:42

    robustness of how you measure results.

  335. 9:44

    Uh, and I imagine most people here are

  336. 9:46

    pretty good at thinking about things

  337. 9:47

    like that. And I think it's really worth

  338. 9:49

    spending the time once you have a

  339. 9:50

    configuration of how to run evaluations,

  340. 9:52

    thinking about the robustness of our

  341. 9:53

    emails. uh a Slack message that I

  342. 9:55

    probably can't show live on the screen

  343. 9:57

    that I got from one of my teammates

  344. 9:58

    today made me very happy where he

  345. 9:59

    basically just spent all of yesterday

  346. 10:00

    thinking about the health of our

  347. 10:02

    evaluations and the drift between our

  348. 10:04

    evaluations and production. Uh and I

  349. 10:05

    think that kind of mental model of like

  350. 10:07

    you know why are things working well why

  351. 10:08

    are things not working well? What are

  352. 10:10

    the gaps that we see in these two

  353. 10:11

    patterns is really useful. Um in our

  354. 10:13

    case weights and biases Arya scores

  355. 10:15

    itself in two patterns which is

  356. 10:16

    normatively which gives us basically did

  357. 10:18

    we pass a task or not and then

  358. 10:20

    relativistically where we can set styles

  359. 10:22

    based on one variant where it asks

  360. 10:24

    questions to the user and one variant

  361. 10:25

    where it doesn't ask questions to the

  362. 10:26

    user and we can sort of see which one

  363. 10:28

    behaves better uh with a relative

  364. 10:30

    scoring. So a pretty traditional

  365. 10:31

    formulation from a reinforcement

  366. 10:33

    learning standpoint. And then of course

  367. 10:34

    if you're running this in parallel you

  368. 10:36

    got to tear it down because you want to

  369. 10:37

    start it again and you don't want to

  370. 10:38

    clobber your teammates's work etc. Uh

  371. 10:40

    and so we'll see what happens in this

  372. 10:42

    project because a bunch of my teammates

  373. 10:43

    are running eval right now and so we'll

  374. 10:44

    see how Arya performs.

  375. 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
  376. 10:47

    Uh and then you know more traditionally

  377. 10:49

    on tasks I think the eval tasks are just

  378. 10:51

    YAML specifications that we define as a

  379. 10:53

    starting condition of an environment

  380. 10:55

    with a bunch of user configurations as

  381. 10:57

    well as then an ending condition that we

  382. 10:58

    sort of want to get to. Uh in our case

  383. 11:00

    tasks are flows from users. So we

  384. 11:02

    simulate them in three ways. Uh we do

  385. 11:04

    just simple text which is like hey

  386. 11:06

    here's an instruction to Arya. You might

  387. 11:08

    imagine that the task that it generates

  388. 11:09

    in this chat over here um where it's

  389. 11:12

    logging a specific trace from production

  390. 11:14

    uh into our local framework actually

  391. 11:16

    looks like you know just a simple

  392. 11:19

    question that I asked it basically which

  393. 11:20

    was that question of Arya doing auto

  394. 11:21

    research itself um we can just ask it to

  395. 11:24

    continue

  396. 11:26

    um as it does that and that task is just

  397. 11:29

    a single question to it there's other

  398. 11:31

    variants of the tasks that exist as well

  399. 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
  400. 11:33

    where we simulate a language model that

  401. 11:35

    has a persona from a user and we ask it,

  402. 11:38

    hey, pretend to be this user, ask

  403. 11:39

    certain questions in a particular order

  404. 11:40

    so that we can simulate multi-turn

  405. 11:42

    environments and interactions with our

  406. 11:43

    agent. Uh, and then you just run a bunch

  407. 11:45

    of these. So, we have 886 tasks. We

  408. 11:47

    categorize them by levels. We expose

  409. 11:48

    them to our product team so that they

  410. 11:49

    can decide whether or not the tasks are

  411. 11:51

    good enough or they reflect things that

  412. 11:52

    we care about from our benchmarks, etc.

  413. 11:54

    And then we just run them a bunch of

  414. 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
  415. 11:55

    times.

  416. 11:57

    Yeah. And then, you know, the ultimate

  417. 11:59

    thing here is that the trajectory is

  418. 12:00

    like the meat and the data that I live

  419. 12:02

    behind. And so I look at our production

  420. 12:04

    traces that exist in our traffic and our

  421. 12:05

    offline traces that exist. And I really

  422. 12:07

    try to exploit the behavior patterns

  423. 12:09

    from both of those. And so we build

  424. 12:11

    tooling ourselves to understand our

  425. 12:13

    traces. Uh we have like this behavior

  426. 12:14

    trace project etc that we run in both

  427. 12:16

    prod and offline.

  428. 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
  429. 12:19

    And yeah that's the eval flywheel. So

  430. 12:21

    you know fundamentally every production

  431. 12:23

    miss or every production goodness as

  432. 12:24

    well because I think it's useful to hill

  433. 12:26

    climb in a positive direction uh becomes

  434. 12:27

    a task for our agent framework. And so

  435. 12:29

    we use that to sort of define the agent

  436. 12:31

    and make it better.

  437. 12:33

    And these are, you know, our real scores

  438. 12:35

    straight from weave. So we have a bunch

  439. 12:37

    of different categories that we measure

  440. 12:38

    ourselves on. I think the agent is

  441. 12:40

    really good at conceptually guiding you.

  442. 12:41

    We want to make it better at doing some

  443. 12:43

    error analysis for projects. You know,

  444. 12:44

    we try to make these as difficult as

  445. 12:46

    possible for the agent to really test

  446. 12:47

    the metal of how this thing performs.

  447. 12:50

    And so I'll hop back to Arya now.

  448. 12:52

    There's sort of five minutes left um

  449. 12:53

    with sort of a demo of what it's

  450. 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
    Work

    12:54Demo milestone

  451. 12:55

    actually doing. So right now it's going

  452. 12:56

    to run a bunch of code as it's trying to

  453. 12:58

    rip this production trace and log it

  454. 12:59

    into the framework. If I hop into this

  455. 13:02

    uh live demo that I just triggered with

  456. 13:03

    that nice long prompt, you know, Arya is

  457. 13:05

    going to tell me the research runs that

  458. 13:06

    it did. So we can click through some of

  459. 13:08

    these links. Uh I asked it to write a

  460. 13:10

    report using weights and biases reports

  461. 13:11

    from the uh run that it just had. If we

  462. 13:14

    scrub this, we can see that this is the

  463. 13:15

    most recent production trace that it

  464. 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 7

    13:16Demo milestone

  465. 13:17

    just logged. It wrote itself a new task,

  466. 13:19

    ran it, and then scored it. And so this

  467. 13:21

    is like the production variant getting

  468. 13:22

    benchmarked on our specific task. If we

  469. 13:24

    look at the report that it generated,

  470. 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

  471. 13:25

    this is the demo that I asked it to do.

  472. 13:27

    Um, so you know, it ran a real womb

  473. 13:30

    agent trace, turned it into a WBF

  474. 13:32

    regression task. WBAF is the factory

  475. 13:34

    that I build, which is the weights and

  476. 13:36

    biases agent factory. That's the

  477. 13:37

    principle behind our offline

  478. 13:38

    benchmarking. It identified that the

  479. 13:40

    problem was that we weren't calling

  480. 13:41

    weave.log, one of our SDK calls properly

  481. 13:43

    in the sandbox. It replicates the source

  482. 13:45

    trace, which we can click into here, uh,

  483. 13:47

    and then runs a bunch of variants of the

  484. 13:49

    agent to see how it makes itself better.

  485. 13:50

    And so, you know, it added a hill climb

  486. 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

  487. 13:52

    target uh which was basically like

  488. 13:54

    here's what to do to fix it. Ran the

  489. 13:56

    trace and then we can see if it gives us

  490. 13:58

    a little explanation of exactly what

  491. 13:59

    happened at the end. Uh how did the prod

  492. 14:03

    versus candidate variant perform

  493. 14:07

    and you know this is now what I live in.

  494. 14:09

    And so I think the flywheel here is

  495. 14:11

    exceptionally compelling for me where

  496. 14:13

    instead of going back to my cloud code

  497. 14:14

    and writing offline benchmarks and

  498. 14:16

    trying to think about what I want the

  499. 14:17

    agent to do, I'm just going to live in

  500. 14:18

    this platform instead and hop between my

  501. 14:21

    production tracing project where I'm

  502. 14:22

    looking at traces roll in as they come

  503. 14:24

    through over time where AR is, you know,

  504. 14:26

    building itself and then hop back into

  505. 14:27

    my offline evaluation project to sort of

  506. 14:29

    see what my team is doing, what I'm

  507. 14:31

    doing, and what changes I want to make.

  508. 14:32

    what change did we make to the prod

  509. 14:35

    skill or to the agent variant

  510. 14:39

    etc. And you know to sort of like watch

  511. 14:42

    this thing roll out. I think a big

  512. 14:44

    challenge that we have is it's really

  513. 14:45

    easy to go like auto mode for some of

  514. 14:47

    these tasks where you want to just see

  515. 14:48

    the agent do everything. And I haven't

  516. 14:50

    written a line of code in maybe eight

  517. 14:51

    months because I just tell Claude to

  518. 14:53

    write all my code for me. And that's a

  519. 14:54

    really nice pattern, but it doesn't

  520. 14:56

    absolve yourself of the thought behind

  521. 14:57

    how we want to make improvements. And I

  522. 14:59

    think using these tools to improve

  523. 15:01

    themselves is very valuable because you

  524. 15:02

    get to spend more of your time in the

  525. 15:04

    gray of actually trying to think how we

  526. 15:06

    make this system better, right? And so

  527. 15:08

    if you're building an agent, I implore

  528. 15:09

    you to use weights and biases to both

  529. 15:10

    track that agent etc. Uh we have a

  530. 15:12

    really excellent model tracking platform

  531. 15:14

    as well. So some of the other demos that

  532. 15:16

    we've shown here are Arya training

  533. 15:17

    machine learning models on H200's

  534. 15:19

    running on core infrastructure and doing

  535. 15:21

    auto research for Karpathy's nano chat

  536. 15:23

    etc or full-scale production projects.

  537. 15:25

    But I think the exciting thing in this

  538. 15:26

    case for me is that I don't need to

  539. 15:28

    leave this platform in order to do my

  540. 15:30

    job now right. I have full observability

  541. 15:31

    from a production standpoint. I have

  542. 15:33

    full observability from an offline

  543. 15:34

    standpoint. And if we look at, you know,

  544. 15:35

    the things that Arya is saying, it's

  545. 15:37

    running lots of evaluations on my behalf

  546. 15:39

    to improve itself. And that auto mode

  547. 15:41

    that I just mentioned is really exciting

  548. 15:44

    because now I get to spend all of my

  549. 15:45

    time thinking about how I can make this

  550. 15:46

    system reinforce itself better. The

  551. 15:48

    tight little guard rails that I can put

  552. 15:49

    around it to make it a more useful tool

  553. 15:51

    for all of you and then inherently for

  554. 15:53

    me. Um, but yeah, that's a that's a

  555. 15:56

    quick demo. We can we can look at the

  556. 15:58

    production call trace that we have here

  557. 15:59

    from Arya. This is the evaluation that

  558. 16:01

    it just ran. So if we look into like the

  559. 16:03

    actual trace, we'll see that, you know,

  560. 16:04

    AR did a bunch of work. It ran this

  561. 16:06

    predict and score column. We have a

  562. 16:07

    bunch of tool calls that ran. Uh and you

  563. 16:09

    know, if we hop back into the chat,

  564. 16:10

    we'll see the actual variant that it

  565. 16:11

    ran. Um it looks like the candidate

  566. 16:13

    variant just had a tight little prompt

  567. 16:15

    that we injected into the system prompt

  568. 16:16

    or in one of the skills to sort of solve

  569. 16:18

    that exact SDK error uh and mitigate it.

  570. 16:21

    And that kind of replication from

  571. 16:22

    production to simulation to agent then

  572. 16:25

    defining the improvement pattern is the

  573. 16:27

    thing that I really would like to leave

  574. 16:28

    everybody with.

  575. 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
  576. 16:30

    So that's coreweave Arya. Uh welcome to

  577. 16:33

    weights and biases. I hope that was an

  578. 16:35

    interesting talk in sort of how we

  579. 16:36

    decide to build uh our offline

  580. 16:38

    evaluation metrics, how we reap data

  581. 16:39

    from production and the flywheel of

  582. 16:41

    trying to build these agents and the

  583. 16:42

    things that I think about on a

  584. 16:44

    day-to-day basis. Uh and yeah, let's get

  585. 16:46

    started. Thank you all so much.

  586. 17:04

    >> [music]