update: 移除 swe agent window 的实时配置,固定为 100 行

This commit is contained in:
seeker 2024-07-10 14:49:48 +08:00
parent 306dc278d2
commit b3dab8b425
2 changed files with 3 additions and 21 deletions

View file

@ -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.
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.

View file

@ -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()
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)]
def _format_instruction(self):
"""
Formats the instruction message for the SWE agent.
@ -71,10 +56,7 @@ class SWEAgent(RoleZero):
"""
state_output = 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()
self.instruction = self._instruction.format(**bash_state).strip()
return self.instruction