ASENA Speaking Script
Sifei Liu · 9 slides · 505 spoken words · Updated October 6, 2026
ASENA
I’ll talk about two recent projects on code as policy for robotics.
The first is ASENA, which focuses on navigation. We connect a coding agent to a robot environment and explore recursive self-improvement, or RSI.
The second is Recova, which focuses on manipulation with recovery skills. Here, we use code as policy to improve learned robot policies. The goal is to make the whole loop of data collection, training, and deployment as autonomous as possible.
Sources and supporting context
The agent composes, the robot executes
Basically, we give a coding agent a task and observations, from either a real robot or a simulator. It writes code to control the robot, using two kinds of tools: learned policies, like VLN, and interfaces to cameras, LiDAR, and robot control. Then it looks at what happened and tries the next step.
Sources and supporting context
Parallel workers evolve a shared workspace
In each pass, the agent writes code to solve the tasks. We keep the useful code as skills for the next round. The model weights stay fixed.
To scale this up, we need to collect those rollouts efficiently. So we use 16 parallel workers, each with its own simulation environment and private workspace, plus access to the navigation policy.
We distribute the tasks across the workers. After each pass, an improver agent merges, tests, and prunes their updates. That improved workspace becomes the starting point for the next pass.
This is also ready to use as a rollout environment for code-as-policy training.
Sources and supporting context
The sandbox limits what generated code can do
The workspace is a sandbox. The agent can write code and notes, but it can’t change the platform or access operator credentials.
On the real robot, we’re more strict. A motion proposal goes through validation, then operator approval, before we send it to SONIC.
This sandbox can also support agent training.
Sources and supporting context
The interaction layer can support an agent-training loop
Here, we’re making a connection between RSI and agent training, which is our future work.
For RSI, we keep the model fixed and improve the skills. For training, we could swap the API for a trainable model and use the same environments for rollouts. The goal is to make the coding agent faster.
Sources and supporting context
ASENA-VLN provides reusable navigation
We also developed a navigation policy called ASENA-VLN. On its own, it achieves state-of-the-art success on R2R. I won’t go into the policy details here.
What’s more interesting is what happens when a coding agent calls this policy.
Sources and supporting context
The navigation tool reduces coding-agent interaction
Adding VLN helps some models more than others. Claude goes up eleven points, while Astra goes down seven. But both use far fewer tool calls. So the learned policy still helps a lot with efficiency.
Recently, there’s been a lot of debate about whether coding agents can replace learned policies. Personally, I think they complement each other, especially on efficiency. One doesn’t have to replace the other.
Sources and supporting context
Success grows as the workspace accumulates experience
This is one of the most exciting results we saw from RSI. As we run more passes and improve the workspace, success on these recurring R2R tasks reaches 98%—with the model weights completely fixed.
Sources and supporting context
Real runs leave records we can inspect and reuse
Finally, we record observations, robot states, actions, code, and feedback from real-world runs, giving model teams rich multimodal data that could support future training of both robot policies and frontier models.