@@ -132,21 +132,28 @@ private static Optional<com.google.genai.types.Part> convertDataPartToGenAiPart(
132132 if (data .containsKey ("name" ) && data .containsKey ("args" )
133133 || A2A_DATA_PART_METADATA_TYPE_FUNCTION_CALL .equals (metadataType )) {
134134 String functionName = String .valueOf (data .getOrDefault ("name" , "" ));
135+ String functionId = String .valueOf (data .getOrDefault ("id" , "" ));
135136 Map <String , Object > args = coerceToMap (data .get ("args" ));
136137 return Optional .of (
137138 com .google .genai .types .Part .builder ()
138- .functionCall (FunctionCall .builder ().name (functionName ).args (args ).build ())
139+ .functionCall (
140+ FunctionCall .builder ().name (functionName ).id (functionId ).args (args ).build ())
139141 .build ());
140142 }
141143
142144 if (data .containsKey ("name" ) && data .containsKey ("response" )
143145 || A2A_DATA_PART_METADATA_TYPE_FUNCTION_RESPONSE .equals (metadataType )) {
144146 String functionName = String .valueOf (data .getOrDefault ("name" , "" ));
147+ String functionId = String .valueOf (data .getOrDefault ("id" , "" ));
145148 Map <String , Object > response = coerceToMap (data .get ("response" ));
146149 return Optional .of (
147150 com .google .genai .types .Part .builder ()
148151 .functionResponse (
149- FunctionResponse .builder ().name (functionName ).response (response ).build ())
152+ FunctionResponse .builder ()
153+ .name (functionName )
154+ .id (functionId )
155+ .response (response )
156+ .build ())
150157 .build ());
151158 }
152159
@@ -167,6 +174,7 @@ private static Optional<com.google.genai.types.Part> convertDataPartToGenAiPart(
167174 private static Optional <DataPart > createDataPartFromFunctionCall (FunctionCall functionCall ) {
168175 Map <String , Object > data = new HashMap <>();
169176 data .put ("name" , functionCall .name ().orElse ("" ));
177+ data .put ("id" , functionCall .id ().orElse ("" ));
170178 data .put ("args" , functionCall .args ().orElse (Map .of ()));
171179
172180 Map <String , Object > metadata =
@@ -185,6 +193,7 @@ private static Optional<DataPart> createDataPartFromFunctionResponse(
185193 FunctionResponse functionResponse ) {
186194 Map <String , Object > data = new HashMap <>();
187195 data .put ("name" , functionResponse .name ().orElse ("" ));
196+ data .put ("id" , functionResponse .id ().orElse ("" ));
188197 data .put ("response" , functionResponse .response ().orElse (Map .of ()));
189198
190199 Map <String , Object > metadata =
0 commit comments