TECH REPORTOct 14, 2026

Astranomy: An empirical study of GPT-6 Astra as a native robot policy

Jenai Xuning Yang1,*, Ashna Khetan1, Shun Zhang1

1 NVIDIA* Corresponding Author.

Overview

Can and should a general-purpose model serve as a robot policy? We study GPT-6 Astra as a native policy for language-conditioned general-purpose manipulation, with action representations and temporal context specified at inference time. We evaluate GPT-6 Astra in 3 distinct roles in order to determine the model's capability from its surrounding environment: direct action generation without a harness (Direct Policy), with Codex as an agent in a persistent context (Agentic Policy), and in the role of monitor (Orchestrated Policy), delegating action generation to a robot foundation model. This report studies what enables reliable closed-loop execution and when the resulting performance justifies the latency and token cost of general-purpose reasoning.

We report results on the full RoboLab-120 1 benchmark with focused ablations on a 30-task subset. We examine inference-time specifications, including action representation, geometry information, observation history, and task specification's effects on performance for all 3 policies. Across RoboLab-120, the best policy achieves 74.8% (Agentic Policy). While GPT-6 Astra has the capability to natively perform generalist pick-and-place tasks, the model averages 18.56 seconds per inference call. These resource demands make runtime performance and cost a central consideration in Astra’s practical use as a robotics policy.

Figure 1. Policy Rollouts. Selected rollouts of policy variant, action representation, and tools. Videos are of task rollout only; toggle "Include inference time" to include inference delay in the video.SHOW GALLERY
Results at-a-glance on RoboLab-120

SR / Score ↑

Latency ↓

API cost ↓

Figure 2. Results at-a-glance on RoboLab-120. Success rate (SR) and mean completion score over 120 tasks with five episodes each, alongside inference latency per call and API cost per successful episode. Astra-policies achieve higher success rates and completion scores than the evaluated robot foundation models (RFMs), at the cost of substantially longer inference times. Agentic Policy achieves the strongest performance, but incurs the highest API cost per successful episode among the three Astra policy forms.

1. Introduction

Robot foundation models (RFMs) are pretrained or finetuned on robot data for control policies for targeted tasks, environments, or embodiments 2. RFMs such as vision-language-action models (VLAs) and world action models (WAMs) adapt pretrained language, visual or multimodal models for action prediction through finetuning on robot data. Action parameterization, embodiment conditioning, and temporal context are typically established through the training data and model design, which remain fixed at inference time345. General-purpose multimodal language models are designed to support a broad range of language, visual understanding, and reasoning tasks. Here, we investigate whether these capabilities can support robot control through a policy interface specified in the prompt, without additional robot-policy finetuning. With general-purpose models, we can select action representations, supply robot and camera geometry, and vary observation history through the input context. Their long context windows also enable retaining observations, past actions, and execution feedback across an episode, which makes it possible to investigate action and observation parameterization at inference time. A useful feature of this interface is variable-length action chunking: for end-effector and joint-position control, Astra chooses how many actions to produce on each call within a prompted range. This lets the interval between observations vary across decisions, whereas many robot foundation model interfaces use a fixed action horizon.

Recent work demonstrates Astra’s ability to agentically generate robot actions and supervise learned manipulation policies zero-shot on a variety of embodiments 67, with further evaluations spanning navigation and humanoid control through pretrained whole-body controllers 8. Together, these findings motivate a systematic study of Astra’s native robotics capabilities and how much they depend on the control interface, available context, and agentic support provided at inference time.

First, we explicitly distinguish between using Astra directly as a robot foundation model vs deploying it within an agentic harness. This distinction makes the model’s role and the support provided by the surrounding system clear in each setting. We therefore evaluate three policy forms: Direct Policy directly uses the model as a robot foundation model with a fixed observation-to-action mapping through API calls. Agentic Policy uses Astra in a persistent Codex session, where historical context is preserved and Astra has access to additional tools. Orchestrated Policy uses Astra to review actions proposed by Cosmos3-Nano-Policy, a WAM finetuned on the target embodiment, and decide whether to intervene.

Second, we systematically vary the action interface and information available to Astra at inference time. We compare action representations and action horizons, and vary geometry descriptions and observation history to assess their effects on control. For Agentic Policy, we investigate whether persistent interaction context, computation tools, demonstrations, and explicit planning improve performance. For Orchestrated Policy, we examine how frequently Astra should review proposed actions and intervene. These experiments assess which inference-time choices support reliable execution and how they affect latency and token cost.

We investigate these questions using RoboLab-120 1, a pick-and-place benchmark designed to evaluate general-purpose manipulation and robustness to language instructions. The benchmark emphasizes multi-step tasks and varies instruction specificity while keeping the scene and goal fixed, allowing evaluations to separate sensitivity to language from difficulties in physical execution.

RoboLab-120GPT-6 AstraLeaderboard policies
Solid: SR · Pale extension: SCORE · Line: 95% CPSR / SCORE
  1. Agentic Policy74.8 / 83.6
  2. Orchestrated Policy66.5 / 79.1
  3. Direct Policy · EEF66.3 / 76.7
  4. Lakeside51.0 / 65.3
  5. Direct Policy · Joint positions50.2 / 63.7
  6. FLUX 3 Action42.9 / —
  7. HiDream-O1-Embodied39.9 / 50.5
  8. Atomic-WAM39.6 / 55.5
  9. OASIS WAM39.0 / 53.7
  10. Direct Policy · B-spline38.8 / 53.7
  11. Cosmos3-Nano-Policy36.8 / 51.9
  12. Phoenix34.4 / 45.9
  13. BiMind v0.133.3 / 47.2
  14. VoLo28.2 / 44.1
  15. π0.528.0 / 43.4
...
Figure 3. Success rate and completion score on RoboLab-120. Astra reaches 74.8% success with Agentic Policy, compared with 66.3% for Direct Policy EEF and 66.5% for Orchestrated Policy. Agentic Policy exceeds the strongest displayed leaderboard reference, Lakeside, by 23.8 percentage points.

RoboLab-120 — full results

120 tasks · 7 policies · Agentic / Orchestrated: SR (%) / SCORE; others: SR (%)

Task Direct Policy Agentic Policy
SR / SCORE
Orchestrated Policy
SR / SCORE
Cosmos3 π0.5
eef jointpos bspline
Overall · 120 tasks66.350.238.874.8 / 83.666.5 / 79.136.828.0
AnimalsInBin60.060.040.020.0 / 40.060.0 / 70.070.00.0
AppleAndYogurtInBowl100.0100.0100.0100.0 / 100.0100.0 / 100.010.030.0
BBQSauceInBin80.060.060.080.0 / 90.080.0 / 90.060.020.0
BagelsOnPlate0.00.00.00.0 / 20.00.0 / 30.00.00.0
BananaInBowl100.0100.080.0100.0 / 100.0100.0 / 100.0100.070.0
BananaOnPlate100.0100.060.0100.0 / 100.0100.0 / 100.0100.0100.0
BananaThenRubiksCube80.00.00.080.0 / 100.080.0 / 90.080.050.0
BananasInBinOneMore100.0100.040.0100.0 / 100.0100.0 / 100.0100.0100.0
BananasInBinThreeTotal100.0100.040.0100.0 / 100.0100.0 / 100.0100.0100.0
BananasInCrate100.0100.040.0100.0 / 100.0100.0 / 100.0100.0100.0
BananasOutOfBin100.060.00.0100.0 / 100.0100.0 / 100.0100.070.0
BigPumpkinInBin80.00.00.0100.0 / 100.060.0 / 60.00.050.0
BlackItemsInBin60.00.00.060.0 / 88.020.0 / 52.00.00.0
BlockStackingOrderAgnostic100.020.080.0100.0 / 100.060.0 / 86.430.010.0
BlockStackingSpecifiedOrder100.060.0100.080.0 / 93.280.0 / 93.20.00.0
BlocksInBin100.0100.0100.0100.0 / 100.0100.0 / 100.030.00.0
BowlInBin100.0100.0100.0100.0 / 100.0100.0 / 100.090.050.0
BowlStackingLeftOnRight60.080.060.00.0 / 0.080.0 / 80.070.040.0
BowlStackingRightOnLeft100.040.060.040.0 / 40.080.0 / 80.070.070.0
ButterAboveRaisin100.0100.080.0100.0 / 100.0100.0 / 100.0100.020.0
CannedFoodInBin100.080.080.0100.0 / 100.0100.0 / 100.040.060.0
ClampInRightBin20.020.00.040.0 / 40.0100.0 / 100.00.00.0
CleanUpToys80.060.020.080.0 / 100.00.0 / 42.20.00.0
ClearOrganicObjects0.00.00.00.0 / 89.10.0 / 27.30.00.0
ClutterPlastic100.0100.0100.060.0 / 93.360.0 / 86.720.050.0
ClutterPumpkin80.020.00.0100.0 / 100.060.0 / 80.00.00.0
CoffeePotInBin0.00.00.040.0 / 40.00.0 / 0.010.00.0
CondimentsInBin0.040.020.080.0 / 95.040.0 / 70.020.00.0
CookingClearPlate100.0100.0100.0100.0 / 100.0100.0 / 100.00.080.0
CookingPickPastaTool0.00.00.040.0 / 40.00.0 / 0.00.00.0
CubesAndBlocksInBin100.080.040.0100.0 / 100.080.0 / 100.080.040.0
DishesInBin80.080.060.060.0 / 73.380.0 / 86.780.00.0
ElectronicsInBin100.020.00.060.0 / 90.060.0 / 85.020.00.0
FoodPacking1Boxes60.00.040.0100.0 / 100.0100.0 / 100.00.00.0
FoodPacking1Cans80.080.080.0100.0 / 100.0100.0 / 100.010.040.0
FoodPacking2Boxes0.00.00.00.0 / 20.00.0 / 10.00.00.0
FoodPacking2Cans80.060.040.0100.0 / 100.0100.0 / 100.00.040.0
FoodPacking3Boxes0.00.00.00.0 / 40.00.0 / 26.70.00.0
FoodPacking3Cans40.040.00.0100.0 / 100.080.0 / 93.30.010.0
FoodPackingByColor0.00.00.00.0 / 0.00.0 / 10.00.00.0
FruitsGreenLimesOnPlate100.080.0100.080.0 / 100.0100.0 / 100.020.050.0
FruitsMovingOrangeOrLime80.060.0100.080.0 / 80.0100.0 / 100.060.030.0
FruitsMoving40.080.0100.080.0 / 80.0100.0 / 100.00.00.0
FruitsOnPlate340.020.00.0100.0 / 100.080.0 / 100.050.090.0
FruitsOnPlate0.00.00.040.0 / 97.10.0 / 71.40.00.0
FruitsOnion100.0100.060.0100.0 / 100.0100.0 / 100.0100.050.0
FruitsOnionToPlate0.00.00.080.0 / 80.0100.0 / 100.060.0100.0
FruitsOrangesOnPlate100.0100.0100.080.0 / 90.0100.0 / 100.00.070.0
GrabABagel80.00.020.00.0 / 0.040.0 / 100.00.00.0
GrabAFruit100.0100.0100.0100.0 / 100.080.0 / 100.00.00.0
GreenSpoonsInPot60.00.00.0100.0 / 100.0100.0 / 100.020.00.0
HammersInLeftBin80.040.020.080.0 / 80.020.0 / 50.010.00.0
JugsOnShelf0.00.00.040.0 / 80.020.0 / 40.00.00.0
KeyboardOutOfBin0.00.00.060.0 / 60.020.0 / 20.070.020.0
LargerObjectRaisinBoxInBin40.020.00.0100.0 / 100.040.0 / 40.00.010.0
MarkerInMug80.060.00.060.0 / 60.080.0 / 80.020.00.0
MouseOnKeyboard100.060.00.080.0 / 80.0100.0 / 100.040.090.0
MoveBananaToBagelPlate40.00.040.0100.0 / 100.0100.0 / 100.00.00.0
MustardAboveRaisin100.0100.0100.0100.0 / 100.0100.0 / 100.080.0100.0
MustardInLeftBin80.060.080.0100.0 / 100.060.0 / 60.070.020.0
MustardInRightBin80.060.060.080.0 / 80.0100.0 / 100.060.070.0
NonHammerToolsInRightBin0.00.00.020.0 / 40.00.0 / 50.00.00.0
OneBottleInSquarePail100.080.060.080.0 / 80.0100.0 / 100.090.080.0
OneBottleOnShelf80.040.00.0100.0 / 100.080.0 / 80.00.00.0
PhoneOrRemoteInBin100.0100.0100.0100.0 / 100.080.0 / 80.070.020.0
PickDrill0.00.00.00.0 / 0.00.0 / 100.00.00.0
PickGlasses100.060.080.0100.0 / 100.0100.0 / 100.00.010.0
PickOrangeObject100.080.0100.0100.0 / 100.0100.0 / 100.040.00.0
PickUpBluePitcher60.020.020.020.0 / 60.040.0 / 70.00.010.0
PickUpGreenObject20.00.00.080.0 / 90.00.0 / 50.00.00.0
PinkSpoonInPot80.040.080.080.0 / 80.060.0 / 60.010.040.0
PlasticBottlesInSquarePail60.020.020.0100.0 / 100.0100.0 / 100.080.040.0
PutBowlOnShelfTop60.020.020.060.0 / 60.00.0 / 0.00.00.0
PutMugsOnShelf40.040.00.040.0 / 60.00.0 / 60.070.00.0
PutTwoMugsOnShelf20.020.00.060.0 / 90.060.0 / 80.050.00.0
RecycleCarton40.080.020.080.0 / 90.060.0 / 70.00.020.0
RecycleCartonsOnBox0.00.00.00.0 / 0.00.0 / 70.00.00.0
RecycleCartonsVerticalCrate0.00.00.080.0 / 100.040.0 / 70.00.00.0
RedDishesInBin100.060.060.020.0 / 60.060.0 / 70.080.050.0
RedItemsInBin100.080.020.060.0 / 80.060.0 / 80.010.00.0
ReorientAllMugs0.020.00.020.0 / 60.00.0 / 56.70.00.0
ReorientJug80.020.020.0100.0 / 100.080.0 / 80.060.020.0
ReorientRedMug60.020.00.0100.0 / 100.060.0 / 80.040.070.0
ReorientWhiteMugs20.00.040.0100.0 / 100.080.0 / 90.020.080.0
RubiksCubeAndBanana80.080.020.080.0 / 100.0100.0 / 100.070.090.0
RubiksCubeBehindBowl100.040.00.0100.0 / 100.080.0 / 100.010.070.0
RubiksCubeInFrontOfBowl100.040.00.0100.0 / 100.020.0 / 73.380.00.0
RubiksCubeLeftOfBowl100.040.00.0100.0 / 100.0100.0 / 100.0100.00.0
RubiksCubeOrBanana100.0100.040.0100.0 / 100.0100.0 / 100.0100.090.0
RubiksCubeRightOfBowl100.0100.0100.0100.0 / 100.0100.0 / 100.050.00.0
RubiksCube100.080.0100.0100.0 / 100.0100.0 / 100.0100.0100.0
RubiksCubeThenBanana100.040.00.0100.0 / 100.0100.0 / 100.090.030.0
RubiksCubesInBin100.080.0100.0100.0 / 100.0100.0 / 100.0100.050.0
SauceBottlesCrate100.0100.0100.0100.0 / 100.0100.0 / 100.0100.060.0
SmallPumpkinInBin100.060.0100.0100.0 / 100.060.0 / 60.020.00.0
SmallerObjectButterInBin100.0100.0100.0100.0 / 100.0100.0 / 100.0100.070.0
SmartphoneInBin100.040.020.0100.0 / 100.080.0 / 80.030.00.0
SpoonInMug80.080.080.0100.0 / 100.0100.0 / 100.050.020.0
SpoonsInPot60.060.00.080.0 / 93.380.0 / 93.30.00.0
Stack3RubiksCube100.060.040.0100.0 / 100.080.0 / 90.010.070.0
StackWhiteMugs80.080.060.0100.0 / 100.0100.0 / 100.050.060.0
StackYellowOnRed100.0100.060.0100.0 / 100.0100.0 / 100.090.060.0
TakeMeasuringSpoonOut80.0100.080.0100.0 / 100.0100.0 / 100.0100.070.0
TakeMugsOffOfShelf0.00.00.060.0 / 90.060.0 / 80.010.00.0
TakeSpatulaOffShelf100.00.020.0100.0 / 100.020.0 / 20.010.00.0
ThrowAwayApple100.080.0100.0100.0 / 100.0100.0 / 100.00.00.0
ThrowAwaySnacks100.0100.0100.0100.0 / 100.0100.0 / 100.020.010.0
ToolOrganizationBoth40.040.00.080.0 / 80.020.0 / 50.00.020.0
ToolOrganization0.080.00.060.0 / 90.040.0 / 70.020.010.0
ToolsPickingAllHammers0.00.00.00.0 / 75.00.0 / 50.00.00.0
ToolsPickingDrill0.00.00.00.0 / 0.00.0 / 0.00.00.0
ToolsPickingHammer20.020.00.040.0 / 80.020.0 / 40.020.00.0
ToyInBin80.080.080.080.0 / 80.0100.0 / 100.090.020.0
UnstackRubiksCube80.080.040.0100.0 / 100.0100.0 / 100.050.010.0
UtensilsInMug20.020.00.040.0 / 80.020.0 / 40.00.00.0
WhiteMugInCenterOfTable20.040.00.0100.0 / 100.040.0 / 86.750.080.0
WhiteMugsInBin80.080.040.020.0 / 60.020.0 / 60.00.00.0
WoodSpatulaToBowl80.080.040.0100.0 / 100.0100.0 / 100.080.020.0
YellowAndWhiteObjectsInBin100.040.00.080.0 / 90.080.0 / 90.030.00.0
YogurtInBowl100.0100.0100.0100.0 / 100.0100.0 / 100.010.010.0
Table A1. Agentic Policy leads overall, but performance varies substantially by task. Task-level results show where each policy succeeds, fails, or earns partial completion credit across all 120 tasks.

