File tree Expand file tree Collapse file tree 1 file changed +11
-2
lines changed
dotnet/src/Connectors/Connectors.Google Expand file tree Collapse file tree 1 file changed +11
-2
lines changed Original file line number Diff line number Diff line change @@ -393,14 +393,20 @@ public static GeminiPromptExecutionSettings FromExecutionSettings(PromptExecutio
393393 return null ;
394394 }
395395
396+ // Static empty kernel to avoid creating new instances for each conversion
397+ static Kernel GetEmptyKernel ( )
398+ {
399+ return new Kernel ( ) ;
400+ }
401+
396402 // Check the type and determine auto-invoke by reflection or known behavior types
397403 // All FunctionChoiceBehavior types (Auto, Required, None) support auto-invoke
398404 // We use a simple approach: get the configuration with minimal context to check AutoInvoke
399405 try
400406 {
401407 var context = new FunctionChoiceBehaviorConfigurationContext ( new ChatHistory ( ) )
402408 {
403- Kernel = new Kernel ( ) , // Provide an empty kernel for the configuration
409+ Kernel = GetEmptyKernel ( ) , // Provide an empty kernel for the configuration
404410 RequestSequenceIndex = 0
405411 } ;
406412 var config = functionChoiceBehavior . GetConfiguration ( context ) ;
@@ -413,9 +419,12 @@ public static GeminiPromptExecutionSettings FromExecutionSettings(PromptExecutio
413419
414420 return GeminiToolCallBehavior . EnableKernelFunctions ;
415421 }
422+ #pragma warning disable CA1031 // Do not catch general exception types
416423 catch
424+ #pragma warning restore CA1031
417425 {
418- // If we can't get configuration, default to EnableKernelFunctions
426+ // If we can't get configuration (e.g., due to missing dependencies or unexpected state),
427+ // default to EnableKernelFunctions as the safer option that doesn't auto-invoke
419428 return GeminiToolCallBehavior . EnableKernelFunctions ;
420429 }
421430 }
You can’t perform that action at this time.
0 commit comments