Merge branch 'fix_swe_workspace' into 'mgx_ops'

fix: fix swe_workspace_path doesn't exist

See merge request pub/MetaGPT!276
This commit is contained in:
林义章 2024-08-06 08:16:49 +00:00
commit 1c345d8372
3 changed files with 9 additions and 3 deletions

View file

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

View file

@ -1,9 +1,10 @@
import asyncio
import os
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
@ -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,10 @@ class Bash(Terminal):
def __init__(self):
"""init"""
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

View file

@ -16,4 +16,4 @@ 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"