2. Study Design

We evaluate our methods in RoboLab 1 zero-shot using the DROID robot 9. Control runs at 15 Hz with simulation paused during inference. All policy forms use GPT-6 Astra with medium reasoning effort, except where model selection is explicitly varied. Each policy is shown all three views: left shoulder, right shoulder, and wrist. Each image is resized to 384 x 216 pixels. No walltime limit or retry limit is imposed. Each task ends when the simulator marks it as complete or when it reaches its task-specific action-step limit. Each model call is capped at 8,192 completion tokens, including reasoning and action/tool output. All simulations ran on NVIDIA L40s GPUs. We run 5 episodes per task with fixed seeds (0-4) given the high cost of inference, which is insufficient to characterize per-task variability. We discuss this further in study limitations.

We conduct ablations on a 30-task subset of the RoboLab-120 tasks: 10 evaluated in prior work 7 and 20 additional tasks selected to cover the manipulation and instruction capabilities listed in Table 1. We then evaluate the strongest configuration for each policy on all 120 tasks. Example videos are shown in the rollout gallery. We report numbers for Success Rate (SR) and Score, which highlights partial task completions. Successful episodes will have a score of 100.

Table 1. The 30-task ablation suite. Ten capability groups covering 30 tasks.
CapabilityTasks
Object selection and container placement ; ; ;
Multi-object collection and sorting ; ; ;
Grasping varied shapes ; ;
Utensil and narrow-opening placement ; ;
Reorientation ; ;
Stacking and supported placement ; ;
Shelf manipulation ; ; ;
Spatial relations and destination assignment ;
Counting, alternatives, and sequencing ; ;
Long-horizon cleanup with exclusions

SauceBottlesCrate

RoboLab scene for SauceBottlesCrate

Language instruction

Put the red bbq sauce bottle in the crate

Default instruction and scene preview from RoboLab.

CannedFoodInBin

RoboLab scene for CannedFoodInBin

Language instruction

Put the canned food in the grey bin

Default instruction and scene preview from RoboLab.

YogurtInBowl

RoboLab scene for YogurtInBowl

Language instruction

Put the small red yogurt in the red bowl

Default instruction and scene preview from RoboLab.

RubiksCube

RoboLab scene for RubiksCube

Language instruction

Put the cube in the bowl

Default instruction and scene preview from RoboLab.

BlocksInBin

RoboLab scene for BlocksInBin

Language instruction

Sort all colored blocks into the bin

Default instruction and scene preview from RoboLab.

ClutterPumpkin

RoboLab scene for ClutterPumpkin

Language instruction

Put all the pumpkins away in the bin

Default instruction and scene preview from RoboLab.

BlackItemsInBin

RoboLab scene for BlackItemsInBin

Language instruction

Put the black items in the grey bin

Default instruction and scene preview from RoboLab.

CondimentsInBin

RoboLab scene for CondimentsInBin

Language instruction

Sort the sauce condiments into the grey bin

Default instruction and scene preview from RoboLab.

PickGlasses

RoboLab scene for PickGlasses

Language instruction

Pick up the eye glasses

Default instruction and scene preview from RoboLab.

PickUpBluePitcher

RoboLab scene for PickUpBluePitcher

Language instruction

Pick up the large blue pitcher

Default instruction and scene preview from RoboLab.

BagelsOnPlate

RoboLab scene for BagelsOnPlate

Language instruction

Put the bagels on the plate

Default instruction and scene preview from RoboLab.

MarkerInMug

RoboLab scene for MarkerInMug

Language instruction

Put the whiteboard marker in the mug

Default instruction and scene preview from RoboLab.

SpoonInMug

RoboLab scene for SpoonInMug

Language instruction

Put the metal spoon that's in the wooden bowl in the mug

Default instruction and scene preview from RoboLab.

SpoonsInPot

RoboLab scene for SpoonsInPot

Language instruction

Put all of the serving spoons with no holes in the pot

Default instruction and scene preview from RoboLab.

ReorientRedMug

RoboLab scene for ReorientRedMug

Language instruction

Put the red mug upright so that the opening is facing upwards.

Default instruction and scene preview from RoboLab.

ReorientJug

RoboLab scene for ReorientJug

Language instruction

Stand the jug upright

Default instruction and scene preview from RoboLab.

ReorientAllMugs

RoboLab scene for ReorientAllMugs

Language instruction

Reorient all the mugs upright so that the opening is facing upwards.

Default instruction and scene preview from RoboLab.

ButterAboveRaisin

RoboLab scene for ButterAboveRaisin

Language instruction

Pick up the butter box and place it on top of the raisin box

Default instruction and scene preview from RoboLab.

Stack3RubiksCube

RoboLab scene for Stack3RubiksCube

Language instruction

Stack the rubiks cubes in a tower

Default instruction and scene preview from RoboLab.

BlockStackingSpecifiedOrder

RoboLab scene for BlockStackingSpecifiedOrder

Language instruction

Stack the blocks in the order from bottom to top: red, blue, green, yellow

Default instruction and scene preview from RoboLab.

OneBottleOnShelf

RoboLab scene for OneBottleOnShelf

Language instruction

Put any white plastic bottle on the shelf

Default instruction and scene preview from RoboLab.

TakeSpatulaOffShelf

RoboLab scene for TakeSpatulaOffShelf

Language instruction

Take the spatula off the shelf and put it on the table

Default instruction and scene preview from RoboLab.

PutBowlOnShelfTop

RoboLab scene for PutBowlOnShelfTop

Language instruction

Put the serving bowl anywhere on the shelf in front of you

Default instruction and scene preview from RoboLab.

PutTwoMugsOnShelf

RoboLab scene for PutTwoMugsOnShelf

Language instruction

Put two (2) mugs on the wire shelf

Default instruction and scene preview from RoboLab.

RubiksCubeBehindBowl

RoboLab scene for RubiksCubeBehindBowl

Language instruction

Put the rubiks cube behind the bowl

Default instruction and scene preview from RoboLab.

FoodPackingByColor

RoboLab scene for FoodPackingByColor

Language instruction

Pack yellow objects in right container and blue object in the left container

Default instruction and scene preview from RoboLab.

BananasInBinThreeTotal

RoboLab scene for BananasInBinThreeTotal

Language instruction

Make sure there are 3 (three) bananas in the grey bin.

Default instruction and scene preview from RoboLab.

PhoneOrRemoteInBin

RoboLab scene for PhoneOrRemoteInBin

Language instruction

Put the phone or the remote in the grey bin

Default instruction and scene preview from RoboLab.

BananaThenRubiksCube

RoboLab scene for BananaThenRubiksCube

Language instruction

put the banana then the cube in the bowl

Default instruction and scene preview from RoboLab.

CleanUpToys

RoboLab scene for CleanUpToys

Language instruction

Clean up all the smaller toys and leave the birdhouse on the table

Default instruction and scene preview from RoboLab.

2.1. Policy Configurations

We evaluate three configurations that distinguish direct action generation, agentic scaffolding, and policy assistance. Each operates in a closed loop from camera observations, proprioception, and a task instruction, with updated observations returned after each executed action segment.

  • Direct Policy. Astra predicts action chunks through API calls directly, with no context history retained between calls. The interface supports end-effector targets, joint targets, or joint-space B-splines, with chunk length selected within the configured bounds. Each predicted chunk is executed before the next observation, unless the episode terminates during the final chunk.
  • Agentic Policy. A persistent Codex session that retains interaction history and provides optional tools for image inspection, computation, and notes. In the end-effector configuration, each target is executed for one to five control steps before the next observation.
  • Orchestrated Policy. Astra operates within the agentic Codex harness. It retains bounded memory across decisions. Optional native tools are disabled. It reviews camera observations, robot state, and trajectories proposed by Cosmos3-Nano-Policy 3, a WAM finetuned on DROID data, to assess progress and task alignment. Astra can accept a 15-step policy proposal or intervene with a shorter segment by editing the proposal or issuing an end-effector target.

Direct Policy

GPT-6 Astra · API
Astra
Robot
— / 2

Agentic Policy

Codex + Astra
Codex
Astra
Tools
Robot
— / 4

Orchestrated Policy

Codex + Astra + Cosmos3-Nano-Policy
Codex
Astra
Tools
Cosmos3-Nano-Policy
Robot
— / 4

Figure 4. Policy Variants. Three forms of robot control. Astra produces actions directly or through Codex tools. In the Agentic Policy, Codex maintains context history, provides optional shell tools, and receives motion feedback after each action. In the orchestrated form, Cosmos3-Nano-Policy proposes action chunks outside Codex; Astra reviews each chunk and either lets it proceed or overrides it with different end-effector (EEF) commands. Final configurations for each policy can be found in Table 2.

2.2. Inference-time ablations

We design ablations to understand what enables a general-purpose multimodal model to function as a robot policy. In VLAs and WAMs, action representations and observation interfaces are established at training time. With general-purpose models, these representations can be dynamically varied at inference time. For Direct Policy, we vary action representation, observation horizon, prompt design, and language specificity. For Agentic Policy, we further add evaluations on varying context length, tool use, explicit planning, decomposition, and replanning, and the ability to perform in-context learning from video demonstrations. For Orchestrated Policy, we examine how often Astra reviews the policy model’s action proposals and how those reviews affect execution outcomes, while holding other parameters at their default settings.

Together, the ablations ask what enables reliable direct action generation, what agentic scaffolding contributes to performance, and when general-purpose models can effectively supervise a learned action policy.

ABLATION DESIGN

ACTION

Action Representation

How is motion expressed?Results
Abs. EEF
DeltaOffsets accumulate from the previous target.
RelativeOffsets from the current observation
End-effector pose (EEF)
Abs. EEFDefault
Delta EEF
Relative EEF
Joint positions
Abs. jointpos
Delta jointpos
Relative jointpos
B-spline jointpos
Abs. B-spline jointpos

Action horizon

How many control targets?Results
Dynamic 3–15Direct PolicyDefault
Dynamic 16–32Direct Policy
1 over 1–5 stepsAgentic Policy
Fixed 15Orchestrated Policy

HISTORY

TextImagesProprioception⋯ all earlier decisions

Observation

Which past observations are included? (Direct Policy)Results
Current only
Recent history
Longer history
Denser history

Context history

Which previous images and assistant outputs are retained? (Agentic Policy)Results
Full history (Default)
Full text + recent visual history
Text history
Recent text + recent visual history
Visual history

PROMPT

Prompt geometry

What calibration is given?Results
BaseRobot type, control frequency, robot and end effector frame, action type
Base + gripper+ explicit EEF geometry
Base + camera+ camera intrinsics/extrinsics
Base + gripper + cameraDefault

Task Specification

How is the task specified?Results
Language InstructionTask description onlyDefault
Default“Put the cube in the bowl.”Default
Vague“Put it away.”
Video demonstrationSuccessful rollout of same task, sampled at 1 Hz
Approach
Grasp
Place
GPT-6 AstraDefault
GPT-6 Sol
GPT-6 Luna
Claude Opus 5.5

REASONING EFFORT

mediumDefault
xhigh
Agentic Policy only

AGENTIC SCAFFOLDING

Optional tools

Does explicit tool use help?Results
DisabledShell access disabled.Default
EnabledShell, computation and image inspection
crop()
calculate()

Planning instructions

Does explicit planning affect performance?Results
Explicit planningRequest planning subgoals such as Approach, Grasp and PlaceDefault
No explicit planningNo mentions of planning in the prompt
Discourage PlanningDo not generate an explicit plan

Motion feedback

Does providing explicit motion error help?Results
ProvidedMeasured tracking errors after each actionDefault
RemovedImages and robot state remain
Figure 5. Ablations. Design choices for action, history, prompt, model, and agentic scaffolding. Green highlights the default setting. Final configurations for each policy can be found in Table 2.

Original interface vs. expanded interface

Agentic Policy · benchmark and ablation configurations

Interface variations. We compare the Agentic Policy prompt and observation interface with the Expanded interface used for ablations. The expanded interface adds seven joint positions, explicit EEF quaternion and continuous gripper state, detailed geometry descriptions, planning instructions, and additional guidance about target execution and inverse kinematics. Both configurations use the same persistent-session architecture and robot controller.

To separate these interface changes from differences between evaluation campaigns, we restore the Agentic Policy prompt/input package on the current runtime and evaluate it on the same episodes across 30 tasks as the expanded reference.

Shared control loop

Persistent Codex session · camera observations · motion feedback · episode context

One EEF target held for 1–5 steps at 15 Hz · same controller and task limits

Original interface

Used for the benchmark

Expanded interface

Reference for the ablations

Robot state What Astra observes

EEF position and roll/pitch/yaw

Gripper open / closed

Same basic state, plus

+ Seven arm joint positions

+ Explicit EEF quaternion

+ Continuous gripper position

Geometry & planning What Astra is told

Basic robot and coordinate conventions

No detailed camera/gripper calibration

No explicit planning request

+ Gripper offsets and jaw geometry

+ Camera calibration and wrist tilt

+ Plan, track and revise subgoals

Execution How actions are explained

Fixed target held for 1–5 steps

Movement bounds and fresh observations

“Use shorter segments near contact”

+ Holding a target ≠ reaching it

+ Simulation pauses during inference

+ Per-step IK and clipping limits

Near-contact sentence removed

Results. The expanded interface achieves 86.0% success, compared with 80.0% for the original interface, across 150 matched episodes. Completion score increases from 86.2% to 90.9%. Seventeen episodes succeed only with the expanded interface, while eight succeed only with the original interface, producing a net gain of nine successes. This suggests a benefit from the combined changes, although the paired success-rate difference is not statistically significant (exact McNemar p = 0.108).

Expanded robot interface · Agentic PolicySR SCORE
  1. Original interface80.0 / 86.2
  2. Expanded interface86.0 / 90.9
The expanded interface has higher observed success in a matched rerun. Success increases from 80.0% to 86.0% across 150 matched episodes, although the paired difference is not statistically significant. The comparison bundles changes to state observations, geometry, planning, and execution guidance.

Interpretation. This is a bundled interface comparison, rather than an ablation of robot-state information alone. The separate geometry, planning, and tooling studies do not provide a clear explanation for the observed difference. Richer state observations and more explicit execution guidance are therefore plausible contributors, but their effects have not been isolated. Small effects from removing individual components also do not rule out interactions among them.

Compare exact prompts and inputs

Recorded robot-state input

RubiksCubeTask · initial observation

Original interface

{
  "embodiment": "droid",
  "orientation_convention": "extrinsic xyz fixed-axis roll/pitch/yaw, degrees",
  "effectors": {
    "arm": {
      "root_frame": "DROID robot root",
      "position_m": [0.359703, 0.0, 0.471767],
      "roll_pitch_yaw_deg": [174.8056, 89.9999, 174.8056],
      "gripper": "open"
    }
  }
}

Expanded interface

{
  "embodiment": "droid",
  "orientation_convention": "extrinsic xyz fixed-axis roll/pitch/yaw, degrees",
  "effectors": {
    "arm": {
      "root_frame": "DROID robot root",
      "position_m": [0.359703, 0.0, 0.471767],
      "roll_pitch_yaw_deg": [174.8056, 89.9999, 174.8056],
      "gripper": "open"
    }
  },
  "geometry_state": {
    "ee_pos": [0.3597031235694885, 3.300374373793602e-08, 0.47176671028137207],
    "ee_quat": [0.7071064533609271, 1.1920928656665167e-07, 0.7071071090120032, -5.9604643283325836e-08],
    "gripper_pos": [0.0]
  },
  "arm_joint_pos": [0.0, -0.6283185482025146, 0.0, -2.5132741928100586, 0.0, 1.884955644607544, 0.0]
}

Full developer prompts

Added wording Removed / replaced wording

Original interface

You control a simulated DROID robot, which is a Franka Panda arm with a Robotiq 2F-85 gripper. Control it one motion at a time using the supplied RGB views and measured end-effector state. The named end effectors are: arm. Call exactly one tool per turn, then you will see the result. Each end effector has its own fixed root frame, so the same world direction can have different signs. DROID uses a fixed robot-root Cartesian frame: +x points forward from the robot base across the tabletop, +y points to the robot's left, and +z points upward away from the tabletop. EEF position coordinates and Cartesian motion targets use these fixed axes; they do not rotate with the gripper. The ee_pos/ee_quat fields and EEF action poses describe the Robotiq base_link at the gripper mount flange, not the fingertip center. The eef_pos/eef_quat fields describe a separate rotated compatibility frame and are not the EEF action-pose convention. Quaternions describe the orientation of the local base_link axes in the robot-root frame. Positive roll, pitch, and yaw follow the right-hand rule about the fixed robot-root +x, +y, and +z axes. Positions are metres and orientations are unit quaternions in wxyz order. Grippers are explicit booleans. Call execute_eef_target with one COMPLETE absolute target and 1 to 5 control steps at 15 Hz. The fixed target is reused for every selected step; you do not provide a trajectory and the host does not interpolate. The target must be within 0.05 m translation and 0.35 rad rotation of the latest measured EEF pose. After the short segment you will receive fresh RGB views, measured state, remaining budget, and RoboLab provided subtask progress. Use shorter segments near contact. A gripper command or valid IK result is not proof of grasp or task success. Only RoboLab decides termination; there is no model-controlled done action.

