Skip to content

Commit 621d653

Browse files
stephentoubjeffhandley
authored andcommitted
Bump FunctionInvokingChatClient.MaximumIterationsPerRequest from 10 to 40 (#6599)
Folks are bumping up against the arbitrary limit of 10, as various modern models are super chatty with tools. While we need a limit to avoid runaway execution, we can make it much higher.
1 parent ba8e28e commit 621d653

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

src/Libraries/Microsoft.Extensions.AI/ChatCompletion/FunctionInvokingChatClient.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public partial class FunctionInvokingChatClient : DelegatingChatClient
6161
private readonly ActivitySource? _activitySource;
6262

6363
/// <summary>Maximum number of roundtrips allowed to the inner client.</summary>
64-
private int _maximumIterationsPerRequest = 10;
64+
private int _maximumIterationsPerRequest = 40; // arbitrary default to prevent runaway execution
6565

6666
/// <summary>Maximum number of consecutive iterations that are allowed contain at least one exception result. If the limit is exceeded, we rethrow the exception instead of continuing.</summary>
6767
private int _maximumConsecutiveErrorsPerRequest = 3;
@@ -142,7 +142,7 @@ public static FunctionInvocationContext? CurrentContext
142142
/// </summary>
143143
/// <value>
144144
/// The maximum number of iterations per request.
145-
/// The default value is 10.
145+
/// The default value is 40.
146146
/// </value>
147147
/// <remarks>
148148
/// <para>

test/Libraries/Microsoft.Extensions.AI.Tests/ChatCompletion/FunctionInvokingChatClientTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public void Ctor_HasExpectedDefaults()
3636

3737
Assert.False(client.AllowConcurrentInvocation);
3838
Assert.False(client.IncludeDetailedErrors);
39-
Assert.Equal(10, client.MaximumIterationsPerRequest);
39+
Assert.Equal(40, client.MaximumIterationsPerRequest);
4040
Assert.Equal(3, client.MaximumConsecutiveErrorsPerRequest);
4141
Assert.Null(client.FunctionInvoker);
4242
}
@@ -55,7 +55,7 @@ public void Properties_Roundtrip()
5555
client.IncludeDetailedErrors = true;
5656
Assert.True(client.IncludeDetailedErrors);
5757

58-
Assert.Equal(10, client.MaximumIterationsPerRequest);
58+
Assert.Equal(40, client.MaximumIterationsPerRequest);
5959
client.MaximumIterationsPerRequest = 5;
6060
Assert.Equal(5, client.MaximumIterationsPerRequest);
6161

0 commit comments

Comments
 (0)