CoAct-1: Computer-using Agents with Coding as Actions

1University of Southern California, 2Salesforce Research, 3University of Washington

Abstract

Autonomous agents that operate computers via Graphical User Interfaces (GUIs) often struggle with efficiency and reliability on complex, long-horizon tasks. While augmenting these agents with planners can improve task decomposition, they remain constrained by the inherent limitations of performing all actions through GUI manipulation, leading to brittleness and inefficiency. In this work, we introduce a more robust and flexible paradigm: enabling agents to use coding as a enhanced action. We present CoAct-1, a novel multi-agent system that synergistically combines GUI-based control with direct programmatic execution. CoAct-1 features an Orchestrator that dynamically delegates subtasks to either a conventional GUI Operator or a specialized Programmer agent, which can write and execute Python or Bash scripts. This hybrid approach allows the agent to bypass inefficient GUI action sequences for tasks like file management and data processing, while still leveraging visual interaction when necessary. We evaluate our system on the challenging OSWorld benchmark, where CoAct-1 achieves a new state-of-the-art success rate of 60.76%, significantly outperforming prior methods. Furthermore, our approach dramatically improves efficiency, reducing the average number of steps required to complete a task to just 11.08, compared to 15 for leading GUI agents. Our results demonstrate that integrating coding as a core action provides a more powerful, efficient, and scalable path toward generalized computer automation.

Multi-agent system design for CoAct-1

Overall framework of CoAct-1

We introduce a new system-interactive action: coding, to replace redundant and brittle GUI actions. Specifically, we design a multi-agent system called CoAct-1 based on the GUI agent with a planner approach, introducing a new agent called programmer who can interact with the operating system by coding. An orchestrator is designed to determine whether to assign the programmer or the GUI operator to complete a subtask.

Illustration of CoAct-1 Workflow by Real Case

When the Programmer completes an assigned subtask, a language model will summarize the conversation between the coding agent and code interpreter, returning a summary and a screenshot to the Orchestrator as part of the Orchestrator's memory. On the other hand, the GUI Operator will return a message that includes the required information from the Orchestrator, which is also stored as part of the Orchestrator's memory. The Programmer, Orchestrator, and GUI Operator do not share their conversation history. Once the subtask is completed, the system will clean the instance conversation history of the Programmer and the GUI Operator, allowing them to focus solely on the current assigned subtask.

BibTeX

@misc{song2025coact1computerusingagentscoding,
        title={CoAct-1: Computer-using Agents with Coding as Actions}, 
        author={Linxin Song and Yutong Dai and Viraj Prabhu and Jieyu Zhang and Taiwei Shi and Li Li and Junnan Li and Silvio Savarese and Zeyuan Chen and Jieyu Zhao and Ran Xu and Caiming Xiong},
        year={2025},
        eprint={2508.03923},
        archivePrefix={arXiv},
        primaryClass={cs.CL},
        url={https://arxiv.org/abs/2508.03923}, 
  }