A durable observation archive is available through memory_* tools. Memory tools never move the robot and may be called before the final policy output. Do not use built-in shell, filesystem, web, MCP, image-view, delegation, or code-execution tools. Finish each turn with exactly one supplied non-memory policy-output tool. The policy-output tool only proposes an action; the host validates and executes it after the turn.

Expanded interface

You control a simulated DROID robot, which is a Franka Panda arm with a Robotiq 2F-85 gripper. Control it one motion at a time using the supplied RGB views and measured end-effector state. The named end effectors are: arm. Call exactly one tool per turn, then you will see the result. Each end effector has its own fixed root frame, so the same world direction can have different signs. DROID uses a fixed robot-root Cartesian frame: +x points forward from the robot base across the tabletop, +y points to the robot's left, and +z points upward away from the tabletop. EEF position coordinates and Cartesian motion targets use these fixed axes; they do not rotate with the gripper. The ee_pos/ee_quat fields and EEF action poses describe the Robotiq base_link at the gripper mount flange, not the fingertip center. The eef_pos/eef_quat fields describe a separate rotated compatibility frame and are not the EEF action-pose convention. Quaternions describe the orientation of the local base_link axes in the robot-root frame. Positive roll, pitch, and yaw follow the right-hand rule about the fixed robot-root +x, +y, and +z axes. Positions are metres and orientations are unit quaternions in wxyz order. Grippers are explicit booleans. Call execute_eef_target with one COMPLETE absolute target and 1 to 5 control steps at 15 Hz. The fixed target is reused for every selected step; you do not provide a trajectory and the host does not interpolate. The target must be within 0.05 m translation and 0.35 rad rotation of the latest measured EEF pose. After the short segment you will receive fresh RGB views, measured state, remaining budget, and RoboLab provided subtask progress. A gripper command or valid IK result is not proof of grasp or task success. Only RoboLab decides termination; there is no model-controlled done action.

EXECUTION TIMING
Each selected control step advances simulation by 0.0666666667 seconds. The simulator is paused during model inference. execute_eef_target holds the same absolute target for the selected number of steps; it does not wait until the pose is reached. At each step the host recomputes local damped least-squares IK from measured state, limiting the position error used by IK to 0.02 m, the rotation error to 0.1 rad, and the joint-position increment to 0.05 rad per joint. Actual movement may be smaller. The requested gripper command is applied at every selected step even if the arm has not reached the target. Use fresh measured state to assess arrival.

The geometry_state object in measured_state supplies measured ee_pos, ee_quat (wxyz), and gripper_pos for the current observation; any measured_state_history entries supply the corresponding values for their own images. These are robot proprioception, not object ground-truth poses.

GRIPPER GEOMETRY
The action pose and ee_pos/ee_quat locate the Robotiq base_link mounting flange.
The finger pads extend along flange-local +X. The two opposing pads are
separated along flange-local Y; closing reduces this separation. These local
directions rotate with ee_quat, while action x/y/z remain robot-root axes.

The following approximate linkage geometry gives the midpoint between the
pad centers, t_pad=[d,0,0] metres in the flange frame, and the inner-face gap.
g is measured gripper_pos[0], normalized closure (0=open, 1=fully closed).
It is different from the binary gripper action requesting open or closed.
g       d (metres)    inner-face gap (metres)
0.00    0.13010       0.0850
0.25    0.13651       0.0666
0.50    0.14101       0.0461
0.75    0.14343       0.0242
1.00    0.14366       0.0018
Interpolate for intermediate openings. Contact can deflect the linkage; these
are geometric reference values, not exact contact locations or a grasp detector.

Use p_pad = p_flange + R(ee_quat) * t_pad, and choose a flange target with
p_flange_target = desired_pad_position - R(target_quaternion) * t_pad.
For the downward wxyz quaternion [0.7071,0,0.7071,0], local +X points downward
and local Y points along robot-root +Y. With open fingers, the pads are about
0.13010 m below the flange and have essentially the same robot-root x/y.
For example, an illustrative desired pad midpoint [0.40,0.10,0.05] m requires
a flange target near [0.40,0.10,0.18010] m at that orientation and opening.
At identity quaternion [1,0,0,0], the same local offset points along robot-root
+X instead: the flange target for that illustrative pad position is
[0.26990,0.10,0.05] m. Use the rotation for other orientations.
These examples describe coordinate conversion, not the current object's pose.

CAMERA CALIBRATION AND TILT
These are the nominal fixed DROID RGB camera extrinsics. p_parent = t + R(q)*p_camera;
each t is in metres, and each q is wxyz (normalize before computing R).
OpenGL camera coordinates have +X image-right, +Y image-up, and -Z viewing-forward.
Do not treat camera/image axes as robot-root action axes.

Camera                       Parent      t                       q (wxyz)
wrist_cam                    flange      [0.011,-0.031,-0.074]    [-0.420,0.570,0.576,-0.409]
over_shoulder_left_camera     robot_root  [0.05,0.57,0.66]         [-0.393,-0.195,0.399,0.805]
over_shoulder_right_camera    robot_root  [0.05,-0.57,0.66]        [0.805,0.399,-0.195,-0.393]

For wrist_cam: p_camera_root = ee_pos + R(ee_quat)*t;
R_camera_root = R(ee_quat)*R(q). Its pose relative to the flange stays fixed.
The shoulder cameras stay fixed in robot-root space, so their flange-relative
extrinsics change with the arm: t_camera_flange = R(ee_quat)^T*(t_camera_root-ee_pos),
R_camera_flange = R(ee_quat)^T*R(q_camera_root). Use the pose from the same image's
observation, not a newer pose when interpreting a historical image.

The wrist viewing direction in flange coordinates is approximately
[0.94976,-0.00763,0.31288]: 18.24 degrees away from the gripper's local +X approach
axis. At the downward gripper quaternion [0.7071,0,0.7071,0], this viewing direction
is approximately [0.31288,-0.00763,-0.94976] in robot-root coordinates. It looks
forward as well as down; the camera also has a lateral mounting offset.

Projection uses normalized image coordinates u=0 at left, v=0 at top; the optical
center is (0.5,0.5). For a point [X,Y,Z] in OpenGL camera coordinates with Z<0:
u = 0.5 + fx_norm*X/(-Z); v = 0.5 - fy_norm*Y/(-Z).
wrist_cam: fx_norm=0.520833333, fy_norm=0.925925926.
Both shoulder cameras: fx_norm=0.390625, fy_norm=0.694444444.
These normalized intrinsics apply to the full uncropped RGB images at any
aspect-preserving resize. They use each individual camera image, not the video mosaic.

For the wrist image, project the pad midpoint with
p_pad_camera = R(q_wrist)^T*([d,0,0]-t_wrist), using d from the gripper table.
With open fingers this projects near (u,v)=(0.625,0.721), not image center;
at full closure it is near (0.614,0.676). These are approximate projections of
the pad midpoint, not universal object-center targets or a contact detector.
The selected contact region may differ from the object's visible top/centroid.

An object centered at (0.5,0.5) is not necessarily between the pads.
The relation between image coordinates and robot-root coordinates depends on
depth and orientation. A pixel alone gives a ray, not a unique 3D position.

Before acting, break the task into a short sequence of subgoals. Track which subgoal is current and revise the plan using observed outcomes.

Episode memory_* tools can retrieve observations, action history and notes. Built-in shell/code and image-inspection tools are disabled. Web, MCP, delegation and planning tools are disabled. Use the robot-action tool to move.Finish each turn with exactly one supplied non-memory policy-output tool. The policy-output tool only proposes an action; the host validates and executes it after the turn.

Verbatim recorded developer instructions; robot-state JSON is formatted for readability. Both examples have the same initial EEF state. Highlighting compares wording, including the memory/tool instructions.

Per-task results
TaskOriginal interfaceExpanded interface
OVERALL80.0 / 86.286.0 / 90.9
BagelsOnPlateTask40.0 / 50.060.0 / 80.0
BananaThenRubiksCubeTask80.0 / 80.0100.0 / 100.0
BananasInBinThreeTotalTask100.0 / 100.0100.0 / 100.0
BlackItemsInBinTask40.0 / 88.080.0 / 100.0
BlockStackingSpecifiedOrderTask100.0 / 100.0100.0 / 100.0
BlocksInBinTask100.0 / 100.0100.0 / 100.0
ButterAboveRaisinTask100.0 / 100.0100.0 / 100.0
CannedFoodInBinTask100.0 / 100.0100.0 / 100.0
CleanUpToysTask100.0 / 100.080.0 / 100.0
ClutterPumpkinTask80.0 / 90.0100.0 / 100.0
CondimentsInBinTask80.0 / 90.0100.0 / 100.0
FoodPackingByColorTask0.0 / 0.00.0 / 0.0
MarkerInMugTask80.0 / 80.0100.0 / 100.0
OneBottleOnShelfTask100.0 / 100.0100.0 / 100.0
PhoneOrRemoteInBinTask80.0 / 80.0100.0 / 100.0
PickGlassesTask100.0 / 100.0100.0 / 100.0
PickUpBluePitcherTask0.0 / 50.060.0 / 80.0
PutBowlOnShelfTopTask60.0 / 60.060.0 / 60.0
PutTwoMugsOnShelfTask80.0 / 100.080.0 / 90.0
ReorientAllMugsTask20.0 / 46.720.0 / 56.7
ReorientJugTask80.0 / 80.0100.0 / 100.0
ReorientRedMugTask80.0 / 90.080.0 / 80.0
RubiksCubeBehindBowlTask100.0 / 100.0100.0 / 100.0
RubiksCubeTask100.0 / 100.0100.0 / 100.0
SauceBottlesCrateTask100.0 / 100.0100.0 / 100.0
SpoonInMugTask100.0 / 100.080.0 / 80.0
SpoonsInPotTask100.0 / 100.080.0 / 100.0
Stack3RubiksCubeTask100.0 / 100.0100.0 / 100.0
TakeSpatulaOffShelfTask100.0 / 100.0100.0 / 100.0
YogurtInBowlTask100.0 / 100.0100.0 / 100.0
The expanded interface produces nine net additional successes across 150 matched episodes. Seventeen episodes succeed only with the expanded interface and eight only with the original interface; completion score rises from 86.2% to 90.9%.

3. Results

Unless otherwise noted, all results below are reported on the 30-task subset. Parameters not varied in a given ablation are held at their default settings, highlighted in green in Ablation Design.

3.1. What information and action choices affect Astra's behavior?

3.1.1. Action Representation and Horizon

Action Space. We compare end-effector (EEF) poses, joint positions, and cubic B-spline trajectories in joint space. For B-splines, the policy predicts six eight-dimensional coefficient vectors and constructs a clamped cubic B-spline 10. B-splines provide a compact representation of smooth, time-parameterized motion trajectories that can be sampled at high control frequencies and joined continuously through boundary constraints 1112. In the Direct Policy setting, EEF (72.7%) consistently outperforms joint positions (48.7%) and B-spline joint trajectories (37.3%) across the 30-task suite. In the Agentic Policy setting, however, the success-rate gap between EEF (86.0%) and joint position (84.0%) narrows to 2.0 percentage points. This suggests that in the agentic setting, the action representation matters less. Absolute action representations performed better than Delta and Relative.

Cubic B-spline on joint position

The policy is asked to predict six coefficient vectors P1,…,P6∈R8 in a cubic B-spline basis, each containing seven absolute joint positions and one gripper command, together with an action horizon H. The client prepends the current robot state

P0=[ qcurrent; 1(gcurrent≥0.5)]

and constructs the trajectory

C(u)= ∑i=06 Ni,3(u) Pi, u∈[0,1],

where Ni,3 are piecewise cubic B-spline basis functions with the clamped knot vector

(0,0,0,0, 14,12,34, 1,1,1,1),

ensuring C(0)=P0 and C(1)=P6.

Action chunk of length H is then generated by sampling C(k/H) for k=1,…,H. The first seven components specify joint-position targets, which are clipped to joint limits and per-step motion bounds; the final component is thresholded at 0.5 to produce the binary gripper command.

Dynamic Horizon. For EEF and joint-position actions, the policy chooses the chunk length at each inference call within one of two ranges: 3–15 or 16–32 actions. The three-action minimum excludes one- and two-action chunks, limiting excessively frequent replanning. For successful task episodes, increasing the dynamic action horizon from 3–15 to 16–32 resulted in 62% fewer calls, while average task completion time remained similar. However, action horizon 16–32 resulted in lower success (-6pp), likely due to inability to correct with shorter horizon action chunks. Our findings suggest that the policy is able to adaptively decide reasonable action chunk horizons while maintaining similar task completion time.

Action spaceSR SCORE
Direct policy1–15 targets, 1 control step / target
  1. EEF
    1. AbsoluteDefault72.7 / 82.2
    2. Delta66.0 / 74.6
    3. Relative64.7 / 74.6
  2. Joint positions
    1. Absolute48.7 / 60.7
    2. Delta43.3 / 57.2
    3. Relative43.3 / 58.0
  3. B-spline
    1. Joint positions37.3 / 49.8
Agentic policy1 target, 1–5 control steps / target
  1. EEF
    1. AbsoluteDefault86.0 / 90.9
  2. Joint positions
    1. Absolute84.0 / 90.8
Figure 6. Action Space: End-effector actions perform best for Direct Policy, but Astra is able to natively generate B-splines. Direct Policy achieves 72.7% success with absolute EEF targets, compared with 48.7% for joint positions and 37.3% for joint-space B-splines. Agentic Policy achieves 86.0% with EEF targets and 84.0% with joint positions. Each condition includes 150 episodes across 30 tasks; the policy forms also differ in their harness and execution settings.

Action space — full results

30 tasks · Direct: 150 episodes/condition · Agentic: 150 episodes/condition · SR (%) / SCORE

