From 8bd72911e70f46177a2fe7ab068edb817792966d Mon Sep 17 00:00:00 2001 From: seeker Date: Mon, 5 Aug 2024 14:47:20 +0800 Subject: [PATCH 1/3] fix: fix swe_workspace_path doesn't exist --- metagpt/tools/libs/terminal.py | 4 +++- metagpt/tools/swe_agent_commands/setup_default.sh | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/metagpt/tools/libs/terminal.py b/metagpt/tools/libs/terminal.py index e93e4575f..5d58f646e 100644 --- a/metagpt/tools/libs/terminal.py +++ b/metagpt/tools/libs/terminal.py @@ -1,4 +1,5 @@ import asyncio +import os from asyncio import Queue from asyncio.subprocess import PIPE, STDOUT from typing import Optional @@ -28,7 +29,7 @@ class Terminal: async def _start_process(self): # Start a persistent shell process self.process = await asyncio.create_subprocess_exec( - *self.shell_command, stdin=PIPE, stdout=PIPE, stderr=STDOUT, executable="bash" + *self.shell_command, stdin=PIPE, stdout=PIPE, stderr=STDOUT, executable="bash", env=os.environ.copy() ) await self._check_state() @@ -150,6 +151,7 @@ class Bash(Terminal): def __init__(self): """init""" + os.environ["SWE_CMD_WORK_DIR"] = str(DEFAULT_WORKSPACE_ROOT / "swe_agent_workdir") super().__init__() self.start_flag = False diff --git a/metagpt/tools/swe_agent_commands/setup_default.sh b/metagpt/tools/swe_agent_commands/setup_default.sh index 5e02fad5d..a0745ee07 100644 --- a/metagpt/tools/swe_agent_commands/setup_default.sh +++ b/metagpt/tools/swe_agent_commands/setup_default.sh @@ -16,4 +16,9 @@ source $REPO_ROOT_DIR/metagpt/tools/swe_agent_commands/defaults.sh source $REPO_ROOT_DIR/metagpt/tools/swe_agent_commands/search.sh source $REPO_ROOT_DIR/metagpt/tools/swe_agent_commands/edit_linting.sh -export SWE_CMD_WORK_DIR="$REPO_ROOT_DIR/workspace/swe_agent_workdir" +echo "SWE_CMD_WORK_DIR: $SWE_CMD_WORK_DIR" + +# 检查 SWE_CMD_WORK_DIR 路径是否已存在,不存在则创建 +if [ ! -d "$SWE_CMD_WORK_DIR" ]; then + mkdir -p $SWE_CMD_WORK_DIR +fi From ce38fef40bc4a6fe25d42d046575c50c1c8ca61c Mon Sep 17 00:00:00 2001 From: seeker Date: Mon, 5 Aug 2024 15:32:23 +0800 Subject: [PATCH 2/3] update --- metagpt/tools/libs/terminal.py | 7 +++++-- metagpt/tools/swe_agent_commands/setup_default.sh | 5 ----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/metagpt/tools/libs/terminal.py b/metagpt/tools/libs/terminal.py index 5d58f646e..9bb6a09ec 100644 --- a/metagpt/tools/libs/terminal.py +++ b/metagpt/tools/libs/terminal.py @@ -4,7 +4,7 @@ from asyncio import Queue from asyncio.subprocess import PIPE, STDOUT from typing import Optional -from metagpt.const import DEFAULT_WORKSPACE_ROOT, SWE_SETUP_PATH +from metagpt.const import DEFAULT_WORKSPACE_ROOT, SWE_CMD_WORK_DIR, SWE_SETUP_PATH from metagpt.logs import logger from metagpt.tools.tool_registry import register_tool from metagpt.utils.report import END_MARKER_VALUE, TerminalReporter @@ -151,7 +151,10 @@ class Bash(Terminal): def __init__(self): """init""" - os.environ["SWE_CMD_WORK_DIR"] = str(DEFAULT_WORKSPACE_ROOT / "swe_agent_workdir") + if not SWE_CMD_WORK_DIR.exists(): + SWE_CMD_WORK_DIR.mkdir(parents=True) + + os.environ["SWE_CMD_WORK_DIR"] = str(SWE_CMD_WORK_DIR) super().__init__() self.start_flag = False diff --git a/metagpt/tools/swe_agent_commands/setup_default.sh b/metagpt/tools/swe_agent_commands/setup_default.sh index a0745ee07..265650001 100644 --- a/metagpt/tools/swe_agent_commands/setup_default.sh +++ b/metagpt/tools/swe_agent_commands/setup_default.sh @@ -17,8 +17,3 @@ source $REPO_ROOT_DIR/metagpt/tools/swe_agent_commands/search.sh source $REPO_ROOT_DIR/metagpt/tools/swe_agent_commands/edit_linting.sh echo "SWE_CMD_WORK_DIR: $SWE_CMD_WORK_DIR" - -# 检查 SWE_CMD_WORK_DIR 路径是否已存在,不存在则创建 -if [ ! -d "$SWE_CMD_WORK_DIR" ]; then - mkdir -p $SWE_CMD_WORK_DIR -fi From e641e17e5c8a5ca00425628b1b25c999466670b5 Mon Sep 17 00:00:00 2001 From: seeker Date: Tue, 6 Aug 2024 14:24:19 +0800 Subject: [PATCH 3/3] update --- metagpt/const.py | 1 + 1 file changed, 1 insertion(+) diff --git a/metagpt/const.py b/metagpt/const.py index 17ce9210a..8d52f6e92 100644 --- a/metagpt/const.py +++ b/metagpt/const.py @@ -152,3 +152,4 @@ AGENT = "agent" # SWE agent SWE_SETUP_PATH = get_metagpt_package_root() / "metagpt/tools/swe_agent_commands/setup_default.sh" +SWE_CMD_WORK_DIR = DEFAULT_WORKSPACE_ROOT / "swe_agent_workdir"