RoboArchitect

Automating the Design of Robotic Agents with Persistent Memory

Shengguang Wu, Suning Huang, Cherie Ho, Ria Doshi, Hao Zhu, Serena Yeung-Levy

Stanford University

RoboArchitect studies the failures of a frozen robot policy and automatically designs and continually improves a robotic agent around it, without updating any model weights.

VLA policy evolved agent around the same frozen policy
Unseen scenes 4.5×
Unseen tasks 3.2×

Average success on held-out episodes, over diverse policy and benchmark setups.

Control routineReaches in from the side under a shelf boardX-VLA on VLABench
Control routineReaches the named object, not a memorized placeRLinf-π0.5 on LIBERO-Pro-10
Control routineDrives the arm to add a missing motion, pulling a drawer open by its handleSmolVLA on RoboCerebra
Control routineRescales the contact force, pushing until the door latches shutRLDX-1 on RoboCasa-365
Persistent memoryRemembers which grip worked for each objectOpenVLA-7B on LIBERO-Pro-10
Persistent memoryRemembers which way the fingers close, and turns the wrist to matchX-VLA (general) with the unified harness across robots on SimplerEnv Google

Abstract

Recent work shows that a frozen robot policy performs far better inside an agent harness, where control code decides when to query the policy, call auxiliary models, or command the arm directly. Yet these harnesses are still built by hand for each new robot and benchmark. RoboArchitect automates their design: a coding model observes the robot’s rollouts, diagnoses failures, and iteratively refines the harness around the frozen policy, without updating any weights. On held-out episodes, average success rises from 9.7% to 43.3% on unseen scenes (4.5×) and from 12.7% to 40.2% on unseen tasks (3.2×). The gains are largest where the benchmark is far from the policy’s training data: around a general-purpose policy, the evolved agent often outperforms even the same policy finetuned on the benchmark. RoboArchitect automatically designs diverse control routines, such as lifting a jammed arm clear, and a persistent memory that carries experience across episodes, such as which grasp heights worked. Inside the evolved agents, the VLA policy and code-as-policy work together dynamically: the policy keeps the motions it executes well, and the code takes over where the policy fails. RoboArchitect also evolves a single unified harness that works across robot platforms, from the Franka arm to the WidowX and the Google robot. These results suggest that substantial headroom in robotic manipulation lies in the agent harness, and that its design can be automated and optimized without weight updates.

Held-out success of each policy alone and inside its evolved agent, under unseen scenes and unseen tasks, with the finetuned versions of X-VLA marked.
VLA policy evolved agent around the same frozen policy same policy finetuned on that benchmark
Held-out success rises in nearly every setup, often past the same policy finetuned on the benchmark.

RoboArchitect

A coding model iteratively designs and refines an agent harness around a robot policy (VLA). Each refinement is based on actual evidence from observed rollouts. The new harness may follow the policy, call auxiliary models, command the arm directly, or even design a persistent memory that informs decisions across tasks and scenes. Over iterations, the harness grows from the VLA policy alone into a fully designed robotic agent with auxiliary tools and persistent memory. The right side of the figure below shows the experiment conditions that test how well the auto-optimized harness generalizes.

Overview: a robot harness, initially a pass-through of the policy, evolves into an agentic program with persistent memory and access to auxiliary models; a coding model reviews rollout trajectories, diagnoses failure patterns and improves the harness iteratively. Right: the three experiment conditions.

Optimization

1Run the agent and record every step

The agent runs on the training episodes. Every step is recorded: camera frames, the robot’s readings, and every model and tool output.

2A coding model diagnoses failures and revises the harness

A coding model reads the recordings, diagnoses the failures, and designs a revised harness.

3Keep only strictly improving revisions

The revised harness runs on the same training episodes and replaces the current one only if it scores higher.

4Evaluate the final agent on held-out episodes

After N iterations, the final harness is evaluated on held-out episodes that were never used to optimize it.

Extra components

Auxiliary vision, language and grasp models
  • Language: Qwen3-30B-A3B-Instruct
  • Vision-language: Molmo2-8B or Qwen3-VL-8B-Instruct
  • Object detection: Grounding-DINO
  • Segmentation: SAM 3
  • Pointing: Molmo2-8B
  • Grasp poses: GraspGen
  • Geometry helpers: turn a pixel and its depth into a 3D point in the robot’s frame, and build relative motions
A persistent memory with no fixed schema

The harness can keep a memory across episodes. The coding model designs the memory freely: its entries, their format, and when the agent reads them. Every evaluation starts with an empty memory.

Evaluation: Every agent is evaluated on held-out episodes that were never used to optimize it

Results

Around the same frozen policies, the evolved agents raise average held-out success by 4.5× on unseen scenes and by 3.2× on unseen tasks. They even lift out-of-domain policies past their finetuned versions: around the general X-VLA, never trained on these benchmarks, the evolved agent outperforms X-VLA finetuned on the benchmark most of the time. Iterative harness refinement also beats a one-shot agent design on nearly every held-out set.

