From 3eb6ac5b7b883ccf20a3e0c14e6041c537378ca3 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Tue, 27 Jan 2026 13:06:23 -0800 Subject: [PATCH] refactor: Renaming SchemaUtils.validateOutputSchema to SchemaUtils.validateSchema We should be able to use this for input schema as well. PiperOrigin-RevId: 861853761 --- .../main/java/com/google/adk/SchemaUtils.java | 24 +++++++++++++++---- .../java/com/google/adk/agents/LlmAgent.java | 2 +- .../java/com/google/adk/tools/AgentTool.java | 2 +- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/com/google/adk/SchemaUtils.java b/core/src/main/java/com/google/adk/SchemaUtils.java index 644aa6ded..89ac64d2f 100644 --- a/core/src/main/java/com/google/adk/SchemaUtils.java +++ b/core/src/main/java/com/google/adk/SchemaUtils.java @@ -132,12 +132,28 @@ public static void validateMapOnSchema(Map args, Schema schema, * @return The output map. * @throws IllegalArgumentException If the output string does not match the schema. * @throws JsonProcessingException If the output string cannot be parsed. + * @deprecated Use {@link #validateSchema(String, Schema)} instead. */ - @SuppressWarnings("unchecked") // For tool parameter type casting. + @Deprecated public static Map validateOutputSchema(String output, Schema schema) throws JsonProcessingException { - Map outputMap = JsonBaseModel.getMapper().readValue(output, HashMap.class); - validateMapOnSchema(outputMap, schema, false); - return outputMap; + return validateSchema(output, schema); + } + + /** + * Validates a string against a schema. + * + * @param input The input string to validate. + * @param schema The schema to validate against. + * @return The input map. + * @throws IllegalArgumentException If the input string does not match the schema. + * @throws JsonProcessingException If the input string cannot be parsed. + */ + @SuppressWarnings("unchecked") // For tool parameter type casting. + public static Map validateSchema(String s, Schema schema) + throws JsonProcessingException { + Map map = JsonBaseModel.getMapper().readValue(s, HashMap.class); + validateMapOnSchema(map, schema, false); + return map; } } diff --git a/core/src/main/java/com/google/adk/agents/LlmAgent.java b/core/src/main/java/com/google/adk/agents/LlmAgent.java index 444985971..a2ce59de9 100644 --- a/core/src/main/java/com/google/adk/agents/LlmAgent.java +++ b/core/src/main/java/com/google/adk/agents/LlmAgent.java @@ -674,7 +674,7 @@ private void maybeSaveOutputToState(Event event) { if (outputSchema.isPresent()) { try { Map validatedMap = - SchemaUtils.validateOutputSchema(rawResult, outputSchema.get()); + SchemaUtils.validateSchema(rawResult, outputSchema.get()); output = validatedMap; } catch (JsonProcessingException e) { logger.error( diff --git a/core/src/main/java/com/google/adk/tools/AgentTool.java b/core/src/main/java/com/google/adk/tools/AgentTool.java index a531361f2..56960ce82 100644 --- a/core/src/main/java/com/google/adk/tools/AgentTool.java +++ b/core/src/main/java/com/google/adk/tools/AgentTool.java @@ -168,7 +168,7 @@ public Single> runAsync(Map args, ToolContex } if (agentOutputSchema.isPresent()) { - return SchemaUtils.validateOutputSchema(output, agentOutputSchema.get()); + return SchemaUtils.validateSchema(output, agentOutputSchema.get()); } else { return ImmutableMap.of("result", output); }