sweagent.environment.swe_env.SWEEnv
Source code in SWE-agent/sweagent/environment/swe_env.py
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 | |
apply_patch
apply_patch(patch)
Apply patch to the git repository in the environment
Source code in SWE-agent/sweagent/environment/swe_env.py
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | |
apply_test_patch
apply_test_patch()
Apply test patch if provided in deployment ds
Source code in SWE-agent/sweagent/environment/swe_env.py
131 132 133 134 135 136 | |
_calculate_reward
_calculate_reward()
Calculate reward for the environment
Source code in SWE-agent/sweagent/environment/swe_env.py
137 138 139 140 141 142 | |
sweagent.environment.swe_sbenv.SWEsbEnv
Source code in SWE-agent/sweagent/environment/swe_sbenv.py
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 | |
__init__
__init__(*, deployment, repo, post_startup_commands, post_startup_command_timeout=500, hooks=None, name='main')
This class represents the environment in which we solve the tasks.
| Attributes: |
|
|---|
Source code in SWE-agent/sweagent/environment/swe_sbenv.py
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | |
apply_test_patch
apply_test_patch()
apply test patch only
Source code in SWE-agent/sweagent/environment/swe_sbenv.py
164 165 166 167 168 169 | |
communicate
communicate(input, timeout=25, *, check='ignore', error_msg='Command failed')
Executes a command in the running shell. The details of this are handled by the SWE-ReX deployment/runtime.
| Parameters: |
|
|---|
| Returns: |
|
|---|
Source code in SWE-agent/sweagent/environment/swe_sbenv.py
303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 | |
from_config
classmethod
from_config(ds, bundles, config)
Create an environment instance from a configuration object. We change the creation of deployment here to support our custom deployment creation.
| Attributes: |
|
|---|
Source code in SWE-agent/sweagent/environment/swe_sbenv.py
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | |
get_patch
get_patch(dir='/res.patch')
Get patch from mini-sandbox environment
Source code in SWE-agent/sweagent/environment/swe_sbenv.py
340 341 342 | |
hard_reset
hard_reset()
Resets the environment and deployment, i.e., completely restarts the deployment.
Source code in SWE-agent/sweagent/environment/swe_sbenv.py
145 146 147 148 149 150 | |
pre_check
pre_check()
This funtion is used to apply a golden patch if provided and run eval scripts right after repo is copied and reset and installed. (mainly used to check if the env is valid before running any agent steps.) Note that for swesmith data_type, the patch is applied reversely for swebench data_type, the patch is applied normally
Source code in SWE-agent/sweagent/environment/swe_sbenv.py
170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 | |
reset
reset()
Reset the environment to a clean state.
Gets called by start, but can also be called independently to reset the
environment to a clean state before a new attempt.
Source code in SWE-agent/sweagent/environment/swe_sbenv.py
152 153 154 155 156 157 158 159 160 161 162 163 | |
set_env_variables
set_env_variables(env_variables)
Set environment variables in the environment.
Source code in SWE-agent/sweagent/environment/swe_sbenv.py
357 358 359 360 361 362 363 364 | |
start
start()
Start the environment and reset it to a clean state. Step 1 : initialize deployment (session creation) Step 2 : reset environment (repo copy/reset) Step 3 : post init (venv preparation, tool installation, etc.)
Source code in SWE-agent/sweagent/environment/swe_sbenv.py
114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | |
sweagent.environment.repo.GithubRepoRetryConfig
Bases: BaseModel
Configuration for cloning a GitHub repository with retry logic.
Source code in SWE-agent/sweagent/environment/repo.py
198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 | |
base_commit
class-attribute
instance-attribute
base_commit = Field(default='HEAD')
The commit to reset the repository to. The default is HEAD,
i.e., the latest commit. You can also set this to a branch name (e.g., dev),
a tag (e.g., v0.1.0), or a commit hash (e.g., a4464baca1f).
SWE-agent will then start from this commit when trying to solve the problem.
clone_timeout
class-attribute
instance-attribute
clone_timeout = 60
Timeout for git clone operation.
git_folder
instance-attribute
git_folder
The folder name where the repository will be cloned.
github_url
instance-attribute
github_url
The URL of the GitHub repository to clone.
repo_name
property
repo_name
Set automatically based on the repository name. Cannot be set.
type
class-attribute
instance-attribute
type = 'github'
Discriminator for (de)serialization/CLI. Do not change.
copy2
copy2(deployment, try_count=3, local_path=None)
This function copies the repository to the deployment. It first checks if a local path is provided and exists. If so, it extracts the repository from the local path to the deployment. If not, it clones the repository from GitHub with retry logic. For repo matplotlib/matplotlib, it also extracts freetype and qhull tarballs to /testbed/build. This is due to the network limitations in our experimental environment, its original implementation is to directly download from the internet.
| Attributes: |
|
|---|
Source code in SWE-agent/sweagent/environment/repo.py
265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 | |
copy_repo
copy_repo(deployment)
Clones the repository to the sandbox.
Source code in SWE-agent/sweagent/environment/repo.py
239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 | |