diff --git a/backend/agenteval/web/app.py b/backend/agenteval/web/app.py index 2ec1c10..0d1e5d6 100644 --- a/backend/agenteval/web/app.py +++ b/backend/agenteval/web/app.py @@ -2,6 +2,7 @@ import asyncio import logging +import time from contextlib import asynccontextmanager from pathlib import Path @@ -213,13 +214,18 @@ async def _trigger_intelligent_worker() -> bool: "agent", "--agent", "main", + # 必须用独立 session:`--agent main` 复用 main 持久 session,多次触发 + # 累积上下文缓存(~12 万 token)后 LLM 不再执行 worker skill 的 API + # 步骤,直接幻觉输出(如"评估 pending_approval")而不取任务建会话。 + "--session-id", + f"agenteval-worker-{int(time.time())}", "-m", worker_msg, "--json", ], capture_output=True, text=True, - timeout=300, + timeout=600, ) _logger.info("Worker 触发完成 exit=%s", proc.returncode) if proc.returncode != 0: @@ -264,13 +270,16 @@ async def _trigger_intelligent_planner() -> bool: "agent", "--agent", "main", + # 同 worker:独立 session 避免 main 持久 session 上下文缓存污染 + "--session-id", + f"agenteval-planner-{int(time.time())}", "-m", planner_msg, "--json", ], capture_output=True, text=True, - timeout=300, + timeout=600, ) _logger.info("Planner 触发完成 exit=%s", proc.returncode) if proc.returncode != 0: diff --git a/tests/integration/test_intelligent_eval_scan_scheduler.py b/tests/integration/test_intelligent_eval_scan_scheduler.py index 84040bd..517e38b 100644 --- a/tests/integration/test_intelligent_eval_scan_scheduler.py +++ b/tests/integration/test_intelligent_eval_scan_scheduler.py @@ -79,6 +79,9 @@ def test_trigger_worker_calls_docker_exec(monkeypatch): assert "docker" in joined and "openclaw" in joined assert "agenteval-intelligent-worker" in joined assert "--agent" in joined and "main" in joined + # 独立 session:避免 main 持久 session 上下文缓存污染导致 worker 幻觉不执行 + assert "--session-id" in joined + assert "agenteval-worker-" in joined def test_trigger_worker_msg_has_execute_semantics(monkeypatch): @@ -154,6 +157,9 @@ def test_trigger_planner_calls_docker_exec(monkeypatch): joined = " ".join(calls[0]) assert "docker" in joined and "openclaw" in joined assert "agenteval-intelligent-planner" in joined + # 独立 session(同 worker 防上下文缓存污染) + assert "--session-id" in joined + assert "agenteval-planner-" in joined assert "立即完成当前任务" in joined assert "不要等待下一节拍" in joined