Unseen scenes (%) Unseen tasks (%)
BenchmarkPolicyTrained on VLA policyOne-shotIterativeΔ VLA policyOne-shotIterativeΔ
LIBERO-Pro-10MolmoAct-2LIBERO10.012.032.0+22.02.52.515.0+12.5
OpenVLA-7BLIBERO-100.02.026.0+26.00.00.022.5+22.5
π0.5LIBERO8.04.024.0+16.00.00.02.5+2.5
RLinf-π0.5LIBERO-1302.02.040.0+38.00.00.010.0+10.0
SmolVLARoboCerebra0.00.038.0+38.00.010.027.5+27.5
RoboCerebraπ0.5LIBERO22.020.055.3+33.324.012.028.0+4.0
SmolVLARoboCerebra20.034.349.3+29.326.016.080.0+54.0
VLABenchX-VLAgeneral robot data7.332.852.6+45.21.2–72.5+71.3
↪ X-VLA finetuned on VLABench35.2–––32.1–––
SimplerEnv WidowXX-VLAgeneral robot data0.077.187.5+87.50.0–66.7+66.7
↪ X-VLA finetuned on WidowX70.8–––87.5–––
RoboCasa-365RLDX-1RoboCasa-36527.929.327.8−0.273.576.577.5+4.0
Mean (all setups)9.721.443.3+345%12.7–40.2+216%
Mean (cross-benchmark and out-of-domain)7.332.558.4+696%6.3–48.7+671%
One-shot the agent after iteration 1 Iterative after up to 5 iterations Δ Iterative minus VLA policy (relative gain in the mean rows) ↪ the same policy finetuned on the benchmark VLABench numbers are the benchmark’s official progress score
finetuned on this benchmark same benchmark, object positions swapped a different benchmark general robot data only

Full optimization trajectories

Auto-evolved control routines

RoboArchitect automatically designs diverse control routines, each fixing a concrete failure pattern. Every revision targets failures found in the recorded rollouts, so each routine is grounded in actual evidence from observation. Without any instruction on how to divide the work, most agents converge on a dynamic split between the VLA policy and code-as-policy: the VLA policy keeps the motions it executes well (c), and the code takes over only where the policy fails (a, e, f), often handing control back once the failure is fixed (d). Where the VLA policy is unusable, the code replaces it entirely (b, g, h, i).

Auto-evolved persistent memory

Via RoboArchitect, nearly every evolved agent builds a memory that carries experience from one episode to the next, with no predefined schema given. The memories hold reusable execution experience (a, b), task and environment clues (c), and calibration to the robot, and are frequently accessed to inform the robot’s control decisions. Note that these memories are part of the auto-designed agents, not of the coding model’s context.

Memories in held-out episodes

Unified harness

A single harness for several robots is evolved on a “training pool” of procedurally generated episodes from different embodiments and benchmarks (LIBERO-Pro, VLABench, SimplerEnv WidowX and SimplerEnv Google), and evaluated on held-out benchmark scenes and tasks. Around the general, unfinetuned X-VLA policy, the unified harness evolves into a competent code-as-policy agent and drives the arm with its own code (b). Around the X-VLA specialists finetuned on each benchmark, it keeps the already capable policy in charge, and takes over with its own code only when needed to fix a failure pattern (a).

Training pool (%) Held-out (%)
PolicyTrained onBenchmark VLA policyOne-shotIterativeΔ VLA policyOne-shotIterativeΔ
General X-VLAgeneral robot dataLIBERO-Pro0.03.529.4+29.40.13.524.1+24.0
VLABench7.114.817.5+10.47.517.321.6+14.2
SimplerEnv WidowX0.065.868.3+68.30.045.824.0+24.0
SimplerEnv Google0.022.051.2+51.20.020.045.6+45.6
Mean over all benchmarks1.826.541.6+2228%1.921.628.8+1417%
Specialist X-VLAits own benchmarkLIBERO-Pro82.983.282.8−0.18.48.18.0−0.4
VLABench13.414.923.6+10.230.433.535.1+4.7
SimplerEnv WidowX80.080.080.8+0.872.972.974.0+1.0
SimplerEnv Google55.955.955.4−0.471.971.770.9−1.0
Mean over all benchmarks58.058.560.7+5%45.946.547.0+2%
Training pool procedurally generated scenes, objects, instructions and tasks Held-out each benchmark’s standard episodes One-shot the agent after iteration 1 Iterative after up to 5 iterations Δ Iterative minus VLA policy (relative gain in the mean rows) VLABench numbers are the benchmark’s official progress score
finetuned on this benchmark general robot data only

Citation

@misc{wu2026roboarchitect,
      title={RoboArchitect: Automating the Design of Robotic Agents with Persistent Memory}, 
      author={Shengguang Wu and Suning Huang and Cherie Ho and Ria Doshi and Hao Zhu and Serena Yeung-Levy},
      year={2026},
      eprint={2610.42141},
      archivePrefix={arXiv},
      primaryClass={cs.RO},
      url={https://arxiv.org/abs/2610.42141}, 
}