Task Direct · EEF Direct · Joint positions B-spline Agentic · Absolute
Absolute Delta Relative Absolute Delta Relative Joint positions EEF Joint positions
Overall · 30 tasks 72.7 / 82.2 66.0 / 74.6 64.7 / 74.6 48.7 / 60.7 43.3 / 57.2 43.3 / 58.0 37.3 / 49.8 86.0 / 90.9 84.0 / 90.8
BlocksInBin 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0
ClutterPumpkin 80.0 / 90.0 80.0 / 80.0 100.0 / 100.0 20.0 / 30.0 80.0 / 90.0 40.0 / 60.0 0.0 / 30.0 100.0 / 100.0 100.0 / 100.0
ButterAboveRaisin 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 80.0 / 80.0 100.0 / 100.0 100.0 / 100.0
BlockStackingSpecifiedOrder 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 60.0 / 86.4 40.0 / 79.6 60.0 / 86.4 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0
ReorientRedMug 60.0 / 70.0 80.0 / 90.0 40.0 / 50.0 20.0 / 40.0 20.0 / 20.0 0.0 / 10.0 0.0 / 10.0 80.0 / 80.0 60.0 / 60.0
SauceBottlesCrate 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 80.0 / 80.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0
CannedFoodInBin 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 80.0 / 80.0 60.0 / 60.0 60.0 / 60.0 80.0 / 80.0 100.0 / 100.0 100.0 / 100.0
YogurtInBowl 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 80.0 / 80.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0
RubiksCube 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 80.0 / 80.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0
BagelsOnPlate 0.0 / 20.0 0.0 / 20.0 0.0 / 0.0 0.0 / 20.0 0.0 / 10.0 0.0 / 30.0 0.0 / 0.0 60.0 / 80.0 60.0 / 80.0
BananaThenRubiksCube 80.0 / 80.0 80.0 / 90.0 80.0 / 90.0 0.0 / 10.0 0.0 / 20.0 0.0 / 0.0 0.0 / 10.0 100.0 / 100.0 100.0 / 100.0
BananasInBinThreeTotal 100.0 / 100.0 100.0 / 100.0 80.0 / 80.0 100.0 / 100.0 100.0 / 100.0 80.0 / 80.0 40.0 / 40.0 100.0 / 100.0 100.0 / 100.0
BlackItemsInBin 60.0 / 96.0 60.0 / 80.0 40.0 / 76.0 0.0 / 48.0 0.0 / 40.0 0.0 / 52.0 0.0 / 40.0 80.0 / 100.0 80.0 / 96.0
CleanUpToys 80.0 / 95.6 60.0 / 93.3 40.0 / 82.2 60.0 / 91.1 60.0 / 66.7 20.0 / 60.0 20.0 / 77.8 80.0 / 100.0 80.0 / 100.0
CondimentsInBin 0.0 / 55.0 0.0 / 40.0 40.0 / 65.0 40.0 / 65.0 0.0 / 15.0 20.0 / 35.0 20.0 / 55.0 100.0 / 100.0 100.0 / 100.0
FoodPackingByColor 0.0 / 0.0 0.0 / 0.0 0.0 / 0.0 0.0 / 0.0 0.0 / 0.0 0.0 / 0.0 0.0 / 0.0 0.0 / 0.0 0.0 / 0.0
MarkerInMug 80.0 / 80.0 40.0 / 40.0 80.0 / 80.0 60.0 / 60.0 60.0 / 60.0 80.0 / 80.0 0.0 / 0.0 100.0 / 100.0 100.0 / 100.0
OneBottleOnShelf 80.0 / 80.0 40.0 / 40.0 60.0 / 60.0 40.0 / 40.0 40.0 / 40.0 0.0 / 0.0 0.0 / 0.0 100.0 / 100.0 100.0 / 100.0
PhoneOrRemoteInBin 100.0 / 100.0 60.0 / 60.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 80.0 / 80.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0
PickGlasses 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 60.0 / 80.0 60.0 / 80.0 60.0 / 80.0 80.0 / 90.0 100.0 / 100.0 100.0 / 100.0
PickUpBluePitcher 60.0 / 80.0 80.0 / 90.0 20.0 / 60.0 20.0 / 60.0 40.0 / 70.0 20.0 / 60.0 20.0 / 60.0 60.0 / 80.0 60.0 / 80.0
PutBowlOnShelfTop 60.0 / 60.0 60.0 / 60.0 60.0 / 80.0 20.0 / 40.0 0.0 / 20.0 60.0 / 60.0 20.0 / 20.0 60.0 / 60.0 80.0 / 80.0
PutTwoMugsOnShelf 20.0 / 40.0 0.0 / 30.0 0.0 / 30.0 20.0 / 30.0 0.0 / 50.0 0.0 / 30.0 0.0 / 10.0 80.0 / 90.0 60.0 / 100.0
ReorientAllMugs 0.0 / 60.0 0.0 / 50.0 0.0 / 40.0 20.0 / 40.0 0.0 / 23.3 0.0 / 46.7 0.0 / 13.3 20.0 / 56.7 40.0 / 66.7
ReorientJug 80.0 / 80.0 60.0 / 60.0 80.0 / 90.0 20.0 / 20.0 20.0 / 40.0 40.0 / 50.0 20.0 / 20.0 100.0 / 100.0 100.0 / 100.0
RubiksCubeBehindBowl 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 40.0 / 66.7 40.0 / 73.3 60.0 / 80.0 0.0 / 33.3 100.0 / 100.0 40.0 / 100.0
SpoonInMug 80.0 / 80.0 100.0 / 100.0 80.0 / 80.0 80.0 / 80.0 80.0 / 80.0 60.0 / 60.0 80.0 / 80.0 80.0 / 80.0 80.0 / 80.0
SpoonsInPot 60.0 / 100.0 80.0 / 93.3 80.0 / 93.3 60.0 / 73.3 0.0 / 46.7 0.0 / 60.0 0.0 / 53.3 80.0 / 100.0 100.0 / 100.0
Stack3RubiksCube 100.0 / 100.0 60.0 / 80.0 60.0 / 80.0 60.0 / 80.0 40.0 / 70.0 60.0 / 80.0 40.0 / 70.0 100.0 / 100.0 100.0 / 100.0
TakeSpatulaOffShelf 100.0 / 100.0 40.0 / 40.0 0.0 / 0.0 0.0 / 0.0 0.0 / 0.0 0.0 / 0.0 20.0 / 20.0 100.0 / 100.0 80.0 / 80.0
Table A2. The action-representation gap is much larger for Direct Policy than Agentic Policy. Absolute EEF targets lead the Direct comparison, while Agentic EEF and joint-position totals differ by only two percentage points.
Action horizon
Success rate
3–15 actions (Default)
72.7%
16–32 actions
66.7%
Model calls
3–15 actions (Default)
45.84
16–32 actions
17.45
Avg. chunk length / call
3–15 actions (Default)
7.98
16–32 actions
21.61
Task completion time
3–15 actions (Default)
25.47 s
16–32 actions
25.01 s
Figure 7. Dynamic action horizon's effect on task completion and success. On 23 shared tasks with success, action horizon does not significantly affect the task completion time. The policy dynamically compensates for shorter action horizons with more model calls.

3.1.2. What does Astra need to know about robot geometry?

Prompt Variations. We compare a base prompt containing description of the robot, control frequency, general end effector and robot frame poses. We modify the language context with three extensions: gripper geometry, camera geometry, and both together. Gripper geometry describes the flange-to-finger-pad offset and jaw orientation; camera geometry provides camera poses, intrinsics, and wrist-camera tilt to relate image coordinates to robot motion. Action and observation specific descriptions are added based on the ablation study. View the raw prompt below.

You control a simulated DROID robot, which is a Franka Panda arm with a Robotiq 2F-85 gripper. Work toward the user's manipulation goal using the chronological RGB frames and synchronized proprioception in each observation. Re-check the left shoulder, right shoulder, and wrist views after every motion. Prefer small, deliberate motions. Avoid self-collision, the table, and unrelated objects.

DROID uses a fixed robot-root Cartesian frame: +x points forward from the robot base across the tabletop, +y points to the robot's left, and +z points upward away from the tabletop. EEF position coordinates and Cartesian motion targets use these fixed axes; they do not rotate with the gripper. The ee_pos/ee_quat fields and EEF action poses describe the Robotiq base_link at the gripper mount flange, not the fingertip center. The eef_pos/eef_quat fields describe a separate rotated compatibility frame and are not the EEF action-pose convention. Quaternions describe the orientation of the local base_link axes in the robot-root frame. Positive roll, pitch, and yaw follow the right-hand rule about the fixed robot-root +x, +y, and +z axes.

Each EEF action is an ABSOLUTE pose of the Robotiq base_link in the DROID robot root frame: [x, y, z, qw, qx, qy, qz, gripper]. Positions are metres, quaternions use unit wxyz order, and gripper is 0=open or 1=closed. The client normalizes quaternions and enforces sequential Cartesian step limits, but those checks do not replace careful planning.

EXECUTION TIMING
Each action row runs for one control interval: 0.066666667 seconds (15 Hz) in this environment. A row specifies a target; it does not wait until that target is reached. API response time does not advance simulation.

Translation targets are limited to 0.02 m per row and rotation changes to 0.1 rad per row. Actual movement may be smaller. The gripper command still executes even when the requested arm movement is shortened. Use measured ee_pos/ee_quat to assess arrival.

Respond with exactly one emit_eef_actions tool call containing between 3 and 15 consecutive absolute 8D EEF actions. Each action is [x, y, z, qw, qx, qy, qz, gripper] for the Robotiq base_link in the DROID robot-root frame. Specify every executed control target explicitly; the client does not interpolate between model-emitted actions. Choose the number of actions needed before the next visual replan.
Figure 8. Prompt Variants. The base prompt defines the robot, coordinate conventions, and execution timing. Gripper and camera additions supply the geometry needed to relate visible objects to commanded motion; the default combines both.

Geometry information makes a significant difference in the Direct Policy approach, while not so much in the Agentic Policy approach. In the Direct Policy approach, geometry information makes a visible difference in how the policy moves. Observe the YogurtInBowl example: the base prompt leads to repeated adjustments as the robot tries to line up its gripper with the cup. Adding gripper geometry alone still leaves a fair amount of back-and-forth. With both camera and gripper geometry, the robot follows a more direct approach, grasp, and placement sequence. Camera geometry alone also works well here, but the broader ablation favors including both. With an agentic approach, removing geometry instructions reduces success by 2.7pp but uses 14.7% more control steps. We hypothesize the agent may have an internal estimate of geometry from its persistent observation-action history or is able to correct alignment incrementally due to shorter action segments and/or explicit tracking feedback.

EFFECT OF PROMPT ON MOTION

Task: YogurtInBowl
Language instruction: Put the small red yogurt in the red bowl

Robot identity, RGB observations and proprioception, and the absolute EEF action format.

Minimal + Axis directions, pose-frame conventions, execution timing, motion limits, and guidance for checking observations and replanning.

Base + Camera positions, orientations, intrinsics, and wrist-camera tilt to relate image observations to the robot frame.

Base + Finger-pad offsets, jaw orientation, and flange-to-pad calculations to relate commanded poses to grasp locations.

Minimal prompt

You control a simulated DROID robot, which is a Franka Panda arm with a Robotiq 2F-85 gripper.
Work toward the user's manipulation goal using the chronological RGB frames
and synchronized proprioception in each observation. Each EEF action is an ABSOLUTE pose of the Robotiq base_link in the DROID robot
root frame: [x, y, z, qw, qx, qy, qz, gripper]. Positions are metres,
quaternions use unit wxyz order, and gripper is 0=open or 1=closed. Respond with exactly one emit_eef_actions tool call containing between 1 and 15 consecutive absolute 8D EEF actions. Each action is [x, y, z, qw, qx, qy, qz, gripper] 
Figure 9. Yogurt task across prompt variants. We demonstrate the effect of prompt on performance, using Direct API with Absolute EEF and default settings. With a minimal task prompt and action, the robot is not able to generate any reasonable action. By adding pose-frame and some motion-guidance, the base prompt is able to achieve a successful episode. However, base prompt produces repeated alignment adjustments, while camera geometry and the combined geometry prompt support more direct execution. With a detailed geometry context, the motion is smooth and fluid.
PromptSR SCORE

Direct Policy

  1. Base19.3 / 34.5
  2. Base + gripper35.3 / 50.9
  3. Base + camera62.7 / 72.1
  4. Base + gripper + cameraDefault72.7 / 82.2

Agentic Policy

  1. Base83.3 / 87.9
  2. Base + gripper + cameraDefault86.0 / 90.9
Figure 10. Prompt Ablation. Geometry information substantially improves Direct Policy, with a smaller observed effect on Agentic Policy.Adding both gripper and camera geometry raises Direct Policy success from 19.3% to 72.7%, compared with 83.3% to 86.0% for Agentic Policy. Each policy retains its own base prompt and harness. Minimal prompt not evaluated.

Prompt geometry — full results

30 tasks · Direct: 150 episodes/condition · Agentic: 150 matched pairs · References: 300 episodes/condition · SR (%) / SCORE

Task Direct Policy Agentic Policy Reference Policies
Base + Gripper + Camera + Gripper + Camera Base + Gripper + Camera Cosmos3 π0.5
Overall · 30 tasks 19.3 / 34.5 35.3 / 50.9 62.7 / 72.1 72.7 / 82.2 83.3 / 87.9 86.0 / 90.9 30.0 / 46.1 23.0 / 35.3
BlocksInBin 20.0 / 65.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 30.0 / 62.5 0.0 / 62.5
ClutterPumpkin 0.0 / 40.0 20.0 / 50.0 80.0 / 100.0 80.0 / 90.0 80.0 / 90.0 100.0 / 100.0 0.0 / 5.0 0.0 / 20.0
ButterAboveRaisin 100.0 / 100.0 80.0 / 80.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 20.0 / 20.0
BlockStackingSpecifiedOrder 0.0 / 52.8 0.0 / 33.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 0.0 / 3.3 0.0 / 0.0
ReorientRedMug 80.0 / 80.0 100.0 / 100.0 80.0 / 90.0 60.0 / 70.0 80.0 / 80.0 80.0 / 80.0 40.0 / 50.0 70.0 / 70.0
SauceBottlesCrate 80.0 / 80.0 80.0 / 80.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 60.0 / 60.0
CannedFoodInBin 0.0 / 0.0 20.0 / 20.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 40.0 / 40.0 60.0 / 60.0
YogurtInBowl 40.0 / 40.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 10.0 / 10.0 10.0 / 10.0
RubiksCube 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0
BagelsOnPlate 0.0 / 0.0 0.0 / 0.0 0.0 / 10.0 0.0 / 20.0 40.0 / 60.0 60.0 / 80.0 0.0 / 0.0 0.0 / 0.0
BananaThenRubiksCube 0.0 / 40.0 40.0 / 70.0 100.0 / 100.0 80.0 / 80.0 100.0 / 100.0 100.0 / 100.0 80.0 / 85.0 50.0 / 70.0
BananasInBinThreeTotal 20.0 / 20.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0
BlackItemsInBin 0.0 / 28.0 0.0 / 52.0 60.0 / 84.0 60.0 / 96.0 40.0 / 76.0 80.0 / 100.0 0.0 / 48.0 0.0 / 32.0
CleanUpToys 0.0 / 35.6 20.0 / 86.7 80.0 / 97.8 80.0 / 95.6 100.0 / 100.0 80.0 / 100.0 0.0 / 0.0 0.0 / 0.0
CondimentsInBin 0.0 / 15.0 0.0 / 20.0 20.0 / 55.0 0.0 / 55.0 60.0 / 90.0 100.0 / 100.0 20.0 / 75.0 0.0 / 27.5
FoodPackingByColor 0.0 / 0.0 0.0 / 0.0 0.0 / 0.0 0.0 / 0.0 0.0 / 0.0 0.0 / 0.0 0.0 / 0.0 0.0 / 0.0
MarkerInMug 0.0 / 0.0 0.0 / 0.0 60.0 / 60.0 80.0 / 80.0 100.0 / 100.0 100.0 / 100.0 20.0 / 20.0 0.0 / 0.0
OneBottleOnShelf 0.0 / 0.0 40.0 / 40.0 20.0 / 20.0 80.0 / 80.0 100.0 / 100.0 100.0 / 100.0 0.0 / 0.0 0.0 / 0.0
PhoneOrRemoteInBin 40.0 / 40.0 60.0 / 60.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 70.0 / 70.0 20.0 / 20.0
PickGlasses 0.0 / 0.0 0.0 / 40.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 0.0 / 50.0 10.0 / 50.0
PickUpBluePitcher 0.0 / 50.0 20.0 / 60.0 0.0 / 50.0 60.0 / 80.0 60.0 / 80.0 60.0 / 80.0 0.0 / 50.0 10.0 / 55.0
PutBowlOnShelfTop 20.0 / 20.0 20.0 / 20.0 0.0 / 0.0 60.0 / 60.0 20.0 / 20.0 60.0 / 60.0 0.0 / 0.0 0.0 / 0.0
PutTwoMugsOnShelf 0.0 / 0.0 40.0 / 50.0 20.0 / 60.0 20.0 / 40.0 80.0 / 100.0 80.0 / 90.0 50.0 / 80.0 0.0 / 25.0
ReorientAllMugs 0.0 / 36.7 0.0 / 26.7 0.0 / 53.3 0.0 / 60.0 80.0 / 80.0 20.0 / 56.7 0.0 / 33.3 0.0 / 36.7
ReorientJug 20.0 / 20.0 0.0 / 10.0 60.0 / 60.0 80.0 / 80.0 100.0 / 100.0 100.0 / 100.0 60.0 / 60.0 20.0 / 20.0
RubiksCubeBehindBowl 60.0 / 86.7 40.0 / 73.3 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 10.0 / 86.7 70.0 / 93.3
SpoonInMug 0.0 / 0.0 0.0 / 0.0 20.0 / 20.0 80.0 / 80.0 60.0 / 60.0 80.0 / 80.0 50.0 / 50.0 20.0 / 20.0
SpoonsInPot 0.0 / 46.7 60.0 / 86.7 80.0 / 93.3 60.0 / 100.0 100.0 / 100.0 80.0 / 100.0 0.0 / 50.0 0.0 / 23.3
Stack3RubiksCube 0.0 / 40.0 0.0 / 50.0 80.0 / 90.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 10.0 / 35.0 70.0 / 85.0
TakeSpatulaOffShelf 0.0 / 0.0 20.0 / 20.0 20.0 / 20.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 10.0 / 20.0 0.0 / 0.0
Table A3. Combined gripper and camera geometry produces the strongest Direct Policy result. Agentic Policy shows a smaller aggregate difference between its base and geometry-augmented prompts.

3.1.3. How much context does Astra need?

Observation Horizon. We vary the observation history available at each inference call in the Direct Policy approach. Each observation contains three camera images and the corresponding robot state. We provide approximately 1-2s of observation history. We compare both the temporal span and sampling density of the short horizon context provided to the model. Simply providing the current observation achieved the lowest performance compared to having any observation history. However, we observe that providing longer or denser context did not lead to significant increases in performance.

Context History. For the agentic approach, we separately vary access to visual history and text history: the model’s previous messages, plans, action calls and arguments, and native reasoning records. We compare five conditions: text history with current images; visual history without text history; text history with three recent observations; recent text and visual history; and full text and visual history. All conditions receive current images, robot state, and motion feedback. Historical robot-state and feedback messages are excluded, although retained assistant outputs may refer to them.

Retaining more history generally corresponded to higher success, with full conversation history achieving 100% on a 23-task subset. Text history appeared particularly useful: retaining it alongside current images achieved higher observed success than retaining the full visual history alone. Astra performed better when it retained its full history of plans and actions than when it retained only selected earlier turns. That history may help it remember what it has tried and track the task’s progress.

Context samplingSR SCORE

Observation Horizon Direct Policy

  1. t49.3 / 60.7
  2. t−14, t−7, tDefault72.7 / 82.2
  3. t−29, t−14, t70.7 / 77.8
  4. t−29, t−21, t−14, t−7, t70.0 / 79.4

Context History† Agentic Policy

  1. Full historyDefault100.0 / 100.0
  2. Full text + recent visual history95.7 / 95.7
  3. Text history87.0 / 94.9
  4. Recent text + recent visual history73.9 / 78.3
  5. Visual history56.5 / 61.6
Figure 11. Context sampling. We vary the temporal span and density of observations in Direct Policy, and the visual and text history retained between decisions in Agentic Policy. Direct Policy improves from 49.3% success with the current observation alone to 72.7% with three recent observations, with no further gain from longer or denser sampling. † For Agentic Policy, we evaluate on a 23-task subset because running without caching incurs substantially higher inference costs. Retaining the full text and visual history achieves a 100% success rate on this subset.

Context sampling — full results

