The environment class
sweagent.environment.swe_env.SWEEnv
SWEEnv(*, deployment: AbstractDeployment, repo: Repo | RepoConfig | None, post_startup_commands: list[str], hooks: list[EnvHook] | None = None, name: str = 'main')
This class represents the environment in which we solve the tasks.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
deployment
|
AbstractDeployment
|
SWE-ReX deployment instance |
required |
repo
|
Repo | RepoConfig | None
|
Repository configuration object, or anything following the |
required |
post_startup_commands
|
list[str]
|
Commands to execute before starting the agent |
required |
hooks
|
list[EnvHook] | None
|
Environment hooks (used to inject custom functionality)
Equivalent to calling |
None
|
name
|
str
|
Name of the environment |
'main'
|
Source code in sweagent/environment/swe_env.py
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
|
clean_multi_line_functions
instance-attribute
clean_multi_line_functions = lambda x: x
deployment
instance-attribute
deployment = deployment
logger
instance-attribute
logger = get_logger('swea-env', emoji='🌱')
name
instance-attribute
name = name
repo
instance-attribute
repo = repo
add_hook
add_hook(hook: EnvHook) -> None
Add EnvHook
to the environment.
This allows to inject custom functionality at different stages of the environment lifecycle, in particular to connect SWE-agent to a new interface (like a GUI).
Source code in sweagent/environment/swe_env.py
91 92 93 94 95 96 97 98 |
|
close
close() -> None
Shutdown SWE-ReX deployment etc.
Source code in sweagent/environment/swe_env.py
160 161 162 163 164 |
|
communicate
communicate(input: str, timeout: int | float = 25, *, check: Literal['warn', 'ignore', 'raise'] = 'ignore', error_msg: str = 'Command failed') -> str
Executes a command in the running shell. The details of this are handled by the SWE-ReX deployment/runtime.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
input
|
str
|
input to send to container |
required |
timeout_duration
|
duration to wait for output |
required | |
check
|
Literal['warn', 'ignore', 'raise']
|
|
'ignore'
|
error_msg
|
str
|
error message to raise if the command fails |
'Command failed'
|
Returns:
Name | Type | Description |
---|---|---|
output |
str
|
output from container |
Source code in sweagent/environment/swe_env.py
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 |
|
execute_command
execute_command(command: str, shell: bool = True, check: bool = False, env: dict[str, str] | None = None, cwd: str | None = None) -> None
Execute a command in the environment independent of the session (i.e., as a subprocess)
Source code in sweagent/environment/swe_env.py
253 254 255 256 257 258 259 260 261 262 263 264 |
|
from_config
classmethod
from_config(config: EnvironmentConfig) -> Self
Create an environment instance from a configuration object. This is the recommended way to create an environment instance, unless you need more flexibility.
Source code in sweagent/environment/swe_env.py
76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
|
hard_reset
hard_reset()
Resets the environment and deployment, i.e., completely restarts the deployment.
Source code in sweagent/environment/swe_env.py
119 120 121 122 123 124 |
|
interrupt_session
interrupt_session()
Source code in sweagent/environment/swe_env.py
180 181 182 |
|
read_file
read_file(path: str | PurePath, encoding: str | None = None, errors: str | None = None) -> str
Read file contents from container
Parameters:
Name | Type | Description | Default |
---|---|---|---|
path
|
str | PurePath
|
Absolute path to file |
required |
encoding
|
str | None
|
Encoding to use when reading the file. None means default encoding.
This is the same as the |
None
|
errors
|
str | None
|
Error handling to use when reading the file. None means default error handling.
This is the same as the |
None
|
Returns:
Name | Type | Description |
---|---|---|
file_contents |
str
|
Contents of file as string |
Source code in sweagent/environment/swe_env.py
222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 |
|
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.
Returns:
Name | Type | Description |
---|---|---|
observation |
output from container |
|
info |
additional information (e.g. debugging information) |
Source code in sweagent/environment/swe_env.py
126 127 128 129 130 131 132 133 134 135 136 137 138 |
|
set_env_variables
set_env_variables(env_variables: dict[str, str]) -> None
Set environment variables in the environment.
Source code in sweagent/environment/swe_env.py
244 245 246 247 248 249 250 251 |
|
start
start() -> None
Start the environment and reset it to a clean state.
Source code in sweagent/environment/swe_env.py
100 101 102 103 104 105 |
|
write_file
write_file(path: str | PurePath, content: str) -> None
Write content to file in container
Source code in sweagent/environment/swe_env.py
240 241 242 |
|