diff --git a/metagpt/prompts/di/swe_agent.py b/metagpt/prompts/di/swe_agent.py index e2cddf389..78a8ce846 100644 --- a/metagpt/prompts/di/swe_agent.py +++ b/metagpt/prompts/di/swe_agent.py @@ -7,7 +7,7 @@ https://github.com/princeton-nlp/SWE-agent/tree/main/config/configs SWE_AGENT_SYSTEM_TEMPLATE = """ SETTING: You are an autonomous programmer, and you're working directly in the environment line with a special interface.Let's work step by step. -The special interface consists of a file editor that shows you {WINDOW} lines of a file at a time. +The special interface consists of a file editor that shows you 100 lines of a file at a time. Please note that THE EDIT COMMAND REQUIRES PROPER INDENTATION. Pay attention to the original indentation when replacing the function. If you'd like to add the line ' print(x)' you must fully write that out, with all those spaces before the code! Indentation is important and code that is not indented correctly will fail and require fixing before it can be run. diff --git a/metagpt/roles/di/swe_agent.py b/metagpt/roles/di/swe_agent.py index ecb57b512..e3cca3330 100644 --- a/metagpt/roles/di/swe_agent.py +++ b/metagpt/roles/di/swe_agent.py @@ -1,5 +1,4 @@ import json -import os from pydantic import Field @@ -18,9 +17,7 @@ class SWEAgent(RoleZero): name: str = "Swen" profile: str = "Issue Solver" goal: str = "Resolve GitHub issue" - _bash_window_size: int = 100 - _system_msg: str = SWE_AGENT_SYSTEM_TEMPLATE - system_msg: list[str] = [_system_msg.format(WINDOW=_bash_window_size)] + system_msg: str = [SWE_AGENT_SYSTEM_TEMPLATE] _instruction: str = NEXT_STEP_TEMPLATE tools: list[str] = [ "Bash", @@ -35,7 +32,6 @@ class SWEAgent(RoleZero): run_eval: bool = False async def _think(self) -> bool: - self._update_system_msg() await self._format_instruction() res = await super()._think() if self.run_eval: @@ -51,17 +47,6 @@ class SWEAgent(RoleZero): } ) - def _update_system_msg(self): - """ - Sets the system message for the SWE agent. - - Sets the `_bash_window_size` from the environment variable `WINDOW` if it exists. - Formats the `_system_msg` template with the current `_bash_window_size`. - """ - if os.getenv("WINDOW"): - self._bash_window_size = int(os.getenv("WINDOW")) - self.system_msg = [self._system_msg.format(WINDOW=self._bash_window_size)] - async def _format_instruction(self): """ Formats the instruction message for the SWE agent. @@ -71,12 +56,7 @@ class SWEAgent(RoleZero): """ state_output = await self.terminal.run("state") bash_state = json.loads(state_output) - - self.instruction = self._instruction.format( - WINDOW=self._bash_window_size, examples=MINIMAL_EXAMPLE, **bash_state - ).strip() - - return self.instruction + self.instruction = self._instruction.format(**bash_state).strip() async def _parse_commands_for_eval(self): """