The user delegates a task (e.g. 'implement feature X' or 'refactor module Y'). The background agent starts asynchronously - locally or on a remote machine - and runs a loop: planning, calling tools (editing files, running tests, commands), evaluating and iterating, until completion. State is often persisted in an event log (every model call, tool run and edit), enabling long-running tasks and crash recovery. The result is delivered as a finished artifact (e.g. a pull request, a report), and many agents can run in parallel.
Interactive agents require constant user attention and confirmations at each step, which blocks the user's work and limits scale (one task at a time). This makes it hard to delegate large, long-running tasks.
A mechanism for accepting whole tasks from the user and starting them asynchronously.
An isolated environment (often a remote VM) where the agent runs tools without loading the user.
Official
A record of every model call, tool run and edit, enabling long-running tasks and crash recovery.
Returning a finished result (e.g. a pull request, a report) once the task is complete.
Official
Not confirming each step can lead to unwanted changes if the task was poorly specified.
Background tasks are less visible to the user, making progress tracking and debugging harder.
Cognition introduced Devin - an autonomous agent executing whole coding tasks in the cloud, popularizing the 'delegate a task' approach.
Cursor, GitHub Copilot and others introduced background agents run asynchronously (often in the cloud), returning results as pull requests.
Muse Code introduced specialized background agents that remain active throughout a session, with a local event log and repository-scale execution.