@echo off chcp 65001 >nul color 0a echo ======================================== echo X-Agents 一键启动 echo ======================================== echo. REM 使用绝对路径 set "PROJECT_ROOT=D:\Code\Project\X-Agents" set "AGENTS_DIR=%PROJECT_ROOT%\core\agents" set "VENV_DIR=%AGENTS_DIR%\venv" echo 项目根目录: %PROJECT_ROOT% echo. REM ======================================== REM 第一步:杀死所有占用端口的进程 REM ======================================== echo. echo [0/4] 清理占用端口的进程... REM 查找并杀死占用 8082 端口的进程 (Go) for /f "tokens=5" %%a in ('netstat -ano ^| findstr ":8082.*LISTENING"') do ( echo 杀死进程 %%a (端口 8082) taskkill //F //PID %%a >nul 2>&1 ) REM 查找并杀死占用 8001 端口的进程 (Python) for /f "tokens=5" %%a in ('netstat -ano ^| findstr ":8001.*LISTENING"') do ( echo 杀死进程 %%a (端口 8001) taskkill //F //PID %%a >nul 2>&1 ) REM 查找并杀死占用 5173 端口的进程 (Web) for /f "tokens=5" %%a in ('netstat -ano ^| findstr ":5173.*LISTENING"') do ( echo 杀死进程 %%a (端口 5173) taskkill //F //PID %%a >nul 2>&1 ) echo 端口清理完成 echo. REM 等待端口释放 timeout /t 2 /nobreak >nul REM 检查并创建虚拟环境 echo [1/4] 检查虚拟环境... if not exist "%VENV_DIR%\Scripts\python.exe" ( echo 创建虚拟环境... python -m venv "%VENV_DIR%" echo 安装依赖... "%VENV_DIR%\Scripts\pip.exe" install --upgrade pip "%VENV_DIR%\Scripts\pip.exe" install -r "%AGENTS_DIR%\requirements.txt" ) else ( echo 虚拟环境已存在,跳过创建 ) REM 启动 Go 后端 echo [2/4] 启动 Go 后端服务... start "Go Backend" cmd /k "cd /d "%PROJECT_ROOT%\server\cmd\api" && go run main.go" REM 等待 timeout /t 3 /nobreak >nul REM 启动 Python Agent (使用虚拟环境) echo [3/4] 启动 Python Agent 服务... start "Python Agent" cmd /k "cd /d "%PROJECT_ROOT%\core" && set "PYTHONPATH=%PROJECT_ROOT%\core" && "%VENV_DIR%\Scripts\python.exe" -m agents.main" REM 等待 timeout /t 3 /nobreak >nul REM 启动 Web 前端 echo [4/4] 启动 Web 前端... start "Web Frontend" cmd /k "cd /d "%PROJECT_ROOT%\web" && npm run dev" echo. echo ======================================== echo 所有服务已启动! echo ======================================== echo. echo 请检查各终端窗口是否正常启动 echo. echo Web 前端: http://localhost:5173 echo Go 后端: http://localhost:8082 echo Python: http://localhost:8001 echo. echo 按任意键退出(服务继续在后台运行)... pause >nul