Files
wehub-resource-sync 4e0f4422d0
build-docs / deploy (push) Has been cancelled
Check Markdown links / markdown-link-check (push) Has been cancelled
Pytest / test (3.11) (push) Has been cancelled
Pytest / test (3.12) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:25:42 +08:00

104 lines
4.7 KiB
Markdown

# Output files
The [`trajectories/`](https://github.com/SWE-agent/SWE-agent/tree/main/trajectories) folder is the default location that experiment results (for example invocations of [`sweagent run`](cl_tutorial.md)) will be written to.
## Trajectories
The main output file is `<instance_id>.traj`, which is a `.json` formatted file containing the (thought, action, observation) turns generated by SWE-agent towards solving `<instance_id>`.
Under the `trajectory` key, you can see information for every step of the agent. It looks something like this:
```json
{
# This is the output of the LM
"response": "We are indeed seeing the same output as the issue. The issue suggests that we should look at line 1474 of the `fields.py`...",
# We then parse it into thoughts and actions
"thought": "We are indeed seeing the same output as the issue. The issue suggests that we should look at line 1474 of the `fields.py`..."
"action": "ls -F\n",
# And execute the action, resulting in the output
"observation": "AUTHORS.rst\nCHANGELOG.rst\nCODE_OF_CONDUCT.md...",
# In addition, after the action was executed, state can be extracted from the environment
"state": "{\"open_file\": \"/marshmallow-code__marshmallow/reproduce.py\", \"working_dir\": \"/marshmallow-code__marshmallow\"}\n",
# For debugging, we also keep all messages that were shown to the LM
"query": [{"role": "system", "content": "You are a helpful assistant ..."}, ...]
},
```
!!! warning "Query and message field"
Prior to SWE-agent 1.1.0, we had a `message` field which corresponded (approximately) to the input
for the LM for the _next_ step. This was replaced with `query`, which shows the exact input
at the current step.
Here's a full example:
<details>
<summary>Example trajectory</summary>
Note: This trajectory is from SWE-agent v0.7.0. It might look different in newer versions.
```json
--8<-- "trajectories/demonstrations/replay__marshmallow-code__marshmallow-1867__default__t-0.20__p-0.95__c-2.00__install-1___install_from_source/marshmallow-code__marshmallow-1867.traj"
```
</details>
!!! tip "Viewing trajectories"
We provide a [trajectory viewer](inspector.md) for an easy viewing of trajectories.
If you want to view the json, we recommend [jsoneditoronline](https://jsoneditoronline.org/),
because of the way it handles long lines.
Trajectories can also be turned into custom demonstrations for SWE-agent ([more information](../config/demonstrations.md)).
## Other output files
Together with the trajectory, SWE-agent will also generate the following files per instance:
* `config.yaml`: A yaml file containing the configuration used for the experiment. You can directly repeat the run of this
exact instance by running `sweagent run --config config.yaml`.
* `*.log`: Log files at different levels
At a high level, the experiments folder is organized in the following manner:
```
trajectories:
user 1:
experiment 1:
run_batch.config.yaml
preds.json
run_batch.debug.log
run_batch.info.log
run_batch.warning.log
run_batch_exit_statuses.yaml
instance_1:
instance_1.traj
instance_1.config.yaml
instance_1.debug.log
instance_1.info.log
instance_1.warning.log
instance 2:
...
experiment 2:
...
user 2:
...
```
Where every experiment follows the pattern `trajectories/<user name>/<experiment name>`. The `<user name>` is automatically inferred from your system, and the `experiment name` is inferred from the model names and other settings to the run command.
Here are a few more files that are generated with `sweagent run-batch`:
* `run_batch.config.yaml`: A yaml file containing the configuration used for the experiment. You can directly repeat the run of this
exact experiment by running `sweagent run-batch --config run_batch.config.yaml`.
* `preds.json`: All predictions (i.e., patches produced by the agent) from all instances of the experiment.
If this file goes out of date, you can regenerate it by running `sweagent merge-preds`.
* `run_batch.*.log`: Log files at different levels.
* `run_batch_exit_statuses.yaml`: A yaml file containing the exit statuses of all instances in the experiment (for this run of `sweagent run-batch`).
!!! tip
* Evaluation is not completed by `sweagent run-batch`, it is a separate step (see [batch mode](batch_mode.md))
* `preds.json` can be referenced directly into SWE-bench to run evaluation
* Trajectories can be turned into custom demonstrations for SWE-agent ([more information](../config/demonstrations.md)).
{% include-markdown "../_footer.md" %}