Observation Horizon · Direct Policy / Context History · Agentic Policy · SR (%) / SCORE

Task t t−14, t−7, t t−29, t−14, t t−29, t−21, t−14, t−7, t
Overall · 30 tasks 49.3 / 60.7 72.7 / 82.2 70.7 / 77.8 70.0 / 79.4
BlocksInBin 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0
ClutterPumpkin 0.0 / 10.0 80.0 / 90.0 100.0 / 100.0 80.0 / 90.0
ButterAboveRaisin 80.0 / 80.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0
BlockStackingSpecifiedOrder 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0
ReorientRedMug 40.0 / 60.0 60.0 / 70.0 80.0 / 80.0 80.0 / 80.0
SauceBottlesCrate 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0
CannedFoodInBin 20.0 / 20.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0
YogurtInBowl 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0
RubiksCube 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0
BagelsOnPlate 0.0 / 0.0 0.0 / 20.0 0.0 / 0.0 0.0 / 20.0
BananaThenRubiksCube 40.0 / 70.0 80.0 / 80.0 60.0 / 60.0 100.0 / 100.0
BananasInBinThreeTotal 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0
BlackItemsInBin 20.0 / 64.0 60.0 / 96.0 40.0 / 76.0 80.0 / 88.0
CleanUpToys 60.0 / 91.1 80.0 / 95.6 100.0 / 100.0 40.0 / 95.6
CondimentsInBin 20.0 / 70.0 0.0 / 55.0 20.0 / 55.0 0.0 / 65.0
FoodPackingByColor 0.0 / 0.0 0.0 / 0.0 0.0 / 0.0 0.0 / 0.0
MarkerInMug 80.0 / 80.0 80.0 / 80.0 100.0 / 100.0 80.0 / 80.0
OneBottleOnShelf 40.0 / 40.0 80.0 / 80.0 80.0 / 80.0 20.0 / 20.0
PhoneOrRemoteInBin 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0
PickGlasses 100.0 / 100.0 100.0 / 100.0 60.0 / 80.0 100.0 / 100.0
PickUpBluePitcher 60.0 / 80.0 60.0 / 80.0 40.0 / 70.0 40.0 / 70.0
PutBowlOnShelfTop 40.0 / 40.0 60.0 / 60.0 40.0 / 40.0 20.0 / 20.0
PutTwoMugsOnShelf 0.0 / 10.0 20.0 / 40.0 20.0 / 40.0 20.0 / 50.0
ReorientAllMugs 0.0 / 30.0 0.0 / 60.0 0.0 / 53.3 40.0 / 63.3
ReorientJug 40.0 / 50.0 80.0 / 80.0 80.0 / 80.0 100.0 / 100.0
RubiksCubeBehindBowl 60.0 / 86.7 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0
SpoonInMug 0.0 / 0.0 80.0 / 80.0 60.0 / 60.0 80.0 / 80.0
SpoonsInPot 60.0 / 80.0 60.0 / 100.0 80.0 / 100.0 40.0 / 80.0
Stack3RubiksCube 20.0 / 60.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0
TakeSpatulaOffShelf 0.0 / 0.0 100.0 / 100.0 60.0 / 60.0 80.0 / 80.0
Table A4. A short observation history improves success over the current observation alone. Longer or denser sampling does not improve the pooled result beyond the default three-observation configuration.

3.1.4. How should the task be specified?

We study 2 variants of task specification: language and video (in-context learning). In-context learning (ICL) allows a model to adapt its behavior to a task using examples or demonstrations supplied at inference time, without updating the model’s parameters 13. For in-context learning, we provide Astra with frames sampled from a previous successful rollout showing all three views and ask it to complete the task as shown in the Agentic Policy setting.

Task specificationSR SCORE
Language

Direct Policy

  1. Default72.7 / 82.2
  2. Vague64.0 / 74.6

Agentic Policy

  1. Default86.0 / 90.9
  2. Vague85.3 / 90.9
Video

Agentic Policy

  1. Lang. (default)90.0 / 94.5
  2. Video87.9 / 91.7
Figure 12. Task specification. Agentic Policy maintains similar success with default and vague instructions; Direct Policy is more sensitive to wording. Video-conditioned execution achieves 87.9% success versus 90.0% without demonstrations.

Language — full results

30 tasks · 5 episodes per task and condition · Reference policies: 10 episodes per task · SR (%) / SCORE

Task Direct Policy Agentic Policy Reference Policies
Default Vague Default Vague Cosmos3 π0.5
Overall · 30 tasks 72.7 / 82.2 64.0 / 74.6 86.0 / 90.9 85.3 / 90.9 30.0 / 46.1 23.0 / 35.3
BlocksInBin 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 30.0 / 62.5 0.0 / 62.5
ClutterPumpkin 80.0 / 90.0 80.0 / 90.0 100.0 / 100.0 80.0 / 90.0 0.0 / 5.0 0.0 / 20.0
ButterAboveRaisin 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 20.0 / 20.0
BlockStackingSpecifiedOrder 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 0.0 / 3.3 0.0 / 0.0
ReorientRedMug 60.0 / 70.0 20.0 / 60.0 80.0 / 80.0 80.0 / 80.0 40.0 / 50.0 70.0 / 70.0
SauceBottlesCrate 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 60.0 / 60.0
CannedFoodInBin 100.0 / 100.0 80.0 / 80.0 100.0 / 100.0 100.0 / 100.0 40.0 / 40.0 60.0 / 60.0
YogurtInBowl 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 10.0 / 10.0 10.0 / 10.0
RubiksCube 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0
BagelsOnPlate 0.0 / 20.0 0.0 / 0.0 60.0 / 80.0 60.0 / 80.0 0.0 / 0.0 0.0 / 0.0
BananaThenRubiksCube 80.0 / 80.0 60.0 / 60.0 100.0 / 100.0 100.0 / 100.0 80.0 / 85.0 50.0 / 70.0
BananasInBinThreeTotal 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0
BlackItemsInBin 60.0 / 96.0 100.0 / 100.0 80.0 / 100.0 100.0 / 100.0 0.0 / 48.0 0.0 / 32.0
CleanUpToys 80.0 / 95.6 80.0 / 100.0 80.0 / 100.0 100.0 / 100.0 0.0 / 0.0 0.0 / 0.0
CondimentsInBin 0.0 / 55.0 20.0 / 75.0 100.0 / 100.0 100.0 / 100.0 20.0 / 75.0 0.0 / 27.5
FoodPackingByColor 0.0 / 0.0 0.0 / 0.0 0.0 / 0.0 0.0 / 30.0 0.0 / 0.0 0.0 / 0.0
MarkerInMug 80.0 / 80.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 20.0 / 20.0 0.0 / 0.0
OneBottleOnShelf 80.0 / 80.0 20.0 / 20.0 100.0 / 100.0 100.0 / 100.0 0.0 / 0.0 0.0 / 0.0
PhoneOrRemoteInBin 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 70.0 / 70.0 20.0 / 20.0
PickGlasses 100.0 / 100.0 80.0 / 90.0 100.0 / 100.0 100.0 / 100.0 0.0 / 50.0 10.0 / 50.0
PickUpBluePitcher 60.0 / 80.0 0.0 / 50.0 60.0 / 80.0 60.0 / 80.0 0.0 / 50.0 10.0 / 55.0
PutBowlOnShelfTop 60.0 / 60.0 40.0 / 40.0 60.0 / 60.0 60.0 / 60.0 0.0 / 0.0 0.0 / 0.0
PutTwoMugsOnShelf 20.0 / 40.0 0.0 / 40.0 80.0 / 90.0 60.0 / 100.0 50.0 / 80.0 0.0 / 25.0
ReorientAllMugs 0.0 / 60.0 20.0 / 46.7 20.0 / 56.7 0.0 / 46.7 0.0 / 33.3 0.0 / 36.7
ReorientJug 80.0 / 80.0 80.0 / 90.0 100.0 / 100.0 80.0 / 80.0 60.0 / 60.0 20.0 / 20.0
RubiksCubeBehindBowl 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 100.0 / 100.0 10.0 / 86.7 70.0 / 93.3
SpoonInMug 80.0 / 80.0 60.0 / 60.0 80.0 / 80.0 80.0 / 80.0 50.0 / 50.0 20.0 / 20.0
SpoonsInPot 60.0 / 100.0 60.0 / 86.7 80.0 / 100.0 100.0 / 100.0 0.0 / 50.0 0.0 / 23.3
Stack3RubiksCube 100.0 / 100.0 80.0 / 90.0 100.0 / 100.0 100.0 / 100.0 10.0 / 35.0 70.0 / 85.0
TakeSpatulaOffShelf 100.0 / 100.0 40.0 / 60.0 100.0 / 100.0 100.0 / 100.0 10.0 / 20.0 0.0 / 0.0
Table A5. Vague instructions reduce Direct Policy success more than Agentic Policy success.

Video demonstrations — full results

28 evaluated tasks · 140 matched pairs · SR (%) / SCORE

TaskNo demonstrationVideo demonstration
OVERALL90.0 / 94.587.9 / 91.7
BagelsOnPlateTask——
BananaThenRubiksCubeTask100.0 / 100.0100.0 / 100.0
BananasInBinThreeTotalTask100.0 / 100.0100.0 / 100.0
BlackItemsInBinTask80.0 / 100.060.0 / 92.0
BlockStackingSpecifiedOrderTask100.0 / 100.0100.0 / 100.0
BlocksInBinTask100.0 / 100.0100.0 / 100.0
ButterAboveRaisinTask100.0 / 100.0100.0 / 100.0
CannedFoodInBinTask100.0 / 100.0100.0 / 100.0
CleanUpToysTask80.0 / 100.0100.0 / 100.0
ClutterPumpkinTask100.0 / 100.080.0 / 80.0
CondimentsInBinTask100.0 / 100.0100.0 / 100.0
FoodPackingByColorTask——
MarkerInMugTask100.0 / 100.080.0 / 80.0
OneBottleOnShelfTask100.0 / 100.020.0 / 20.0
PhoneOrRemoteInBinTask100.0 / 100.0100.0 / 100.0
PickGlassesTask100.0 / 100.0100.0 / 100.0
PickUpBluePitcherTask60.0 / 80.060.0 / 80.0
PutBowlOnShelfTopTask60.0 / 60.080.0 / 80.0
PutTwoMugsOnShelfTask80.0 / 90.0100.0 / 100.0
ReorientAllMugsTask20.0 / 56.720.0 / 56.7
ReorientJugTask100.0 / 100.0100.0 / 100.0
ReorientRedMugTask80.0 / 80.080.0 / 80.0
RubiksCubeBehindBowlTask100.0 / 100.080.0 / 100.0
RubiksCubeTask100.0 / 100.0100.0 / 100.0
SauceBottlesCrateTask100.0 / 100.0100.0 / 100.0
SpoonInMugTask80.0 / 80.0100.0 / 100.0
SpoonsInPotTask80.0 / 100.0100.0 / 100.0
Stack3RubiksCubeTask100.0 / 100.0100.0 / 100.0
TakeSpatulaOffShelfTask100.0 / 100.0100.0 / 100.0
YogurtInBowlTask100.0 / 100.0100.0 / 100.0
Table A5. Video-conditioned execution approaches the success of language-conditioned execution.

The language instruction is directly provided to the policy. Default instructions outperformed vague instructions by 8.7pp, indicating that the model did not additionally reason to overcome the task’s language specificity.

Astra is able to do ICL with performance on-par with language instructions. The block-stacking example below pairs the sampled demonstration with a successful Astra rollout. With ICL, Astra sometimes grasped an object on its first attempt even when the demonstration showed several tries. These local improvements did not translate into shorter episodes overall: demonstration-conditioned episodes required 8.8% more control steps on average than their counterparts without demonstrations.

IN-CONTEXT LEARNING

Task: BlockStackingSpecifiedOrder
Instruction: stack the blocks in the specified order
Sampled demonstration at 1 Hz
Demonstration frame 1 of 36: left shoulder, right shoulder, and wrist views
(frame 1/36)
Task rollout
Success
Figure 13. Astra successfully demonstrates ICL. The sampled demonstration and the successful Agentic rollout both build a tower ordered red, blue, green, and yellow from bottom to top. The demonstration supplies 36 frames sampled at 1 Hz, each containing all three camera views.

3.1.5. How does the model affect performance?

We compare four models under the Direct Policy configuration to evaluate their capabilities: GPT-6 Astra, the high-capability reference model; GPT-6 Sol, a lower-cost alternative; GPT-6 Luna, the lightweight, lowest-cost option; and Claude Opus 5.5. We also run a small experiment comparing medium and xhigh reasoning effort. We observe that Astra has the strongest capability among the evaluated models. Increasing reasoning effort showed little performance change, but incurred higher latency and token cost.

ModelSR SCORE
  1. GPT-6 AstraDefault72.7 / 82.2
  2. GPT-6 Sol33.3 / 49.2
  3. GPT-6 Luna2.0 / 8.6
  4. Claude Opus 5.525.3 / 36.0
Figure 14. Model choice strongly affects direct-control success. Under the same evaluated configuration, Astra achieves 72.7% success, compared with 33.3% for Sol, 2.0% for Luna, and 25.3% for Claude Opus 5.5. Each model is evaluated on 150 episodes across 30 tasks.

Model — full results

30 tasks · 5 episodes per task and condition · SR (%) / SCORE

Task GPT-6 Astra GPT-6 Sol GPT-6 Luna Claude Opus 5.5
Overall · 30 tasks 72.7 / 82.2 33.3 / 49.2 2.0 / 8.6 25.3 / 36.0
BlocksInBin 100.0 / 100.0 80.0 / 90.0 0.0 / 0.0 20.0 / 50.0
ClutterPumpkin 80.0 / 90.0 0.0 / 40.0 0.0 / 0.0 0.0 / 0.0
ButterAboveRaisin 100.0 / 100.0 60.0 / 60.0 0.0 / 0.0 80.0 / 80.0
BlockStackingSpecifiedOrder 100.0 / 100.0 0.0 / 39.6 0.0 / 0.0 40.0 / 73.0
ReorientRedMug 60.0 / 70.0 60.0 / 60.0 20.0 / 30.0 60.0 / 60.0
SauceBottlesCrate 100.0 / 100.0 60.0 / 60.0 0.0 / 0.0 0.0 / 0.0
CannedFoodInBin 100.0 / 100.0 100.0 / 100.0 0.0 / 0.0 100.0 / 100.0
YogurtInBowl 100.0 / 100.0 100.0 / 100.0 0.0 / 0.0 60.0 / 60.0
RubiksCube 100.0 / 100.0 100.0 / 100.0 20.0 / 20.0 60.0 / 60.0
BagelsOnPlate 0.0 / 20.0 0.0 / 10.0 0.0 / 0.0 0.0 / 20.0
BananaThenRubiksCube 80.0 / 80.0 0.0 / 40.0 0.0 / 20.0 0.0 / 0.0
BananasInBinThreeTotal 100.0 / 100.0 80.0 / 80.0 0.0 / 0.0 0.0 / 0.0
BlackItemsInBin 60.0 / 96.0 20.0 / 60.0 0.0 / 20.0 0.0 / 40.0
CleanUpToys 80.0 / 95.6 0.0 / 66.7 0.0 / 0.0 0.0 / 22.2
CondimentsInBin 0.0 / 55.0 0.0 / 25.0 0.0 / 0.0 0.0 / 10.0
FoodPackingByColor 0.0 / 0.0 0.0 / 0.0 0.0 / 0.0 0.0 / 0.0
MarkerInMug 80.0 / 80.0 20.0 / 20.0 0.0 / 0.0 60.0 / 60.0
OneBottleOnShelf 80.0 / 80.0 20.0 / 20.0 0.0 / 0.0 40.0 / 40.0
PhoneOrRemoteInBin 100.0 / 100.0 60.0 / 60.0 0.0 / 0.0 0.0 / 0.0
PickGlasses 100.0 / 100.0 80.0 / 90.0 0.0 / 30.0 100.0 / 100.0
PickUpBluePitcher 60.0 / 80.0 20.0 / 60.0 0.0 / 20.0 0.0 / 50.0
PutBowlOnShelfTop 60.0 / 60.0 20.0 / 20.0 0.0 / 0.0 20.0 / 20.0
PutTwoMugsOnShelf 20.0 / 40.0 0.0 / 20.0 0.0 / 10.0 0.0 / 20.0
ReorientAllMugs 0.0 / 60.0 0.0 / 36.7 0.0 / 13.3 0.0 / 13.3
ReorientJug 80.0 / 80.0 0.0 / 10.0 0.0 / 0.0 20.0 / 20.0
RubiksCubeBehindBowl 100.0 / 100.0 80.0 / 86.7 20.0 / 73.3 0.0 / 53.3
SpoonInMug 80.0 / 80.0 20.0 / 20.0 0.0 / 0.0 20.0 / 20.0
SpoonsInPot 60.0 / 100.0 20.0 / 60.0 0.0 / 0.0 0.0 / 6.7
Stack3RubiksCube 100.0 / 100.0 0.0 / 40.0 0.0 / 0.0 60.0 / 80.0
TakeSpatulaOffShelf 100.0 / 100.0 0.0 / 0.0 0.0 / 20.0 20.0 / 20.0
Table A6. Astra’s higher success persists in the pooled task-level comparison.
GPT-6 Astra: reasoning effort
Success rate
medium (Default)
72.7%
xhigh
74.5%
Latency
medium (Default)
17.06 s
xhigh
44.91 s
Token cost
medium (Default)
$2.26
xhigh
$4.93
Figure 15. Higher reasoning effort yields similar success at higher latency and token cost. Astra achieves 74.5% success at xhigh versus 72.7% at medium, with 2.6× the latency and 2.2× the estimated token cost. Latency and cost summarize each setting’s successful episodes.

