Use a suitable environment for a coding agent

Problem

One of the big differences between remote execution and executing agents within the users IDE is the fact that in the IDE we can assume that the user has a somewhat ready environment so that dependencies are already installed and other important aspects of the environment (e.g. python versions) are available. An important outcome of this is that it allows for the execution of terminal commands such as linting or running tests to allow a coding agent to iterate on its solution.

This is not the case for remote execution where we are using a standardized docker image to execute remote agent flows. As a result, if we wanted to run any commands we'd have to set up the surrounding environment from scratch, e.g. installing a specific python version, installing project dependencies etc.

While it's possible to task an agent with doing this, it feels highly inefficient and error prone especially for any complex project. Every new run of a coding workflow could essentially already fail by running into some environment problem.

Interestingly enough, users already need to solve that problem when configuring their pipelines as those often involve running tests etc, and are therefore often optimized around efficiently installing dependencies.

Desired Outcome

We create an "as-deterministic" and efficient as possible way to provide a workflow's coding agents with an environment where they can run commands such as tests in.

Edited by 🤖 GitLab Bot 🤖