From 58c61d9225e8910e251eb10cf1d599acc615e212 Mon Sep 17 00:00:00 2001 From: Richard Kiene Date: Mon, 26 Jan 2026 12:44:20 -0700 Subject: [PATCH] Use unique user_id per ADK agent to prevent session leakage Generate a unique user_id (using uuid4) for each GeminiADKAgent instance and regenerate it on reset(). This prevents any potential ADK-side caching or session state leakage when the same underlying LlmAgent is shared across test scenarios. --- src/mcprobe/agents/adk.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/mcprobe/agents/adk.py b/src/mcprobe/agents/adk.py index f3ac55e..b420fd3 100644 --- a/src/mcprobe/agents/adk.py +++ b/src/mcprobe/agents/adk.py @@ -2,6 +2,7 @@ import importlib.util import time +import uuid from collections.abc import Callable from pathlib import Path from typing import TYPE_CHECKING, Any @@ -44,7 +45,8 @@ def __init__( session_service=self._session_service, ) self._session_id: str | None = None - self._user_id = "mcprobe_user" + # Use unique user_id per instance to prevent any ADK-side caching/session leakage + self._user_id = f"mcprobe_{uuid.uuid4().hex[:8]}" @property def name(self) -> str: @@ -175,6 +177,8 @@ async def reset(self) -> None: from google.adk.sessions import InMemorySessionService # noqa: PLC0415 self._session_id = None + # Generate new user_id to prevent any ADK-side caching/session leakage + self._user_id = f"mcprobe_{uuid.uuid4().hex[:8]}" # Create fresh session service self._session_service = InMemorySessionService() self._runner = Runner(