3.2. What does agentic scaffolding contribute?

For Agentic Policy, we give the model a persistent Codex session for observing the scene, proposing robot actions, and retaining episode context. At each decision, the harness has full access to conversation history and episode decisions throughout. Astra proposes one end-effector target; the host validates and executes that target, then returns a new observation.

Compared with directly querying an API for each action, this setup allows us to study more of the interaction structure in the harness and its effect on performance: how history persists, which tools are available, and how planning is encouraged. We examine optional tool access, written planning instructions, and explicit recovery interventions separately.

3.2.1. Does access to optional tools help?

Agentic Policy may write and execute arbitrary Python code within the Codex environment. To encourage tool-use, we provide Codex with a workspace containing direct paths to observation images, a scratch directory for scripts/crops/calculations, and persistent notes. We prompt it to utilize this workspace whenever additional visual inspection, geometric estimation, or numerical computation could inform its next action. When disabling optional tools, we disable shell/code execution and image inspection and remove the guidance encouraging their use.

Tool Use · Agentic PolicySR SCORE
  1. Tools disabledDefault86.0 / 90.9
  2. Tools enabled88.0 / 91.2
Figure 16. Effect of tool use on Agentic Policy. While Astra is able to use tools, performance does not seem to be affected by explicit tool use.

Tool use — full results

TaskTools disabledTools enabled
OVERALL86.0 / 90.988.0 / 91.2
BagelsOnPlateTask60.0 / 80.060.0 / 80.0
BananaThenRubiksCubeTask100.0 / 100.0100.0 / 100.0
BananasInBinThreeTotalTask100.0 / 100.0100.0 / 100.0
BlackItemsInBinTask80.0 / 100.0100.0 / 100.0
BlockStackingSpecifiedOrderTask100.0 / 100.0100.0 / 100.0
BlocksInBinTask100.0 / 100.0100.0 / 100.0
ButterAboveRaisinTask100.0 / 100.0100.0 / 100.0
CannedFoodInBinTask100.0 / 100.0100.0 / 100.0
CleanUpToysTask80.0 / 100.0100.0 / 100.0
ClutterPumpkinTask100.0 / 100.0100.0 / 100.0
CondimentsInBinTask100.0 / 100.080.0 / 95.0
FoodPackingByColorTask0.0 / 0.00.0 / 0.0
MarkerInMugTask100.0 / 100.0100.0 / 100.0
OneBottleOnShelfTask100.0 / 100.0100.0 / 100.0
PhoneOrRemoteInBinTask100.0 / 100.0100.0 / 100.0
PickGlassesTask100.0 / 100.0100.0 / 100.0
PickUpBluePitcherTask60.0 / 80.060.0 / 80.0
PutBowlOnShelfTopTask60.0 / 60.0100.0 / 100.0
PutTwoMugsOnShelfTask80.0 / 90.0100.0 / 100.0
ReorientAllMugsTask20.0 / 56.70.0 / 40.0
ReorientJugTask100.0 / 100.080.0 / 80.0
ReorientRedMugTask80.0 / 80.080.0 / 80.0
RubiksCubeBehindBowlTask100.0 / 100.0100.0 / 100.0
RubiksCubeTask100.0 / 100.0100.0 / 100.0
SauceBottlesCrateTask100.0 / 100.0100.0 / 100.0
SpoonInMugTask80.0 / 80.0100.0 / 100.0
SpoonsInPotTask80.0 / 100.0100.0 / 100.0
Stack3RubiksCubeTask100.0 / 100.0100.0 / 100.0
TakeSpatulaOffShelfTask100.0 / 100.080.0 / 80.0
YogurtInBowlTask100.0 / 100.0100.0 / 100.0
Table A7. Tool access changes pooled success only modestly.

When enabled, every episode executed tools; on average, 19.7 tool-calls per episode. Reviewed examples include stereo triangulation, gripper-pose calculations, computing inverse kinematics, and enlarged image crops. Despite substantial tool use, it is not clear that Astra benefitted from tool use. We observe that the model often comes to the same conclusion with as without tools.

Full Tool Audit

How Astra uses tools

150 completed episodes

Episodes using each operation at least once

0 → 150 episodes

Remember

Keep and retrieve episode information

Episode notes150 / 150
Memory retrieval5 / 150

Calculate

Compute geometry and run analysis scripts

Geometry and pose calculations150 / 150
Python execution150 / 150
Create or edit helper scripts150 / 150

Inspect

Examine images, observations and workspace files

View images41 / 150
Crop or enlarge images39 / 150
Read observation data in Python77 / 150
Read or locate workspace files150 / 150
Astra uses computation and notes in every guided-tools episode, while image inspection is selective. All 150 completed episodes include Python execution, geometry calculations, and notes; 41 include image viewing and 39 include cropping or enlargement. Bars count episodes containing each operation.
Figure 17. Similar conclusions with and without tools. Five selected matched episodes. Commanded targets and explanations are recorded excerpts. Tool-enabled runs also include coding guidance and workspace support.
AGENTIC POLICY · OPTIONAL TOOLS

Tool-use prompt

The instruction provided to Astra when tools are enabled.

observations/Inspect the scene
scratch/Test an estimate
NOTES.mdRetain progress

Inspect and compute

Use your normal file, image, shell/Python tools to inspect observations,
write and run calculations, crop images, calculate poses, and maintain notes
when useful. You are an autonomous robot agent, not a JSON-only reviewer.
The robot-action tool is additional to your analysis tools, not your entire toolset.

Keep a working memory

Read workspace.json for the Python interpreter and exact observation/image paths.
Keep scripts, crops and calculations in scratch/ and confirmed progress, geometry
estimates, tracking errors and corrections in NOTES.md. Distinguish estimates from
measured state. When alignment or orientation is uncertain, consider inspecting a
crop or calculating a transform rather than relying solely on a visual guess.
Tool use is not mandatory for every action.

Propose one action

Only use supplied observations and same-episode action evidence. Do not inspect
simulator internals, hidden object states, or open another simulator connection.
Do not edit recorded observations, action logs, or executing source files.
Analysis tools do not move the robot. After analysis, finish the turn with exactly
one robot-action proposal; the host executes it and supplies the next observation.
Examples of Tool UseShow examplesHide examples

Inspect · enlarged observation

Original left shoulder observationOriginal observation
Enlarged mug image viewed by AstraEnlarged view shown to Astra
>_ Image inspectionBefore decision 58
im.crop((220,180,295,262)).resize((450,492)).save('scratch/mug_close.jpg')
Viewed artifact
scratch/mug_close.jpg — created, then viewed
Tool details

Creates a close-up of the mug from the left shoulder image. The trace records a subsequent image-view call before decision 58.

Action explanation · decision 58
Enlarged shoulder view shows the white end immediately above the mug opening; lower another 3 cm while keeping the grasp and upright orientation.

Calculate · local motion-to-image map

During a block-stacking episode, Astra tracked the blue block across 11 observations and matched its image locations to the gripper’s positions. It then ran Python to estimate how gripper movement shifts the block in the image, learning the relationship from its own recent movements.

Track the blue block in image space

522 → 584 px11 observations

Fit EEF displacement → pixel displacement

Image xImage yEEF X−397.45−233.14EEF Y−221.66+173.84EEF Z+56.30−303.99
Calculation and source
coefficients = np.linalg.lstsq(
    np.column_stack([positions, np.ones(len(positions))]),
    pixels, rcond=None
)[0]
Figure 18. Examples of tool use. Left: Astra enlarges a shoulder-camera observation to inspect the marker above the mug before lowering it. Right: Astra fits a local map from end-effector displacement to image displacement using 11 blue-block observations.

3.2.2. Does explicit planning help Astra reason better?

In the Agentic Policy, we provide a planning mode that encourages the model to state how it intends to complete the task before acting, then track and revise its high-level plan as the episode progresses. We study the effect of this instruction with two additional variations:

  1. Planning Instruction Removed: Omit the request to decompose the task and track a plan, while retaining observations, feedback, and conversation history.
  2. Planning Discouraged: Additionally, instruct the model not to write multi-step plans, subgoals, current objectives, future-action sequences, or checklists; restrict notes to measurements and observed outcomes.

Planning mode

Explicit planning

Before acting, break the task into a short sequence of subgoals. Track which subgoal is current and revise the plan using observed outcomes.

No explicit planning

—

Discourage Planning

Choose the next movement directly from the current observations, task goal and feedback. Do not write multi-step plans, subgoals, current objectives, future-action sequences or checklists. Notes may contain only measurements, observed events and outcomes of executed actions. Explain only the immediate action. Conversation history remains available.

BlocksInBinTask
Figure 19. Progress tracking persists without an explicit planning instruction. Rollout excerpts show Astra identifying completed subgoals and selecting the next object even when no written plan is requested or planning is discouraged. The three conditions vary planning guidance while retaining conversation history.
Explicit planning · Agentic Policy SUCCESS RATE
  1. Explicit PlanningDefault86.0%
  2. No explicit planning90.0%
  3. Discourage Planning81.0%
Figure 20. Explicit Planning effect on performance. Explicit planning instructions do not significantly improve observed success in this comparison.

Explicit planning — full results

30 tasks · 150 / 150 / 147 episodes per condition · SR (%)

Task / probeReferenceNo explicit planningDiscourage Planning
OVERALL86.090.081.0
RubiksCubeTask100.0100.0100.0
SauceBottlesCrateTask100.0100.080.0
CannedFoodInBinTask100.0100.0100.0
YogurtInBowlTask100.0100.0100.0
BlocksInBinTask100.0100.0100.0
ClutterPumpkinTask100.0100.080.0
BlackItemsInBinTask80.0100.0100.0
CondimentsInBinTask100.0100.0100.0
PickGlassesTask100.0100.0100.0
PickUpBluePitcherTask60.0100.040.0
BagelsOnPlateTask60.080.040.0
MarkerInMugTask100.0100.080.0
SpoonInMugTask80.0100.0100.0
SpoonsInPotTask80.0100.080.0
ReorientRedMugTask80.0100.080.0
ReorientJugTask100.0100.080.0
ReorientAllMugsTask20.00.00.0
ButterAboveRaisinTask100.0100.0100.0
Stack3RubiksCubeTask100.0100.0100.0
BlockStackingSpecifiedOrderTask100.0100.0100.0
OneBottleOnShelfTask100.0100.0100.0
TakeSpatulaOffShelfTask100.0100.0100.0
PutBowlOnShelfTopTask60.040.040.0
PutTwoMugsOnShelfTask80.0100.060.0
RubiksCubeBehindBowlTask100.0100.0100.0
FoodPackingByColorTask0.00.00.0
BananasInBinThreeTotalTask100.0100.0100.0
PhoneOrRemoteInBinTask100.0100.0100.0
BananaThenRubiksCubeTask100.080.080.0
CleanUpToysTask80.0100.0100.0
Table A8. Removing the planning instruction yields the highest observed pooled success.

We find that the explicit reasoning trace reveals that removing the instruction nearly eliminates standalone planning commentary, but progress tracking and next-subgoal selection remain in action explanations. For example, without explicit planning instructions, the model organically outputs “One mug is confirmed on the shelf; withdraw upward before approaching the second mug.” These observations suggest that even without being explicitly instructed to generate a standalone written plan, the model still tracks progress and identifies what to do next.

3.2.3. Does providing motion error help?

We additionally provide motion-level feedback to the model to observe whether explicit error quantification helps. After each action segment, the harness reports position and orientation tracking errors 7, together with commanded and measured gripper state. Astra receives this feedback alongside fresh images and robot state before choosing its next target.

Not providing motion feedback produces little change in performance. With feedback provided, a text audit finds explicit tracking references in 51% of episodes, but only 1.14% of next-action explanations. Astra also identifies and responds to motion tracking errors without the explicit feedback, suggesting that retained action history and fresh robot-state observations may provide much of the same information.

Motion feedback · Agentic PolicySR SCORE
  1. Motion feedback providedDefault85.9 / 90.8
  2. Motion feedback removed85.2 / 89.8
Figure 21. Explicit motion-error feedback has little observed effect on success. Removing the feedback changes success from 85.9% to 85.2% and completion score from 90.8% to 89.8%. Both conditions retain images and robot-state observations.

Motion feedback — full results

30 tasks · 149 matched pairs · SR (%) / SCORE

TaskMotion feedback providedMotion feedback removed
OVERALL85.9 / 90.885.2 / 89.8
BagelsOnPlateTask60.0 / 80.040.0 / 70.0
BananaThenRubiksCubeTask100.0 / 100.080.0 / 100.0
BananasInBinThreeTotalTask100.0 / 100.0100.0 / 100.0
BlackItemsInBinTask80.0 / 100.080.0 / 96.0
BlockStackingSpecifiedOrderTask100.0 / 100.0100.0 / 100.0
BlocksInBinTask100.0 / 100.0100.0 / 100.0
ButterAboveRaisinTask100.0 / 100.0100.0 / 100.0
CannedFoodInBinTask100.0 / 100.0100.0 / 100.0
CleanUpToysTask75.0 / 100.0100.0 / 100.0
ClutterPumpkinTask100.0 / 100.0100.0 / 100.0
CondimentsInBinTask100.0 / 100.0100.0 / 100.0
FoodPackingByColorTask0.0 / 0.00.0 / 0.0
MarkerInMugTask100.0 / 100.0100.0 / 100.0
OneBottleOnShelfTask100.0 / 100.0100.0 / 100.0
PhoneOrRemoteInBinTask100.0 / 100.080.0 / 80.0
PickGlassesTask100.0 / 100.0100.0 / 100.0
PickUpBluePitcherTask60.0 / 80.080.0 / 90.0
PutBowlOnShelfTopTask60.0 / 60.060.0 / 60.0
PutTwoMugsOnShelfTask80.0 / 90.080.0 / 90.0
ReorientAllMugsTask20.0 / 56.720.0 / 70.0
ReorientJugTask100.0 / 100.0100.0 / 100.0
ReorientRedMugTask80.0 / 80.060.0 / 60.0
RubiksCubeBehindBowlTask100.0 / 100.0100.0 / 100.0
RubiksCubeTask100.0 / 100.0100.0 / 100.0
SauceBottlesCrateTask100.0 / 100.0100.0 / 100.0
SpoonInMugTask80.0 / 80.080.0 / 80.0
SpoonsInPotTask80.0 / 100.0100.0 / 100.0
Stack3RubiksCubeTask100.0 / 100.0100.0 / 100.0
TakeSpatulaOffShelfTask100.0 / 100.0100.0 / 100.0
YogurtInBowlTask100.0 / 100.0100.0 / 100.0
Table A9. Matched results show little aggregate change when motion-error feedback is removed.

3.3. When does Astra intervene?

With Orchestrated Policy, we examine rollout traces to identify when Astra allows Cosmos3-Nano-Policy to proceed with its execution, and when Astra wants to intervene. We group consecutive intervention decisions into blocks and use VLM-assisted classification to identify the primary issue in each block, including anticipated mistakes prevented before execution.

We observe that Astra intervenes to correct or prevent mistakes, accounting for 14.5% of all simulation steps. Among these intervention blocks, grasping problems and object-selection or planning mistakes account for 64.4% and 20.2%, respectively. The remaining interventions primarily address placement, manipulation, and transport failures.

When Astra takes over from Cosmos Action · Orchestrated Policy Policy% of interventions
  1. Grasping failure64.4%
  2. Wrong target or plan20.2%
  3. Placement or manipulation failure11.4%
  4. Transport failure3.7%
  5. Unclear0.3%
Figure 22. Reasons Astra takes over from Cosmos Action. We identify primary reasons in 4,254 consecutive intervention blocks with interventions, classified with Qwen3.5-35B-A3B. 10 tasks had no interventions.

3.4. Final configurations

Following the investigations, we establish the following configurations as default settings for the full RoboLab-120 evaluation.

Direct Policy

Action generator
Astra
Actions
Absolute end-effector poses
Horizon
Dynamic chunks of 3–15 actions on 90 tasks; historical 1–15 chunks on 30 tasks
History
Three observations at t−14, t−7, t; no persistent conversation
Geometry
Gripper and camera geometry supplied
Execution
Observation-to-action API calls

Agentic Policy

Action generator
Astra
Actions
Absolute end-effector poses
Horizon
One target held for 1–5 control steps
History
Full text and visual interaction history
Geometry
Gripper and camera geometry supplied
Scaffolding
Planning instruction and motion feedback retained; optional tools disabled

Orchestrated Policy

Action generator
Cosmos3-Nano-Policy / Astra
Actions
Policy proposals with Astra review and intervention
Review horizon
15 control steps
History
Bounded memory across decisions
Intervention
Accept or edit proposals, or take direct end-effector control
Scaffolding
Optional native tools disabled; policy-control tools available

Shared settings: GPT-6 Astra with `medium` reasoning effort, `default` language instructions, three camera views at 384 × 216, and 15 Hz control.

Table 2. Default policy configurations for Direct, Agentic, and Orchestrated Policy.

4. Runtime Performance

4.1. Timing

