GPT-6 Astra Robot Agents with 14% Higher Success Rate but 65% Fewer Tokens PyRUA-Lean, a robot-agent framework that replaces per-step tool calling with generated Python cells, raised task success to 71.7% from 63.1% while cutting input tokens 65% (276k vs 788k), LLM calls 49% (8.7 vs 17.0) and cost 2.2x ($0.74 vs $1.63 per solved episode) on 700 simulated task instances from LIBERO-PRO, RoboTwin 2.0 and RoboCasa365, according to the reported benchmark. The framework keeps the same vision-language model, robot primitives and VLA policies, giving the agent one python(code) tool and a robo object whose methods are those primitives, so a single cell chains steps, checks results and retries locally. In a recorded placement example, one PyRUA-Lean cell written by GPT-6 Astra replaced four baseline LLM calls for placing a bowl on a plate. PyRUA-Lean matches or exceeds tool calling’s success rate on each sub-suite and costs less on every benchmark. a Success rate on all 700 instances, tagged by task property semantic: perturbed layouts, objects, goals ; RoboTwin 2.0 split by skill from task names. b, c Input tokens and GPT-6 Astra list-price dollars per solved episode, on instances both agents solved; Avg: mean over all of them. RC365: RoboCasa365. Same planner, same primitives: code instead of tool calls Success rate 71.7%vs 63.1% with tool calling Input tokens 65% fewer276k vs 788k per solved episode LLM calls 49% fewer8.7 vs 17.0 per solved episode Cost 2.2× cheaper$0.74 vs $1.63 per solved episode 700 simulated task instances from LIBERO-PRO, RoboTwin 2.0 and RoboCasa365; tokens, calls and cost on the instances both agents solved. Stop paying one LLM call per step A robot agent built on a vision-language model usually acts through tool calling. The model picks one tool, such as move to or release; the robot runs it; the result comes back, with three camera images after every motion; and the model is called again with everything so far. Every small step costs a full LLM call, and every call reads the growing conversation again, images included. PyRUA-Lean Python for Lean Robot-Use Agents keeps the model, the robot primitives and the VLA policies, and changes only how the agent acts. The agent gets one tool, python code , and a robot object robo whose methods are those same primitives. In one LLM call it writes a cell: a few lines of Python that chain several steps, check each result, retry when a policy falls short, and compute what no tool returns. The cell runs on the robot; the agent then sees only what the cell printed and the camera images it asked for. PyRUA-Lean combines primitive composition with selective feedback. a The tool-calling agent invokes robot primitives through tool calls. Operations that depend on preceding results generally require another VLM turn, and motion calls automatically return images and state. b PyRUA-Lean instead generates Python cells that compose robot primitives with helper functions, conditional checks, and local retries. Intermediate execution stays within the runtime, while explicitly requested images and state messages are recorded and returned at cell end for replanning. c A recorded placement example illustrates both mechanisms: one PyRUA-Lean cell replaces baseline steps 14–17, reducing four LLM turns to one. One cell instead of four LLM calls This is the cell of panel c , exactly as GPT-6 Astra wrote it while placing a bowl on a plate. Tool calling needed four LLM calls for the same step: two to locate the bowl and sample its base, one to lower it and one to release it, and each move returned three camera images. The cell measures the bowl's bottom in the point cloud, lowers it to the right height, releases it only if the move arrived, and asks for an image only if the task is still not done. The three comment lines are ours; plate was found by an earlier cell. compose: compute a placement target from the scene geometry held at plate = robo.segment point= 314, 795 print 'bowl above plate', held at plate assert held at plate.found correction = np.array plate.world xyz :2 - np.array held at plate.world xyz :2 place xy = np.array robo.state .eef pos :2 + correction surface map = robo.world map bowl patch = surface map 290:365, 740:850 bowl heights = bowl patch :,:,2 bowl heights = bowl heights bowl heights 1.04 & bowl heights<1.17 bottom z = float np.quantile bowl heights, 0.02 placement z = plate.world xyz 2 + robo.state .eef pos 2 - bottom z + 0.007 print 'correction', correction, 'bottom', bottom z, 'placement z', placement z assert np.linalg.norm correction <0.07 and 0.95