Skip to content

Commit 5ec7e3f

Browse files
committed
Merge pull request #2493 from microsoft/roblou/semantic-caribou
Check ExP value for requests
1 parent f470dcf commit 5ec7e3f

File tree

5 files changed

+31
-5
lines changed

5 files changed

+31
-5
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/*---------------------------------------------------------------------------------------------
2+
* Copyright (c) Microsoft Corporation. All rights reserved.
3+
* Licensed under the MIT License. See License.txt in the project root for license information.
4+
*--------------------------------------------------------------------------------------------*/
5+
6+
import { IConfigurationService } from '../../../platform/configuration/common/configurationService';
7+
import { IExperimentationService } from '../../../platform/telemetry/common/nullExperimentationService';
8+
import { ServicesAccessor } from '../../../util/vs/platform/instantiation/common/instantiation';
9+
10+
11+
export function getAgentMaxRequests(accessor: ServicesAccessor,): number {
12+
const configurationService = accessor.get(IConfigurationService);
13+
const experimentationService = accessor.get(IExperimentationService);
14+
15+
const configuredValue = configurationService.getNonExtensionConfig<number>('chat.agent.maxRequests') ?? 200; // Fallback for simulation tests
16+
17+
const experimentLimit = experimentationService.getTreatmentVariable<number>('chatAgentMaxRequestsLimit');
18+
if (typeof experimentLimit === 'number' && experimentLimit > 0) {
19+
return Math.min(configuredValue, experimentLimit);
20+
}
21+
22+
return configuredValue;
23+
}

src/extension/intents/node/agentIntent.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ import { IToolGroupingService } from '../../tools/common/virtualTools/virtualToo
5252
import { applyPatch5Description } from '../../tools/node/applyPatchTool';
5353
import { addCacheBreakpoints } from './cacheBreakpoints';
5454
import { EditCodeIntent, EditCodeIntentInvocation, EditCodeIntentInvocationOptions, mergeMetadata, toNewChatReferences } from './editCodeIntent';
55+
import { getAgentMaxRequests } from '../common/agentConfig';
5556

5657
export const getAgentTools = async (accessor: ServicesAccessor, request: vscode.ChatRequest) => {
5758
const toolsService = accessor.get<IToolsService>(IToolsService);
@@ -188,8 +189,7 @@ export class AgentIntent extends EditCodeIntent {
188189
protected override getIntentHandlerOptions(request: vscode.ChatRequest): IDefaultIntentRequestHandlerOptions | undefined {
189190
return {
190191
maxToolCallIterations: getRequestedToolCallIterationLimit(request) ??
191-
this.configurationService.getNonExtensionConfig('chat.agent.maxRequests') ??
192-
200, // Fallback for simulation tests
192+
this.instantiationService.invokeFunction(getAgentMaxRequests),
193193
temperature: this.configurationService.getConfig(ConfigKey.Advanced.AgentTemperature) ?? 0,
194194
overrideRequestLocation: ChatLocation.Agent,
195195
hideRateLimitTimeEstimate: true

src/extension/intents/node/askAgentIntent.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import { IIntent, IIntentInvocationContext, IntentLinkificationOptions } from '.
2929
import { AgentPrompt } from '../../prompts/node/agent/agentPrompt';
3030
import { ICodeMapperService } from '../../prompts/node/codeMapper/codeMapperService';
3131
import { IToolsService } from '../../tools/common/toolsService';
32+
import { getAgentMaxRequests } from '../common/agentConfig';
3233
import { AgentIntentInvocation } from './agentIntent';
3334

3435

@@ -63,7 +64,7 @@ export class AskAgentIntent implements IIntent {
6364

6465
private getIntentHandlerOptions(request: vscode.ChatRequest): IDefaultIntentRequestHandlerOptions | undefined {
6566
return {
66-
maxToolCallIterations: getRequestedToolCallIterationLimit(request) ?? this.configurationService.getNonExtensionConfig('chat.agent.maxRequests') ?? 15,
67+
maxToolCallIterations: getRequestedToolCallIterationLimit(request) ?? this.instantiationService.invokeFunction(getAgentMaxRequests),
6768
temperature: this.configurationService.getConfig(ConfigKey.Advanced.AgentTemperature) ?? 0,
6869
overrideRequestLocation: ChatLocation.EditingSession,
6970
};

src/extension/intents/node/editCodeIntent2.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import { EditCodePrompt2 } from '../../prompts/node/panel/editCodePrompt2';
2929
import { NotebookInlinePrompt } from '../../prompts/node/panel/notebookInlinePrompt';
3030
import { ToolName } from '../../tools/common/toolNames';
3131
import { IToolsService } from '../../tools/common/toolsService';
32+
import { getAgentMaxRequests } from '../common/agentConfig';
3233
import { AgentIntentInvocation } from './agentIntent';
3334
import { EditCodeIntent, EditCodeIntentOptions } from './editCodeIntent';
3435

@@ -80,7 +81,7 @@ export class EditCode2Intent extends EditCodeIntent {
8081

8182
protected override getIntentHandlerOptions(request: vscode.ChatRequest): IDefaultIntentRequestHandlerOptions | undefined {
8283
return {
83-
maxToolCallIterations: getRequestedToolCallIterationLimit(request) ?? this.configurationService.getNonExtensionConfig('chat.agent.maxRequests') ?? 15,
84+
maxToolCallIterations: getRequestedToolCallIterationLimit(request) ?? this.instantiationService.invokeFunction(getAgentMaxRequests),
8485
temperature: this.configurationService.getConfig(ConfigKey.Advanced.AgentTemperature) ?? 0,
8586
overrideRequestLocation: ChatLocation.EditingSession,
8687
};

src/extension/intents/node/notebookEditorIntent.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import { ICodeMapperService } from '../../prompts/node/codeMapper/codeMapperServ
3232
import { NotebookInlinePrompt } from '../../prompts/node/panel/notebookInlinePrompt';
3333
import { getToolName, ToolName } from '../../tools/common/toolNames';
3434
import { IToolsService } from '../../tools/common/toolsService';
35+
import { getAgentMaxRequests } from '../common/agentConfig';
3536
import { EditCodeIntent, EditCodeIntentOptions } from './editCodeIntent';
3637
import { EditCode2IntentInvocation } from './editCodeIntent2';
3738

@@ -71,7 +72,7 @@ export class NotebookEditorIntent extends EditCodeIntent {
7172

7273
protected override getIntentHandlerOptions(request: vscode.ChatRequest): IDefaultIntentRequestHandlerOptions | undefined {
7374
return {
74-
maxToolCallIterations: getRequestedToolCallIterationLimit(request) ?? this.configurationService.getNonExtensionConfig('chat.agent.maxRequests') ?? 15,
75+
maxToolCallIterations: getRequestedToolCallIterationLimit(request) ?? this.instantiationService.invokeFunction(getAgentMaxRequests),
7576
temperature: this.configurationService.getConfig(ConfigKey.Advanced.AgentTemperature) ?? 0,
7677
overrideRequestLocation: ChatLocation.Notebook,
7778
};

0 commit comments

Comments
 (0)