diff --git a/src/google/adk/cli/adk_web_server.py b/src/google/adk/cli/adk_web_server.py index 57cf2c50a7..c3b81b287b 100644 --- a/src/google/adk/cli/adk_web_server.py +++ b/src/google/adk/cli/adk_web_server.py @@ -494,6 +494,7 @@ def __init__( logo_text: Optional[str] = None, logo_image_url: Optional[str] = None, url_prefix: Optional[str] = None, + auto_create_session: bool = False, ): self.agent_loader = agent_loader self.session_service = session_service @@ -511,6 +512,7 @@ def __init__( self.current_app_name_ref: SharedValue[str] = SharedValue(value="") self.runner_dict = {} self.url_prefix = url_prefix + self.auto_create_session = auto_create_session async def get_runner_async(self, app_name: str) -> Runner: """Returns the cached runner for the given app.""" @@ -560,6 +562,7 @@ def _create_runner(self, agentic_app: App) -> Runner: session_service=self.session_service, memory_service=self.memory_service, credential_service=self.credential_service, + auto_create_session=self.auto_create_session, ) def _instantiate_extra_plugins(self) -> list[BasePlugin]: diff --git a/src/google/adk/cli/cli_tools_click.py b/src/google/adk/cli/cli_tools_click.py index 0263c0e9f6..5b5d3e5c82 100644 --- a/src/google/adk/cli/cli_tools_click.py +++ b/src/google/adk/cli/cli_tools_click.py @@ -1419,6 +1419,14 @@ async def _lifespan(app: FastAPI): @fast_api_common_options() @adk_services_options(default_use_local_storage=True) @deprecated_adk_services_options() +@click.option( + "--auto_create_session", + is_flag=True, + default=False, + help=( + "Automatically create a session if it doesn't exist when calling /run." + ), +) def cli_api_server( agents_dir: str, eval_storage_uri: Optional[str] = None, @@ -1439,6 +1447,7 @@ def cli_api_server( a2a: bool = False, reload_agents: bool = False, extra_plugins: Optional[list[str]] = None, + auto_create_session: bool = False, ): """Starts a FastAPI server for agents. @@ -1471,6 +1480,7 @@ def cli_api_server( url_prefix=url_prefix, reload_agents=reload_agents, extra_plugins=extra_plugins, + auto_create_session=auto_create_session, ), host=host, port=port, diff --git a/src/google/adk/cli/fast_api.py b/src/google/adk/cli/fast_api.py index 287fce6796..9956fc5587 100644 --- a/src/google/adk/cli/fast_api.py +++ b/src/google/adk/cli/fast_api.py @@ -91,6 +91,7 @@ def get_fast_api_app( extra_plugins: Optional[list[str]] = None, logo_text: Optional[str] = None, logo_image_url: Optional[str] = None, + auto_create_session: bool = False, ) -> FastAPI: # Set up eval managers. @@ -153,6 +154,7 @@ def get_fast_api_app( logo_text=logo_text, logo_image_url=logo_image_url, url_prefix=url_prefix, + auto_create_session=auto_create_session, ) # Callbacks & other optional args for when constructing the FastAPI instance