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
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
|
clean_multi_line_functions
instance-attribute
clean_multi_line_functions = lambda x: x
logger
instance-attribute
logger = get_logger('swea-env', emoji='🌱')
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
82 83 84 85 86 87 88 89 |
|
close
close() -> None
Shoutdown SWE-ReX deployment etc.
Source code in sweagent/environment/swe_env.py
144 145 146 147 148 |
|
communicate
communicate(input: str, timeout: int | float = 25, *, set_last_action: bool = False, 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 | |
set_last_action
|
bool
|
whether to set the LAST_ACTION environment variable |
False
|
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
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 |
|
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
69 70 71 72 73 74 75 76 77 78 79 80 |
|
interrupt_session
interrupt_session()
Source code in sweagent/environment/swe_env.py
163 164 |
|
read_file
read_file(path: str | PurePath) -> str
Read file contents from container
Parameters:
Name | Type | Description | Default |
---|---|---|---|
path
|
str | PurePath
|
Path to file relative to repository root |
required |
Returns:
Name | Type | Description |
---|---|---|
file_contents |
str
|
Contents of file as string |
Source code in sweagent/environment/swe_env.py
216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 |
|
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
110 111 112 113 114 115 116 117 118 119 120 121 122 |
|
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
232 233 234 235 236 |
|
start
start() -> None
Start the environment and reset it to a clean state.
Source code in sweagent/environment/swe_env.py
91 92 93 94 95 96 |
|