Agent configuration
This page documents the configuration objects used to specify the behavior of an agent. To learn about the agent class itself, see the agent class reference page.
It might be easiest to simply look at some of our example configurations in the config dir.
Example: default config default.yaml
# Formerly called: anthropic_filemap.yaml
# This template is heavily inspired by anthropic's computer use demo, but you can use
# it with any LM.
agent:
templates:
system_template: |-
You are a helpful assistant that can interact with a computer to solve tasks.
instance_template: |-
<uploaded_files>
{{working_dir}}
</uploaded_files>
I've uploaded a python code repository in the directory {{working_dir}}. Consider the following PR description:
<pr_description>
{{problem_statement}}
</pr_description>
Can you help me implement the necessary changes to the repository so that the requirements specified in the <pr_description> are met?
I've already taken care of all changes to any of the test files described in the <pr_description>. This means you DON'T have to modify the testing logic or any of the tests in any way!
Your task is to make the minimal changes to non-tests files in the {{working_dir}} directory to ensure the <pr_description> is satisfied.
Follow these steps to resolve the issue:
1. As a first step, it might be a good idea to find and read code relevant to the <pr_description>
2. Create a script to reproduce the error and execute it with `python <filename.py>` using the bash tool, to confirm the error
3. Edit the sourcecode of the repo to resolve the issue
4. Rerun your reproduce script and confirm that the error is fixed!
5. Think about edgecases and make sure your fix handles them as well
Your thinking should be thorough and so it's fine if it's very long.
next_step_template: |-
OBSERVATION:
{{observation}}
next_step_no_output_template: |-
Your command ran successfully and did not produce any output.
tools:
bundles:
- path: tools/registry
- path: tools/edit_anthropic
- path: tools/review_on_submit_m
registry_variables:
USE_FILEMAP: 'true'
SUBMIT_REVIEW_MESSAGES:
- |
Thank you for your work on this issue. Please carefully follow the steps below to help review your changes.
1. If you made any changes to your code after running the reproduction script, please run the reproduction script again.
If the reproduction script is failing, please revisit your changes and make sure they are correct.
If you have already removed your reproduction script, please ignore this step.
2. Remove your reproduction script (if you haven't done so already).
3. If you have modified any TEST files, please revert them to the state they had before you started fixing the issue.
You can do this with `git checkout -- /path/to/test/file.py`. Use below <diff> to find the files you need to revert.
4. Run the submit command again to confirm.
Here is a list of all of your changes:
<diff>
{{diff}}
</diff>
enable_bash_tool: true
parse_function:
type: function_calling
history_processors:
- type: cache_control
last_n_messages: 2
Currently, there are two main agent classes:
DefaultAgentConfig
: This is the default agent.RetryAgentConfig
: A "meta agent" that instantiates multiple agents for multiple attempts and then picks the best solution.
sweagent.agent.agents.RetryAgentConfig
pydantic-model
Bases: BaseModel
Config:
extra
:forbid
Fields:
-
name
(str
) -
agent_configs
(list[DefaultAgentConfig]
) -
retry_loop
(RetryLoopConfig
) -
type
(Literal['retry']
)
name
pydantic-field
name: str = 'retry_main'
retry_loop
pydantic-field
retry_loop: RetryLoopConfig
type
pydantic-field
type: Literal['retry'] = 'retry'
sweagent.agent.agents.DefaultAgentConfig
pydantic-model
Bases: BaseModel
This configuration object specifies the behavior of an agent.
Config:
extra
:forbid
Fields:
-
name
(str
) -
templates
(TemplateConfig
) -
tools
(ToolConfig
) -
history_processors
(list[HistoryProcessor]
) -
model
(ModelConfig
) -
max_requeries
(int
) -
action_sampler
(ActionSamplerConfig | None
) -
type
(Literal['default']
)
action_sampler
pydantic-field
action_sampler: ActionSamplerConfig | None = None
history_processors
pydantic-field
history_processors: list[HistoryProcessor]
max_requeries
pydantic-field
max_requeries: int = 3
Maximum number of times to requery the model after an error, such as a formatting error, a blocked action, or a bash syntax error.
model
pydantic-field
model: ModelConfig
Model options.
name
pydantic-field
name: str = 'main'
type
pydantic-field
type: Literal['default'] = 'default'