|
27 | 27 | get_default_on_result_writer, |
28 | 28 | ) |
29 | 29 | from benchmarks.utils.fake_user_response import run_conversation_with_fake_user_response |
30 | | -from benchmarks.utils.image_utils import image_exists |
| 30 | +from benchmarks.utils.image_utils import image_exists, local_image_exists |
31 | 31 | from benchmarks.utils.llm_config import load_llm_config |
32 | 32 | from benchmarks.utils.models import EvalInstance, EvalMetadata, EvalOutput |
33 | 33 | from benchmarks.utils.version import SDK_SHORT_SHA |
|
47 | 47 | from openhands.sdk.workspace import RemoteWorkspace |
48 | 48 | from openhands.tools.delegate import DelegateTool |
49 | 49 | from openhands.tools.preset.default import get_default_tools |
50 | | -from openhands.workspace import APIRemoteWorkspace, DockerDevWorkspace |
| 50 | +from openhands.workspace import APIRemoteWorkspace, DockerDevWorkspace, DockerWorkspace |
51 | 51 |
|
52 | 52 |
|
53 | 53 | logger = get_logger(__name__) |
@@ -156,12 +156,23 @@ def prepare_workspace( |
156 | 156 | logger.info(f"Preparing workspace for instance {instance.id}") |
157 | 157 |
|
158 | 158 | if self.metadata.workspace_type == "docker": |
159 | | - # Use DockerDevWorkspace with base image (same as main branch) |
160 | | - workspace = DockerDevWorkspace( |
161 | | - base_image="nikolaik/python-nodejs:python3.12-nodejs22", |
162 | | - working_dir="/workspace", |
163 | | - forward_env=forward_env or [], |
| 159 | + agent_server_image = ( |
| 160 | + f"{EVAL_AGENT_SERVER_IMAGE}:{SDK_SHORT_SHA}-gaia-binary" |
164 | 161 | ) |
| 162 | + if local_image_exists(agent_server_image): |
| 163 | + logger.info(f"Using pre-built image {agent_server_image}") |
| 164 | + workspace = DockerWorkspace( |
| 165 | + server_image=agent_server_image, |
| 166 | + working_dir="/workspace", |
| 167 | + forward_env=forward_env or [], |
| 168 | + ) |
| 169 | + else: |
| 170 | + logger.info("Building workspace from nikolaik/python-nodejs:python3.12-nodejs22...") |
| 171 | + workspace = DockerDevWorkspace( |
| 172 | + base_image="nikolaik/python-nodejs:python3.12-nodejs22", |
| 173 | + working_dir="/workspace", |
| 174 | + forward_env=forward_env or [], |
| 175 | + ) |
165 | 176 | elif self.metadata.workspace_type == "remote": |
166 | 177 | # For workflow, use APIRemoteWorkspace with pre-built GAIA image |
167 | 178 | # GAIA uses a universal agent server image (one image for all instances) |
|
0 commit comments