Astra is capable, but it takes its time. Across successful episodes on RoboLab-120, Direct Policy EEF inference averages 18.56 s/call. Overall, inference accounts for 97.0% of estimated total walltime, measured as task rollout time plus inference time. For Orchestrated Policy, Astra decisions average 11.50 s and Cosmos Action inference averages 2.74 s per request, together accounting for 94.9% of estimated episode duration. In practice, most of an episode is spent waiting for the next action. For comparison, Black Forest Labs reports median latencies of 46.96 ms for π0.5 and 713.76 ms for direct Cosmos 3 Nano on H200 in BF16 14.

We demonstrate what this would look like for a yogurt task in the video below. With inference time added, this task took an estimated 3:57 minutes to complete, with about 5.2s of action execution time. While general-purpose models have capability, there is a significant gap between capability and real-time control and deployment.

Configuration Latency / call Inference vs Execution TimingAstra InferenceVLA/WAM inferenceAction Execution
Direct Policy EEF18.56 s97.0 %
Direct Policy jointpos20.19 s97.4 %
Direct Policy bspline21.68 s97.0 %
Agentic Policy13.37 s97.8 %
Orchestrated Policy11.50 / 2.74 s94.9 %
FLUX 3 Action (WAM)397.74 ms16.1 %
Cosmos3-Nano-Policy (WAM)713.76 ms25.6 %
π0.5 (VLA)46.96 ms4.6 %
Table 3. Inference dominates estimated episode duration for all three Astra policy forms. Inference accounts for 94.9–97.8% of estimated duration across the evaluated Astra configurations. Direct Policy EEF averages 18.56 seconds per call. Astra Inference includes network delay. For comparison, we show end-to-end latency for some RFMs: π0.5, Cosmos3-Nano-Policy, and FLUX 3 Action latencies are reported medians per predicted action chunk on H200 in BF16 (Black Forest Labs, Table 4). FLUX 3 Action uses the base configuration with 4 steps and guidance.

Inference Timing on RoboLab-120 — full results

120 tasks per evaluated policy configuration · successful episodes only

Task Calls / eps Latency / call Inference / eps Task completion duration / eps Estimated real-world duration / eps Inference vs Execution TimingAstra InferenceVLA/WAM inferenceAction Execution
AnimalsInBin48.315.83 s12.76 min30.51 s13.26 min96.2 %
AppleAndYogurtInBowl19.616.22 s5.30 min11.04 s5.48 min96.6 %
BBQSauceInBin37.516.55 s10.34 min26.05 s10.78 min96.0 %
BagelsOnPlate——————
BananaInBowl13.217.73 s3.90 min8.09 s4.04 min96.7 %
BananaOnPlate11.218.31 s3.42 min6.69 s3.53 min96.8 %
BananaThenRubiksCube29.818.22 s9.03 min15.65 s9.29 min97.2 %
BananasInBinOneMore15.217.25 s4.37 min8.51 s4.51 min96.9 %
BananasInBinThreeTotal15.417.67 s4.54 min8.48 s4.68 min97.0 %
BananasInCrate14.218.68 s4.42 min8.55 s4.56 min96.9 %
BananasOutOfBin45.814.70 s11.22 min28.79 s11.70 min95.9 %
BigPumpkinInBin19.215.91 s5.11 min11.50 s5.30 min96.4 %
BlackItemsInBin110.316.55 s30.43 min65.78 s31.53 min96.5 %
BlockStackingOrderAgnostic42.820.01 s14.27 min23.95 s14.67 min97.3 %
BlockStackingSpecifiedOrder34.216.15 s9.21 min18.99 s9.52 min96.7 %
BlocksInBin46.815.47 s12.07 min33.00 s12.62 min95.6 %
BowlInBin11.417.14 s3.26 min6.27 s3.36 min96.9 %
BowlStackingLeftOnRight14.718.02 s4.40 min7.27 s4.53 min97.3 %
BowlStackingRightOnLeft13.619.14 s4.34 min7.09 s4.46 min97.3 %
ButterAboveRaisin12.617.16 s3.60 min5.43 s3.69 min97.6 %
CannedFoodInBin28.815.18 s7.29 min15.31 s7.54 min96.6 %
ClampInRightBin82.015.86 s21.68 min47.80 s22.48 min96.5 %
CleanUpToys176.514.13 s41.58 min111.98 s43.44 min95.7 %
ClearOrganicObjects——————
ClutterPlastic80.230.62 s40.93 min48.12 s41.73 min98.1 %
ClutterPumpkin86.813.75 s19.88 min50.80 s20.73 min95.9 %
CoffeePotInBin——————
CondimentsInBin——————
CookingClearPlate44.017.63 s12.93 min24.40 s13.34 min97.0 %
CookingPickPastaTool——————
CubesAndBlocksInBin95.618.21 s29.01 min63.17 s30.07 min96.5 %
DishesInBin66.019.29 s21.22 min41.27 s21.91 min96.9 %
ElectronicsInBin58.818.27 s17.90 min39.15 s18.55 min96.5 %
FoodPacking1Boxes27.721.95 s10.12 min17.31 s10.41 min97.2 %
FoodPacking1Cans11.214.86 s2.79 min7.12 s2.90 min95.9 %
FoodPacking2Boxes——————
FoodPacking2Cans137.214.85 s33.98 min84.55 s35.39 min96.0 %
FoodPacking3Boxes——————
FoodPacking3Cans89.014.69 s21.78 min57.47 s22.74 min95.8 %
FoodPackingByColor——————
FruitsGreenLimesOnPlate19.817.82 s5.88 min13.25 s6.10 min96.4 %
FruitsMoving49.519.34 s15.96 min22.80 s16.34 min97.7 %
FruitsMovingOrangeOrLime28.017.64 s8.23 min14.58 s8.47 min97.1 %
FruitsOnPlate——————
FruitsOnPlate3108.543.23 s78.17 min51.37 s79.02 min98.9 %
FruitsOnion16.616.71 s4.62 min10.65 s4.80 min96.3 %
FruitsOnionToPlate——————
FruitsOrangesOnPlate9.016.98 s2.55 min5.69 s2.64 min96.4 %
GrabABagel26.015.18 s6.58 min13.63 s6.80 min96.7 %
GrabAFruit8.817.65 s2.59 min5.21 s2.68 min96.8 %
GreenSpoonsInPot125.027.46 s57.22 min63.00 s58.27 min98.2 %
HammersInLeftBin93.525.47 s39.69 min53.72 s40.59 min97.8 %
JugsOnShelf——————
KeyboardOutOfBin——————
LargerObjectRaisinBoxInBin32.515.26 s8.27 min19.23 s8.59 min96.3 %
MarkerInMug23.223.86 s9.24 min11.65 s9.44 min97.9 %
MouseOnKeyboard33.817.20 s9.69 min21.12 s10.04 min96.5 %
MoveBananaToBagelPlate56.515.87 s14.94 min32.60 s15.49 min96.5 %
MustardAboveRaisin16.818.18 s5.09 min8.95 s5.24 min97.2 %
MustardInLeftBin12.816.22 s3.45 min7.60 s3.57 min96.5 %
MustardInRightBin18.215.53 s4.72 min11.17 s4.91 min96.2 %
NonHammerToolsInRightBin——————
OneBottleInSquarePail12.217.87 s3.63 min6.77 s3.75 min97.0 %
OneBottleOnShelf59.223.68 s23.38 min29.13 s23.87 min98.0 %
PhoneOrRemoteInBin30.416.99 s8.61 min13.52 s8.84 min97.4 %
PickDrill——————
PickGlasses14.012.57 s2.93 min6.33 s3.04 min96.5 %
PickOrangeObject17.215.00 s4.30 min8.81 s4.45 min96.7 %
PickUpBluePitcher19.017.31 s5.48 min7.49 s5.61 min97.8 %
PickUpGreenObject17.018.31 s5.19 min10.33 s5.36 min96.8 %
PinkSpoonInPot14.019.04 s4.44 min8.53 s4.59 min96.9 %
PlasticBottlesInSquarePail39.318.47 s12.11 min24.69 s12.52 min96.7 %
PutBowlOnShelfTop14.019.12 s4.46 min8.11 s4.60 min97.1 %
PutMugsOnShelf172.021.62 s61.98 min93.33 s63.54 min97.6 %
PutTwoMugsOnShelf106.014.30 s25.27 min57.87 s26.23 min96.3 %
RecycleCarton94.514.27 s22.47 min58.70 s23.45 min95.8 %
RecycleCartonsOnBox——————
RecycleCartonsVerticalCrate——————
RedDishesInBin44.015.40 s11.29 min26.32 s11.73 min96.3 %
RedItemsInBin52.616.35 s14.34 min32.23 s14.87 min96.4 %
ReorientAllMugs——————
ReorientJug14.523.33 s5.64 min6.55 s5.75 min98.1 %
ReorientRedMug60.316.58 s16.68 min24.89 s17.09 min97.6 %
ReorientWhiteMugs48.023.90 s19.12 min24.80 s19.53 min97.9 %
RubiksCube10.019.15 s3.19 min5.29 s3.28 min97.3 %
RubiksCubeAndBanana20.518.63 s6.36 min12.07 s6.57 min96.9 %
RubiksCubeBehindBowl14.217.68 s4.18 min7.41 s4.31 min97.1 %
RubiksCubeInFrontOfBowl12.020.15 s4.03 min6.45 s4.14 min97.4 %
RubiksCubeLeftOfBowl14.218.67 s4.42 min8.12 s4.55 min97.0 %
RubiksCubeOrBanana13.419.29 s4.31 min7.44 s4.43 min97.2 %
RubiksCubeRightOfBowl11.016.60 s3.04 min6.97 s3.16 min96.3 %
RubiksCubeThenBanana29.018.33 s8.86 min16.68 s9.14 min97.0 %
RubiksCubesInBin42.616.89 s11.99 min25.45 s12.42 min96.6 %
SauceBottlesCrate12.817.98 s3.84 min6.40 s3.94 min97.3 %
SmallPumpkinInBin12.817.95 s3.83 min8.36 s3.97 min96.5 %
SmallerObjectButterInBin11.816.33 s3.21 min6.77 s3.32 min96.6 %
SmartphoneInBin13.418.94 s4.23 min8.35 s4.37 min96.8 %
SpoonInMug17.217.58 s5.06 min7.85 s5.19 min97.5 %
SpoonsInPot202.018.97 s63.87 min113.62 s65.76 min97.1 %
Stack3RubiksCube30.417.60 s8.92 min14.68 s9.16 min97.3 %
StackWhiteMugs28.026.05 s12.16 min13.42 s12.38 min98.2 %
StackYellowOnRed14.018.16 s4.24 min7.75 s4.37 min97.0 %
TakeMeasuringSpoonOut14.017.51 s4.09 min7.43 s4.21 min97.1 %
TakeMugsOffOfShelf——————
TakeSpatulaOffShelf68.417.83 s20.32 min28.95 s20.81 min97.7 %
ThrowAwayApple12.621.21 s4.46 min8.49 s4.60 min96.9 %
ThrowAwaySnacks26.817.45 s7.79 min18.75 s8.10 min96.1 %
ToolOrganization——————
ToolOrganizationBoth57.516.90 s16.20 min32.33 s16.74 min96.8 %
ToolsPickingAllHammers——————
ToolsPickingDrill——————
ToolsPickingHammer107.014.54 s25.94 min51.73 s26.80 min96.8 %
ToyInBin55.817.33 s16.10 min31.50 s16.62 min96.8 %
UnstackRubiksCube28.215.53 s7.31 min15.42 s7.57 min96.6 %
UtensilsInMug118.012.55 s24.68 min48.67 s25.49 min96.8 %
WhiteMugInCenterOfTable32.016.78 s8.95 min15.00 s9.20 min97.3 %
WhiteMugsInBin49.519.13 s15.78 min28.98 s16.27 min97.0 %
WoodSpatulaToBowl37.221.23 s13.18 min19.35 s13.51 min97.6 %
YellowAndWhiteObjectsInBin27.018.67 s8.40 min18.43 s8.71 min96.5 %
YogurtInBowl10.821.86 s3.93 min5.00 s4.02 min97.9 %
Table A10. Inference accounts for most estimated duration across Astra configurations.

TASK ROLLOUT INCLUDING INFERENCE TIME

Task: YogurtInBowl
Instruction: Put the small red yogurt in the red bowl
Figure 23. Task rollout including inference time. A successful yogurt-in-bowl episode at 5× speed, with recorded inference delays inserted between action chunks. The timer includes 5.2 seconds of action and 232.6 seconds of inference across 12 calls, assuming sequential inference and real-time action execution.

4.2. Token Cost

Token cost vs. success
Figure 24. Token cost vs. success on RoboLab-120: Agentic Policy’s higher success comes with a much larger reported token cost. All values are reported for successful episodes. Token-cost estimates are approximate and based on pricing published on October 1, 2026. Evaluations use default settings.

Token Usage for RoboLab-120 — full results

120 tasks per configuration · successful episodes only · tokens and estimated USD

