Agentic robotics places a large language model (LLM) agent in the robot control loop, where it composes perception, motion, and vision-language-action (VLA) tools under the guidance of a memory and thereby generalizes to new tasks without retraining. This generality comes at a steep price in efficiency. Every primitive requires a round of LLM reasoning over the full interaction history, so the cost of an episode grows with the number of primitives. We find this reasoning largely redundant: once a sub-goal is chosen, its primitives follow a routine already prescribed by memory. We present ChunkAct, which introduces action chunking to agentic robotics. Online, a single call launches a chunk of chained primitives, which executes autonomously and returns control only upon failure. Offline, ChunkAct compiles the memory into these chunks, so execution is memory-free at test time and the planner is reserved for decisions that require reasoning. LLM computation therefore scales with the number of decisions rather than the number of primitives. On LIBERO-Pro, ChunkAct improves task success by 5.0 points over the state of the art in agentic robotics while requiring 2.9x fewer LLM calls, 4.4x fewer input tokens, and 2.3x fewer output tokens.
Figures & tables
Figure 1: ChunkAct introduces action chunking to agentic robotics, improving both task success and efficiency. Top: prior methods invoke the LLM planner once per primitive, so the number of LLM calls and the context length grow with every step. Bottom: ChunkAct invokes the planner once to launch an action chunk, which executes autonomously and returns a typed error only upon failure. Right: ChunkAct gains both task success and efficiency.
Figure 2: Distribution of LLM planner’s tool calls on LIBERO. Memory reads and perception dominate.
Figure 3: The two stages of ChunkAct . Left: offline, ChunkAct internalizes memory by compiling it into executable action chunks. Right: online, the LLM planner invokes ChunkAct via a single function call, which executes an entire action chunk autonomously and returns a typed error code to the planner only upon failure.
Method
Spat-T
Spat-S
Obj-T
Obj-S
Goal-T
Goal-S
L10-T
L10-S
Overall
VLA
OpenVLA ( Kim et al., 2024 )
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
π0 ( Black et al., 2024 )
0.0
0.0
0.0
2.0
0.0
0.0
0.0
0.0
0.3
π0.5 ( Physical Intelligence et al., 2025 )
1.0
20.0
1.0
17.0
2.0
38.0
1.0
8.0
11.0
MolmoAct ( Lee et al., 2026 )
0.0
0.0
0.0
6.0
0.0
0.0
6.0
0.0
1.5
NORA ( Hung et al., 2025 )
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
X-VLA ( Zheng et al., 2026 )
0.0
0.0
8.0
2.0
9.0
1.0
10.0
0.0
3.8
Table 1: Task success on LIBERO-Pro. Task success rate (%) under instruction redirection (T) and position swap (S) for each suite. Harness VLA and ChunkAct both use GPT-5.6-sol with high thinking. Best entry is in bold.
Method
Reasoning
TSR
Calls
In (M)
Out (k)
Harness VLA
High
78.8
24.2
2.2
8.5
+ ChunkAct
High
83.8
8.3
0.5
3.7
+5.0
2.9 ×
4.4 ×
2.3 ×
Harness VLA
None
56.0
24.9
2.4
6.4
+ ChunkAct
None
80.0
6.6
0.4
1.3
+24.0
3.8 ×
6.0 ×
4.9 ×
Table 2: Efficiency analysis and LLM role ablation on LIBERO-Pro. Average TSR (%), planner calls, input tokens (M), and output tokens (k) with GPT-5.6-sol in two reasoning settings. Green rows show the gain over Harness VLA. Last row runs chunks with no LLM call.
Method
Camera
Robot
Language
Light
Background
Noise
Layout
Overall
OpenVLA ( Kim et al., 2024 )
1.1
4.1
26.8
4.4
25.3
19.3
31.6
16.1
OpenVLA-OFT ( Kim et al., 2025 )
59.7
37.2
81.5
85.8
92.4
76.7
77.1
72.9
OpenVLA-OFT w ( Kim et al., 2025 )
16.8
43.7
73.2
68.2
92.5
51.4
72.3
59.7
OpenVLA-OFT m ( Kim et al., 2025 )
57.9
30.6
83.6
91.6
83.6
76.3
73.2
71.0
π0 ( Black et al., 2024 )
15.8
6.6
61.0
79.6
78.5
79.4
70.4
55.9
π0 -FAST ( Pertsch et al., 2025 )
66.4
24.8
63.3
73.0
67.7
75.8
70.3
63.0
Table 3: Task success on LIBERO-Plus. Task success rate (%) under all seven perturbation setting. ChunkAct runs GPT-5.6-sol at the high reasoning setting with seed 0. The best entry in each column is in bold.
Figure 4: Demo of a successful rollout on LIBERO-Pro with ChunkAct . Given the task “pick up the can and place it in the basket,” the LLM planner first perceives the scene and invokes ChunkAct to execute a chained action sequence. The can is grasped successfully but slips during transport, so ChunkAct returns the error code. The planner interprets this feedback, re-localizes the can, and invokes ChunkAct again, which completes the task.
Group
Exit
Meaning and expected planner reaction
Success
terminated
The environment reported success inside the chunk; the finish is recorded and the planner session interrupted.
placed_subgoal
A non-final sub-goal was placed and verified; the chunk continues with the next sub-goal (internal).
done_covered
Every covered sub-goal was executed but the task did not terminate; re-perceive and continue.
Hand-off
need_pixels
The next object was not found by name, or the pixels back-projected off the workspace; call approach with pixels on it.
need_receptacle_pixels
The target region cannot be derived (push or beside, or the receptacle point is implausibly high); pass receptacle_pixels .
receptacle_rejected
The receptacle was not found by name, lies at an implausible height, or the fixture geometry was not located; pass receptacle_pixels or use primitives.
Table 4: The complete taxonomy of typed exits. Each exit names the reason a chunk stopped and the reaction expected from the planner.
Appendix figures & tables1 asset
Supplementary material from the paper’s appendix.
Appendix
Type
Primitives
Perception
view_env_state , segment , back_project , view_camera_meta . Return the current images and robot state, segment by text or point prompt, and back-project pixels to 3D points.
Motion
move_to , move_pose , set_gripper , release , rotate_pitch , rotate_wrist . These primitives are executed in closed loop by an analytic controller until the target pose or gripper state is reached.
VLA
pi0_pick , pi0_doubled . Drive the frozen π0.5 policy under a language command until a lift or stop condition is met.
Memory
read_text_file , list_dir , write_text_file . Read memory cards and guides from M and write audit notes.
Control
finish . Declares the task complete.
ChunkAct
approach , which runs an action chunk.
Appendix
Table 5: The primitive library P . Primitives of Harness VLA ( Zhang et al., 2026c ) . The last row lists the single call that ChunkAct adds to this library.