Severity
High
Impact
docker compose up — the README's recommended one-command setup — fails to start the server. The container exits immediately with ModuleNotFoundError, so neither the backend nor the UI (which depends on it) is usable via Docker. The manual pip install -r requirements.txt path in the README fails the same way.
Description
The server imports from the SDK package at module load time:
packages/server/main.py line 16: from agentscope._pricing import calculate_cost as _calculate_llm_cost
packages/server/routers/sessions.py line 21: from agentscope._pricing import calculate_cost as _calculate_llm_cost
agentscope is the Python SDK package (project name agentscope-sdk, defined in packages/sdk/pyproject.toml). It is NOT declared anywhere in the server's dependency graph:
packages/server/requirements.txt lists only fastapi, uvicorn, sqlalchemy, pydantic, websockets, python-dotenv, aiosqlite, greenlet — no agentscope-sdk.
packages/server/Dockerfile installs only requirements.txt and copies only the server source (COPY . . from the server context), so no agentscope/ module exists on the container's sys.path.
The CI server-test job only passes because it runs pip install -e packages/sdk before pytest, which masks the failure from CI.
Sub-Issues
Severity
High
Impact
docker compose up— the README's recommended one-command setup — fails to start the server. The container exits immediately withModuleNotFoundError, so neither the backend nor the UI (which depends on it) is usable via Docker. The manualpip install -r requirements.txtpath in the README fails the same way.Description
The server imports from the SDK package at module load time:
packages/server/main.pyline 16:from agentscope._pricing import calculate_cost as _calculate_llm_costpackages/server/routers/sessions.pyline 21:from agentscope._pricing import calculate_cost as _calculate_llm_costagentscopeis the Python SDK package (project nameagentscope-sdk, defined inpackages/sdk/pyproject.toml). It is NOT declared anywhere in the server's dependency graph:packages/server/requirements.txtlists only fastapi, uvicorn, sqlalchemy, pydantic, websockets, python-dotenv, aiosqlite, greenlet — noagentscope-sdk.packages/server/Dockerfileinstalls onlyrequirements.txtand copies only the server source (COPY . .from the server context), so noagentscope/module exists on the container'ssys.path.The CI server-test job only passes because it runs
pip install -e packages/sdkbefore pytest, which masks the failure from CI.Sub-Issues
Vendor the pricing logic into the server package (e.g.
packages/server/pricing.py) so the server has no hidden dependency on the SDK, or addagentscope-sdktorequirements.txtif coupling is intended.Run
docker compose buildanddocker compose up, then confirmGET http://localhost:8765/healthreturns 200 and a session can be created.Build (and ideally boot) the server image in CI so import/coupling regressions fail loudly instead of being hidden by the pip install.