1.28.0 (2026-03-26)
Features
- a2a: add lifespan parameter to to_a2a() (0f4c807), closes #4701
- Add a new extension for the new version of ADK-A2A integration (6f0dcb3)
- Add ability to run individual unit tests to unittests.sh (b3fcd8a)
- Add database_role property to SpannerToolSettings and use it in execute_sql to support fine grained access controls (360e0f7)
- Add index to events table and update dependencies (3153e6d), closes #4827
- Add MultiTurn Task success metric (9a75c06)
- Add MultiTurn Task trajectory and tool trajectory metrics (38bfb44)
- Add slack integration to ADK (6909a16)
- Add Spanner Admin Toolset (28618a8)
- Add SSE streaming support to conformance tests (c910961)
- Add support for Anthropic's thinking_blocks format in LiteLLM integration (fc45fa6), closes #4801
- Add support for timeout to UnsafeLocalCodeExecutor (71d26ef)
- auth: Integrate GCP IAM Connectors (Noop implementation) (78e5a90)
- bigquery: Migrate 1P BQ Toolset (08be442) (7aa1f52) (d112131) (166ff99)
- enable suppressing A2A experimental warnings (fdc2b43)
- Enhance AgentEngineSandboxCodeExecutor sample to automatically provision an Agent Engine if neither agent_engine_resource_name nor sandbox_resource_name is provided (6c34694)
- Extract and merge EventActions from A2A metadata (4b677e7), closes #3968
- mcp: add sampling callback support for MCP sessions (8f82697)
- Optional GCP project and credential for GCS access (2f90c1a)
- Support new embedding model in files retrieval (faafac9)
Bug Fixes
- add agent name validation to prevent arbitrary module imports (116f75d)
- add protection for arbitrary module imports (995cd1c), closes #4947
- Add read-only session support in DatabaseSessionService (f6ea58b), closes #4771
- Allow snake case for skill name (b157276)
- bigquery: use valid dataplex OAuth scope (4010716)
- Default to ClusterIP so GKE deployment isn't publicly exposed by default (f7359e3)
- deps: bump google-genai minimum to >=1.64.0 for gemini-embedding-2-preview (f8270c8)
- enforce allowed file extensions for GET requests in the builder API (96e845e)
- error when event does not contain long_running_tool_ids (1f9f0fe)
- Exclude compromised LiteLLM versions from dependencies pin to 1.82.6 (77f1c41)
- Fix IDE hangs by moving test venv and cache to /tmp (6f6fd95)
- Fix imports for environment simulation files (dcccfca)
- gate builder endpoints behind web flag (6c24ccc)
- Handle concurrent creation of app/user state rows in DatabaseSessionService (d78422a), closes #4954
- live: convert response_modalities to Modality enum before assigning to LiveConnectConfig (47aaf66), closes #4869
- models: handle arbitrary dict responses in part_to_message_block (c26d359)
- models: update 429 docs link for Gemini (a231c72)
- populate
requiredfor PydanticBaseModelparameters inFunctionTool(c5d809e), closes #4777 - Prevent compaction of events with pending function calls (991c411), closes #4740
- Prevent uv.lock modifications in unittests.sh (e6476c9)
- Refactor blocking subprocess call to use asyncio in bash_tool (58c4536)
- Refactor LiteLlm check to avoid ImportError (7b94a76)
- Reject appends to stale sessions in DatabaseSessionService (b8e7647), closes #4751
- Remove redundant client_id from fetch_token call (50d6f35), closes #4782
- returns '<No stdout/stderr captured>' instead of empty strings for clearer agent feedback and correct typing (3e00e95)
- Store and retrieve usage_metadata in Vertex AI custom_metadata (b318eee)
- Support resolving string annotations for
find_context_parameter(22fc332) - telemetry: Rolling back change to fix issue affecting LlmAgent creation due to missing version field (0e18f81)
- tools: disable default httpx 5s timeout in OpenAPI tool _request (4c9c01f), closes #4431
- tools: support regional Discovery Engine endpoints (30b904e)
- tools: support structured datastores in DiscoveryEngineSearchTool (f35c3a6), closes #3406
- Update Agent Registry to use the full agent card if available (031f581)
- Update eval extras to Vertex SDK package version with constrained LiteLLM upperbound (27cc98d)
- Update import and version for k8s-agent-sandbox (1ee0623), closes #4883
- Update list_agents to only list directories, not validate agent definitions (5020954)
Code Refactoring
- rename agent simulator to environment simulation. Also add tracing into environment simulation (99a31bf)