Changing the demonstrations
An important way to show LMs how to use commands and interact with the environment is through providing a demonstration - which is basically a completed trajectory that the LM can learn from.
For simplicity we only ingest demonstrations in the form of a trajectory file. However, since trajectory files are usually JSON, you can convert them to yaml using the make_demos/convert_traj_to_demo.py
script to be more human-readable and easier to edit.
Demo (yaml) files are stored in the make_demos/demos
directory by default and consist primarily of the sequence of actions that an LM would need to take to complete a task. It's important that your demo have the proper format to be parsed by SWE-agent and your config.
Manually creating a custom trajectory
You can manually generate a trajectory by running the agent with --model_name human_thought
.
This lets you input, at each turn, the thought (ending with END_THOUGHT) and then the action (a single command).
You should then convert that trajectory into a demonstration as shown below.
To edit text in human_thought
mode:
- Run the command
edit edit_start_line:edit_end_line
- Write the text you want to insert. Feel free to write the text across multiple lines.
- Press
return
then writeend_of_edit
and then pressreturn
again to submit the edit.
If you would like to run human_thought
mode without having to type in a thought at each turn (for debugging for example), use --model_name human
.
Converting an existing trajectory into a demonstration
Here's how you can make a demo from an existing trajectory file (like the one created from the previous step):
- Find a basic trajectory that you already like and want to use as the basis for your demo.
For instance, consider the
.traj
files in thetrajectories/demonstrations/
folder or find the trajectory from the previous step (the path will be printed at the bottom). - Run
python convert_traj_to_demo.py <path to trajectory file.traj>
to convert the trajectory to a demo. This demo will be saved as a readable yaml file in themake_demos/demos
directory. - Edit the demo by hand to make it work for your particular use case and configuration.
- (Optional) Run
python run_replay.py --traj_path <path to demo> --config_file <path to config file>
to execute the actions of the demo, have the system generate the execution output, and ensure that it works as expected. - Inspect the resulting trajectory to ensure it was executed correctly.
- Specify the path to your demonstration in your config file
-
Something broken? Report bug
-
Something unclear? Ask question