TaskUncached input tokens (USD)Cached input tokens (USD)Output tokens (USD)Total cost (USD)
OVERALL MEAN70,405 ($0.70)65,467 ($0.07)23,877 ($1.19)$1.96
AnimalsInBin93,666 ($0.94)90,844 ($0.09)31,318 ($1.57)$2.59
AppleAndYogurtInBowl37,392 ($0.37)34,888 ($0.03)12,768 ($0.64)$1.05
BBQSauceInBin72,732 ($0.73)66,750 ($0.07)25,712 ($1.29)$2.08
BagelsOnPlate————
BananaInBowl24,309 ($0.24)23,496 ($0.02)9,497 ($0.47)$0.74
BananaOnPlate20,237 ($0.20)19,936 ($0.02)7,768 ($0.39)$0.61
BananaThenRubiksCube56,790 ($0.57)54,323 ($0.05)19,750 ($0.99)$1.61
BananasInBinOneMore28,358 ($0.28)27,056 ($0.03)10,271 ($0.51)$0.82
BananasInBinThreeTotal28,927 ($0.29)27,412 ($0.03)10,268 ($0.51)$0.83
BananasInCrate26,240 ($0.26)25,276 ($0.03)10,374 ($0.52)$0.81
BananasOutOfBin88,356 ($0.88)81,524 ($0.08)26,721 ($1.34)$2.30
BigPumpkinInBin36,662 ($0.37)34,265 ($0.03)11,677 ($0.58)$0.98
BlackItemsInBin215,359 ($2.15)196,393 ($0.20)69,371 ($3.47)$5.82
BlockStackingOrderAgnostic82,722 ($0.83)76,184 ($0.08)30,361 ($1.52)$2.42
BlockStackingSpecifiedOrder65,170 ($0.65)61,993 ($0.06)22,160 ($1.11)$1.82
BlocksInBin90,071 ($0.90)83,304 ($0.08)30,233 ($1.51)$2.50
BowlInBin20,603 ($0.21)20,292 ($0.02)7,624 ($0.38)$0.61
BowlStackingLeftOnRight27,242 ($0.27)26,107 ($0.03)9,940 ($0.50)$0.80
BowlStackingRightOnLeft25,304 ($0.25)24,208 ($0.02)9,491 ($0.47)$0.75
ButterAboveRaisin23,208 ($0.23)22,428 ($0.02)7,716 ($0.39)$0.64
CannedFoodInBin54,393 ($0.54)51,633 ($0.05)16,468 ($0.82)$1.42
ClampInRightBin159,336 ($1.59)145,960 ($0.15)48,897 ($2.44)$4.18
CleanUpToys348,619 ($3.49)313,725 ($0.31)97,511 ($4.88)$8.68
ClearOrganicObjects————
ClutterPlastic156,187 ($1.56)142,756 ($0.14)55,744 ($2.79)$4.49
ClutterPumpkin168,594 ($1.69)154,876 ($0.15)50,214 ($2.51)$4.35
CoffeePotInBin————
CondimentsInBin————
CookingClearPlate85,333 ($0.85)78,320 ($0.08)25,899 ($1.29)$2.23
CookingPickPastaTool————
CubesAndBlocksInBin186,602 ($1.87)170,893 ($0.17)64,175 ($3.21)$5.25
DishesInBin128,150 ($1.28)117,480 ($0.12)43,663 ($2.18)$3.58
ElectronicsInBin114,147 ($1.14)105,385 ($0.11)37,686 ($1.88)$3.13
FoodPacking1Boxes52,975 ($0.53)49,247 ($0.05)22,350 ($1.12)$1.70
FoodPacking1Cans20,303 ($0.20)20,025 ($0.02)6,362 ($0.32)$0.54
FoodPacking2Boxes————
FoodPacking2Cans269,116 ($2.69)244,305 ($0.24)74,418 ($3.72)$6.66
FoodPacking3Boxes————
FoodPacking3Cans173,074 ($1.73)158,420 ($0.16)52,970 ($2.65)$4.54
FoodPackingByColor————
FruitsGreenLimesOnPlate37,293 ($0.37)35,244 ($0.04)12,922 ($0.65)$1.05
FruitsMoving95,761 ($0.96)91,712 ($0.09)34,214 ($1.71)$2.76
FruitsMovingOrangeOrLime53,786 ($0.54)49,840 ($0.05)17,984 ($0.90)$1.49
FruitsOnPlate————
FruitsOnPlate3211,690 ($2.12)198,552 ($0.20)78,961 ($3.95)$6.26
FruitsOnion31,313 ($0.31)29,548 ($0.03)10,496 ($0.52)$0.87
FruitsOnionToPlate————
FruitsOrangesOnPlate15,920 ($0.16)16,020 ($0.02)5,868 ($0.29)$0.47
GrabABagel49,388 ($0.49)46,280 ($0.05)14,614 ($0.73)$1.27
GrabAFruit15,655 ($0.16)15,664 ($0.02)5,676 ($0.28)$0.46
GreenSpoonsInPot243,617 ($2.44)225,514 ($0.23)81,671 ($4.08)$6.75
HammersInLeftBin182,326 ($1.82)166,430 ($0.17)62,506 ($3.13)$5.12
JugsOnShelf————
KeyboardOutOfBin————
LargerObjectRaisinBoxInBin62,811 ($0.63)57,850 ($0.06)17,344 ($0.87)$1.55
MarkerInMug44,281 ($0.44)42,290 ($0.04)21,014 ($1.05)$1.54
MouseOnKeyboard65,081 ($0.65)60,164 ($0.06)21,752 ($1.09)$1.80
MoveBananaToBagelPlate109,362 ($1.09)100,570 ($0.10)35,532 ($1.78)$2.97
MustardAboveRaisin31,841 ($0.32)29,904 ($0.03)10,799 ($0.54)$0.89
MustardInLeftBin23,452 ($0.23)22,695 ($0.02)7,601 ($0.38)$0.64
MustardInRightBin34,286 ($0.34)32,485 ($0.03)10,104 ($0.51)$0.88
NonHammerToolsInRightBin————
OneBottleInSquarePail22,133 ($0.22)21,716 ($0.02)8,230 ($0.41)$0.65
OneBottleOnShelf114,630 ($1.15)105,465 ($0.11)50,687 ($2.53)$3.79
PhoneOrRemoteInBin58,100 ($0.58)54,834 ($0.05)18,599 ($0.93)$1.57
PickDrill————
PickGlasses26,092 ($0.26)24,920 ($0.02)6,976 ($0.35)$0.63
PickOrangeObject32,377 ($0.32)30,616 ($0.03)9,404 ($0.47)$0.82
PickUpBluePitcher35,200 ($0.35)33,820 ($0.03)11,829 ($0.59)$0.98
PickUpGreenObject31,499 ($0.31)30,260 ($0.03)11,038 ($0.55)$0.90
PinkSpoonInPot26,317 ($0.26)24,920 ($0.02)9,876 ($0.49)$0.78
PlasticBottlesInSquarePail75,841 ($0.76)71,219 ($0.07)27,068 ($1.35)$2.18
PutBowlOnShelfTop26,450 ($0.26)24,920 ($0.02)10,268 ($0.51)$0.80
PutMugsOnShelf336,454 ($3.36)315,216 ($0.32)135,886 ($6.79)$10.47
PutTwoMugsOnShelf207,108 ($2.07)188,680 ($0.19)63,806 ($3.19)$5.45
RecycleCarton184,396 ($1.84)170,012 ($0.17)56,653 ($2.83)$4.85
RecycleCartonsOnBox————
RecycleCartonsVerticalCrate————
RedDishesInBin84,811 ($0.85)78,320 ($0.08)25,853 ($1.29)$2.22
RedItemsInBin101,801 ($1.02)93,628 ($0.09)32,378 ($1.62)$2.73
ReorientAllMugs————
ReorientJug27,151 ($0.27)26,711 ($0.03)12,055 ($0.60)$0.90
ReorientRedMug117,004 ($1.17)109,804 ($0.11)40,908 ($2.05)$3.33
ReorientWhiteMugs93,797 ($0.94)85,440 ($0.09)41,213 ($2.06)$3.08
RubiksCube18,230 ($0.18)17,444 ($0.02)7,075 ($0.35)$0.55
RubiksCubeAndBanana38,692 ($0.39)36,490 ($0.04)15,044 ($0.75)$1.18
RubiksCubeBehindBowl26,087 ($0.26)25,276 ($0.03)10,326 ($0.52)$0.80
RubiksCubeInFrontOfBowl21,815 ($0.22)21,360 ($0.02)8,685 ($0.43)$0.67
RubiksCubeLeftOfBowl26,192 ($0.26)25,276 ($0.03)9,588 ($0.48)$0.77
RubiksCubeOrBanana24,551 ($0.25)23,852 ($0.02)9,615 ($0.48)$0.75
RubiksCubeRightOfBowl19,941 ($0.20)19,580 ($0.02)7,143 ($0.36)$0.58
RubiksCubeThenBanana55,569 ($0.56)51,264 ($0.05)20,120 ($1.01)$1.61
RubiksCubesInBin82,042 ($0.82)75,828 ($0.08)27,519 ($1.38)$2.27
SauceBottlesCrate23,382 ($0.23)22,784 ($0.02)8,368 ($0.42)$0.68
SmallPumpkinInBin23,865 ($0.24)23,507 ($0.02)8,654 ($0.43)$0.69
SmallerObjectButterInBin21,411 ($0.21)21,004 ($0.02)7,254 ($0.36)$0.60
SmartphoneInBin24,819 ($0.25)23,852 ($0.02)9,798 ($0.49)$0.76
SpoonInMug32,670 ($0.33)30,705 ($0.03)11,375 ($0.57)$0.93
SpoonsInPot397,606 ($3.98)366,243 ($0.37)141,363 ($7.07)$11.41
Stack3RubiksCube58,224 ($0.58)54,112 ($0.05)19,624 ($0.98)$1.62
StackWhiteMugs53,706 ($0.54)49,840 ($0.05)25,524 ($1.28)$1.86
StackYellowOnRed26,325 ($0.26)24,920 ($0.02)9,504 ($0.48)$0.76
TakeMeasuringSpoonOut26,102 ($0.26)24,920 ($0.02)8,358 ($0.42)$0.70
TakeMugsOffOfShelf————
TakeSpatulaOffShelf133,017 ($1.33)124,536 ($0.12)44,464 ($2.22)$3.68
ThrowAwayApple23,522 ($0.24)22,428 ($0.02)9,913 ($0.50)$0.75
ThrowAwaySnacks51,550 ($0.52)47,704 ($0.05)19,574 ($0.98)$1.54
ToolOrganization————
ToolOrganizationBoth111,826 ($1.12)102,350 ($0.10)36,183 ($1.81)$3.03
ToolsPickingAllHammers————
ToolsPickingDrill————
ToolsPickingHammer208,434 ($2.08)190,460 ($0.19)57,079 ($2.85)$5.13
ToyInBin107,514 ($1.08)99,235 ($0.10)34,003 ($1.70)$2.87
UnstackRubiksCube53,969 ($0.54)50,285 ($0.05)16,282 ($0.81)$1.40
UtensilsInMug229,112 ($2.29)210,040 ($0.21)56,320 ($2.82)$5.32
WhiteMugInCenterOfTable61,149 ($0.61)56,960 ($0.06)20,029 ($1.00)$1.67
WhiteMugsInBin95,604 ($0.96)89,009 ($0.09)34,598 ($1.73)$2.77
WoodSpatulaToBowl71,385 ($0.71)66,305 ($0.07)27,437 ($1.37)$2.15
YellowAndWhiteObjectsInBin51,913 ($0.52)48,060 ($0.05)19,061 ($0.95)$1.52
YogurtInBowl19,617 ($0.20)19,239 ($0.02)7,051 ($0.35)$0.57
Table A11. Token usage and API cost on RoboLab-120. Token-cost estimates are approximate and based on pricing published on October 1, 2026. Evaluations use default settings with absolute end-effector poses.

We additionally provide token usage for using a general-purpose model as a native robot policy. Using token cost estimates at publishing time 15, successful episodes using absolute end-effector pose average 160k tokens ($1.96) for Direct Policy, 11.0M tokens ($17.72) for Orchestrated Policy and 30.9M tokens ($36.40) for Agentic Policy per episode. All costs presented in USD. Output tokens, including reported reasoning tokens, account for the largest share of each estimate.

ModelUncached input tokens (USD)Cached input tokens (USD)Output tokens (USD)Total cost (USD)
GPT-6 Astra81,426 ($0.81)75,635 ($0.08)27,359 ($1.37)$2.26
GPT-6 Sol92,423 ($0.18)92,942 ($0.02)56,537 ($0.57)$0.77
GPT-6 Luna38,873 ($0.00)39,200 ($0.00)43,380 ($0.02)$0.03
Table 4. Lower-cost models reduce token expenditure but also achieve lower success. Estimated cost per eligible successful episode is $2.26 for Astra, $0.77 for Sol, and $0.03 for Luna, alongside success rates of 72.7%, 33.3%, and 2.0% in the model ablation. Each cost average uses that model’s own successful subset and the October 1, 2026 pricing snapshot.

Token Usage for Model Ablation — full results

30 tasks per configuration · successful episodes only · tokens and estimated USD

TaskUncached input tokens (USD)Cached input tokens (USD)Output tokens (USD)Total cost (USD)
OVERALL MEAN81,426 ($0.81)75,635 ($0.08)27,359 ($1.37)$2.26
BlocksInBin90,071 ($0.90)83,304 ($0.08)30,233 ($1.51)$2.50
ClutterPumpkin168,594 ($1.69)154,876 ($0.15)50,214 ($2.51)$4.35
ButterAboveRaisin23,208 ($0.23)22,428 ($0.02)7,716 ($0.39)$0.64
BlockStackingSpecifiedOrder65,170 ($0.65)61,993 ($0.06)22,160 ($1.11)$1.82
ReorientRedMug117,004 ($1.17)109,804 ($0.11)40,908 ($2.05)$3.33
SauceBottlesCrate23,382 ($0.23)22,784 ($0.02)8,368 ($0.42)$0.68
CannedFoodInBin54,393 ($0.54)51,633 ($0.05)16,468 ($0.82)$1.42
YogurtInBowl19,617 ($0.20)19,239 ($0.02)7,051 ($0.35)$0.57
RubiksCube18,230 ($0.18)17,444 ($0.02)7,075 ($0.35)$0.55
BagelsOnPlate————
BananaThenRubiksCube56,790 ($0.57)54,323 ($0.05)19,750 ($0.99)$1.61
BananasInBinThreeTotal28,927 ($0.29)27,412 ($0.03)10,268 ($0.51)$0.83
BlackItemsInBin215,359 ($2.15)196,393 ($0.20)69,371 ($3.47)$5.82
CleanUpToys348,619 ($3.49)313,725 ($0.31)97,511 ($4.88)$8.68
CondimentsInBin————
FoodPackingByColor————
MarkerInMug44,281 ($0.44)42,290 ($0.04)21,014 ($1.05)$1.54
OneBottleOnShelf114,630 ($1.15)105,465 ($0.11)50,687 ($2.53)$3.79
PhoneOrRemoteInBin58,100 ($0.58)54,834 ($0.05)18,599 ($0.93)$1.57
PickGlasses26,092 ($0.26)24,920 ($0.02)6,976 ($0.35)$0.63
PickUpBluePitcher35,200 ($0.35)33,820 ($0.03)11,829 ($0.59)$0.98
PutBowlOnShelfTop26,450 ($0.26)24,920 ($0.02)10,268 ($0.51)$0.80
PutTwoMugsOnShelf207,108 ($2.07)188,680 ($0.19)63,806 ($3.19)$5.45
ReorientAllMugs————
ReorientJug27,151 ($0.27)26,711 ($0.03)12,055 ($0.60)$0.90
RubiksCubeBehindBowl26,087 ($0.26)25,276 ($0.03)10,326 ($0.52)$0.80
SpoonInMug32,670 ($0.33)30,705 ($0.03)11,375 ($0.57)$0.93
SpoonsInPot397,606 ($3.98)366,243 ($0.37)141,363 ($7.07)$11.41
Stack3RubiksCube58,224 ($0.58)54,112 ($0.05)19,624 ($0.98)$1.62
TakeSpatulaOffShelf133,017 ($1.33)124,536 ($0.12)44,464 ($2.22)$3.68
Table A12. Lower model prices reduce estimated cost despite differences in token usage.

5. What the investigations establish

This report shows that Astra can serve as a native robot policy for general-purpose pick-and-place, with its action interface and supporting context specified at inference time. On RoboLab-120, the highest performing policy, Agentic, reaches 74.8%. The results demonstrate strong effects of Astra being natively able to reason about action representation and task semantics. The ablations show that retaining interaction history significantly helps performance in the Agentic setting, without gaining additional benefits from tool-use. In the Orchestrated configuration, delegating action proposals to a WAM did not clearly outperform Astra’s native action generation. How best to combine Astra with specialized VLAs or WAMs remains an open question: which decisions to delegate, when Astra should review or intervene, and whether the resulting gains justify the added latency and cost. Together, these findings establish substantial manipulation capability while making the surrounding interface, context, and execution loop central to its performance.

6. How and when Astra fails

Our investigations demonstrate that while Astra is a capable robot policy for pick-and-place general-purpose manipulation, Astra remains sensitive to spatial alignment and prompt. In the geometry ablation, insufficient guidance can lead to repeated gripper adjustments instead of a successful approach and grasp. Even with geometry added to the prompt, we observe that a recurring limitation is converting attempted manipulation into a completed grasp, transfer, or placement across RoboLab-120. The failure rollouts illustrate how execution can stall: the gripper continues adjusting around an object without securing it, or objects are displaced without reaching their intended destination. Other failures involve incomplete placement or reorientation. These observations suggest that online motion correction does not necessarily produce effective physical progress for challenging grasp tasks.

Agentic assistance improves reliability overall, but several failure modes persist: incorrect target selection, unstable or obstructive grasps, incomplete manipulation sequences, and unsuccessful recovery. We observe that policies place objects in the wrong receptacle, grasp objects in ways that trap the gripper, lose objects during transport, or repeatedly reorient an object without completing its placement and release. Recovery attempts can also repeat ineffective motions or fail to retrieve objects that have fallen off the table. The benefits of assistance vary across tasks. These results suggest that persistent context and policy assistance address some execution challenges, but do not consistently resolve grasp error.

We additionally highlight challenges in deploying Astra as a real-time robot policy: Direct Policy averages 18.56 seconds per inference call, and Agentic Policy costs an estimated 30.9M tokens ($36.40) per successful episode. These timing results illustrate that reliable operation in a dynamic task environment could potentially prove challenging when the task requires real-time adaptation to fast changing scenes

ILLUSTRATIVE FAILURE CASES

Figure 25. Illustrative failure cases.

7. Study Limitations

Statistical Significance. The findings in this report should be interpreted in light of the evaluation budget. Although we evaluate each task with 5 episodes, substantial inference cost and wall-clock time limit the number of repeated trials available to characterize run-to-run variability and variation across policies. We therefore have not established the statistical significance of the reported differences between configurations, particularly the smaller gaps in the ablations. The results provide evidence of capability and suggest which design choices warrant further investigation, but should not be treated as definitive evidence of a parameter's effect.

Task coverage. Our evaluation focuses on general-purpose pick-and-place manipulation in RoboLab-120. It does not cover contact-rich tasks such as insertion or assembly, extremely long-horizon mobile manipulation, or highly dynamic tasks requiring rapid reactions. Simulation is paused during inference, so the evaluation also does not test whether the policies can respond effectively while the environment continues to change. The reported results therefore establish capability within the evaluated task distribution; broader manipulation competence and real-time responsiveness remain open questions.

Model interface. We evaluate the models through their exposed interfaces, with limited visibility into how they are hosted or what internal tools and processing may be available on the policy server. Our analysis is therefore restricted to observable inputs, outputs, execution behavior, and parameters we can vary at inference time. These ablations characterize how the deployed system responds to changes in its interface and context, but cannot fully separate the underlying model’s capabilities from the effects of unobserved serving infrastructure or internal processing.

Acknowledgements

We thank Elie Aljalbout, Alperen Degirmenci, Hugo Hadfield, Jingyi Jin, Max Zhaoshuo Li, Yashraj Narang, Fabio Ramos, Moritz Reuss, Jonathan Tremblay, Zhuocheng Xu for helpful and productive discussions in constructing this blog post.

References

  1. Yang et al. RoboLab: A High-Fidelity Simulation Benchmark for Analysis of Task Generalist Policies. RSS, 2026.
  2. Octo Model Team et al. Octo: An Open-Source Generalist Robot Policy. RSS, 2024.
  3. NVIDIA. Cosmos 3: Omnimodal World Models for Physical AI. 2026.
  4. Li et al. Causal World Modeling for Robot Control. RSS, 2026.
  5. Physical Intelligence. π0.5: a Vision-Language-Action Model with Open-World Generalization. CoRL, 2025.
  6. Zhang et al. An Unexpected Robot Policy: Early Evaluations of GPT-6 Astra on RoboDojo and Beyond. 2026.
  7. Su et al. GPT 6 Astra as an Embodied Policy. 2026. Technical report.
  8. Galbot Team. Systematically Exploring the Capabilities of GPT-6 Astra as Embodied Policies. 2026.
  9. DROID Dataset Team. DROID: A Large-Scale In-the-Wild Robot Manipulation Dataset. RSS, 2024. Accessed October 11, 2026.
  10. Zhou et al. BEAST: Efficient Tokenization of B-Splines Encoded Action Sequences for Imitation Learning. NeurIPS, 2025.
  11. Gasparetto and Zanotto. A new method for smooth trajectory planning of robot manipulators. Mechanism and Machine Theory 2007, 42(4), 455–471.
  12. Han et al. B-spline Policy: Accelerating Manipulation Policies via B-spline Action Representations. 2026.
  13. Fu et al. ICRT: In-Context Imitation Learning via Next-Token Prediction. ICRA, 2025.
  14. Black Forest Labs. FLUX 3 Action. 2026. Model report.
  15. OpenAI. OpenAI API pricing. Accessed October 11, 2026.