Skip to content

Feature Request: Add --auto_create_session flag to adk api_server CLI #4274

@roanny

Description

@roanny

Summary

ADK v1.23.0 added support for automatic session creation via the auto_create_session parameter in the Runner class (commit 8e69a58). However, this feature is not exposed in the adk api_server CLI, requiring frontend applications to manually create sessions before calling /run.

Current Behavior

The _create_runner method in adk_web_server.py creates the Runner without the auto_create_session parameter:

def _create_runner(self, agentic_app: App) -> Runner:
    return Runner(
        app=agentic_app,
        artifact_service=self.artifact_service,
        session_service=self.session_service,
        memory_service=self.memory_service,
        credential_service=self.credential_service,
        # auto_create_session is not passed, defaults to False
    )

This means /run returns 404 Session not found if the session doesn't exist, even though the Runner has the capability to auto-create it.

Proposed Solution

Add a --auto_create_session flag to adk api_server:

adk api_server --auto_create_session --allow_origins="https://example.com" .

This would pass auto_create_session=True to the Runner, enabling the feature that already exists in the codebase.

Use Case

Frontend applications (especially those running in restricted environments like Looker Extensions) would benefit from simplified session management. Currently, we need to:

  1. GET /sessions/{id} to check if session exists
  2. POST /sessions/{id} to create if not found
  3. POST /run to send the message

With --auto_create_session, step 1 and 2 become unnecessary, reducing latency and code complexity.

Alternatives Considered

  1. Manual session creation in frontend - Current workaround, adds complexity
  2. Custom FastAPI server - Requires maintaining a fork
  3. Environment variable - Could also work (e.g., ADK_AUTO_CREATE_SESSION=1)

Additional Context

  • ADK Version: 1.23.0
  • The auto_create_session feature works correctly when using the Runner directly in Python scripts
  • This is specifically about exposing the existing feature via the CLI

Metadata

Metadata

Assignees

No one assigned

    Labels

    good first issue[Community] This issue is good for newcomers to participatehelp wanted[Community] Extra attention is neededweb[Component] This issue will be transferred to adk-web

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions